Mac下EServer安装扩展pcntl

  • 原创
  • 作者:程序员三丰
  • 发布时间:2024-07-15 23:14
  • 浏览量:899
本文以安装pcntl为例详细介绍Mac如何编译安装一个PHP扩展。

在Mac下EServer集成环境安装的PHP,可能会没有安装实际开发需要的PHP扩展,比如本文介绍的pcntl,这就需要我们自行安装。尴尬的是,EServer没有类似phpstudy那样简单勾选即可安装的方式。本文本着“授人以渔”愿景以安装pcntl为例详细介绍Mac如何编译安装一个PHP扩展。

官方文档

EServer 官方PHP扩展安装文档:https://www.kancloud.cn/liu1040063186/easysrv/3145510

实践步骤

1. 查看PHP版本

sf2018@tck-mac ~ % php -v

PHP 8.0.30 (cli) (built: Feb 19 2024 19:00:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies

2. 检查是否已安装pcntl

sf2018@tck-mac ~ % php -m | grep pcntl
sf2018@tck-mac ~ % 此处返回空,表示未安装,下文会有已安装的检查结果

3. 下载PHP源代码包

到PHP官网下载与第1步查询结果版本一致的PHP的源代码包,官网下载地址:https://www.php.net/releases/,可以在页面上搜索要下载版本号,如本文的8.0.30,下载tar.gz格式。

image.png

4. 编译生成扩展文件

依次执行下面的命令,中途不报错的话,就会生成我们需要的扩展文件:

# 解压
tar zxvf php-8.0.30.tar.gz

# 进入上一步解压出来的目录如下
cd php-8.0.30/ext/pcntl

# phpize 【切记,很重要】一定执行的是要安装pcntl扩展的PHP的安装目录下phpize,否则可能会报错 fatal error: ‘php.h’ file not found
/Applications/EServer/software/php/php-8.0/bin/phpize

# configure 【切记,很重要】--with-php-config一定使用要安装pcntl扩展的PHP的安装目录下的php-config的路径,也是为了避免报错 fatal error: ‘php.h’ file not found
./configure --with-php-config=/Applications/EServer/software/php/php-8.0/bin/php-config

make && make install

5. 查看生成的扩展文件

上面执行成功后,查看生成的扩展文件,有pcntl.so表示成功

sf2018@tck-mac pcntl % ls modules 
pcntl.la    pcntl.so

6. 复制生成的扩展文件到PHP的扩展目录下

查看安装pcntl扩展的PHP的扩展目录下是否已经存在 pcntl.so,如果不存在讲上一步生成pcntl.so 复制到要安装pcntl扩展的PHP的扩展目录下。

一般执行了make install 后,系统就会把 make 生成的pcntl.so 复制到扩展目录下。

如果不知道要安装pcntl扩展的PHP的扩展目录在什么位置,请看如下操作步骤:

# 首先查看php.ini文件的位置
sf2018@tck-mac pcntl % php --ini
Configuration File (php.ini) Path: /Applications/EServer/software/php/php-8.0/etc
Loaded Configuration File:         /Applications/EServer/software/php/php-8.0/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

# 然后从php.ini中查找扩展目录路径
sf2018@tck-mac pcntl % cat /Applications/EServer/software/php/php-8.0/etc/php.ini | grep extension_dir
extension_dir = "/Applications/EServer/software/php/php-8.0/lib/php/extensions/no-debug-non-zts-20200930"
;extension_dir = "ext"
;   Be sure to appropriately set the extension_dir directive.
;sqlite3.extension_dir =

# 然后把modules目录下的pcntl.so复制到php.ini中extension_dir配置的目录下。

7. 打开php.ini文件,开启pcntl扩展

# 在php.ini扩展配置区域增加下面的代码,就开启了pcntl扩展
extension=pcntl

8. 最后,检查pcntl扩展是否安装成功,检查结果如下,就说明安装成功了。

sf2018@tck-mac pcntl % php -m | grep pcntl
pcntl
sf2018@tck-mac pcntl % 
sf2018@tck-mac pcntl % php --ri pcntl     

pcntl

pcntl support => enabled

最后总结

本文只是实践介绍了pcntl扩展的安装,如果有其扩展安装需求,也可以尝试使用本文的方式。

声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://mp.51blog.xyz/article/65.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas