您现在的位置是:首页 > 正文

PHP源码安装与编译

2024-04-01 07:21:58阅读 3

title: PHP源码安装与编译
tags: linux,php,php-fpm
grammar_cjkRuby: true

参考文章:
Ubuntu 16.04 源码编译安装PHP7:https://www.cnblogs.com/rnckty/p/5741859.html
php-fpm的安装和启动:https://www.zybuluo.com/phper/note/72879
PHP php-fpm.conf 详解:https://blog.csdn.net/xingjia001/article/details/84619712
Linux中/usr和/var目录的区别:https://blog.csdn.net/zqdlove/article/details/20623007

安装php源码

1,下载php ,可通过下载php源码,但是一般网速较漫,也可下载镜像,或者别人下载好的
2,解压php源码
3,安装相关库,一般都需要安装openssl,curl等此类
4,编译,进入解压好的php文件夹中,使用 ./configure --prefix --with 进行编译,编译时讲相关模块一起编译进去。编译时一定要注意报错信息,一般都是因为缺少某个依赖库,所以无法编译,然后根据报错,下载相关依赖 ,进行安装即可。
例如:

cd /tmp/php-7.0.9
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts

5,执行make 和 sudo make install 安装

make && sudo make install

如果安装过程出错,就证明编译有问题,则重回第二部,再次编译,make install 时要使用管理员权限

配置php-fpm

要想和nginx进行通信,必须安装php-fpm模块,安装之后
进入linux 的本地文件系统找到php的etc目录,复制php-fpm.conf.default默认文件为 php-fpm.conf,
进入 php-fpm.d,复制 www.conf.default 默认文件为 www.conf
查看 php-fpm.conf,发现最后一行写着引入 php-fpm.d文件夹下的www.conf
查看 www.conf,发现含有 user = www group = www 等若干配置。
也可以在php-fpm.conf中讲引入 php-fpm.d文件夹下的www.conf 此行注释,然后将配置文件配置完毕,详细配置可参考。。,最主要的配置是user = www group = www。

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

cd /usr/local/php/etc/php-fpm.d

cp www.conf.default www.conf

user = www
group = www

如果www用户不存在,那么先添加www用户,注意使用管理员权限

groupadd www
useradd -g www www

启动 php-fpm
sudo /usr/local/php/sbin/php-fpm

查看端口进程

ps -ef|grep php-fpm
 netstat -tnl | grep 9000
调错与注意事项

因为是自己在开发环境重新安装的并编译的php模块,所以有可能造成与linux 系统预装的php冲突,主要表现为,
使用查看php扩展 php -m ,查看php信息 php -i 时,一般就会显示linux 下的php
使用命令查看刚刚自己安装编译的php时
/usr/local/php/bin/php -m/usr/local/php/bin/php -i 会显示自己编译的php的相关信息
因为自己在安装php时,已经将模块编译进去,所以不需要在ini文件中开启,php运行时会自动加载进来,所以开启扩展会造成报错。
有时在不注意的情况下修改ini文件,可能会导致出现意想不到的错误,所以建议删除其中一个php和相关文件(ini 和 扩展)。

下面是使用之后其中一部分信息,主要显示了

php -i 
Configuration File (php.ini) Path => /etc/php/7.2/cli
Scan this dir for additional .ini files => /etc/php/7.2/cli/conf.d
extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718

 /usr/local/php/bin/php -i 
Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysqli' '--with-pdo-mysql' '--with-iconv-dir' '--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--with-gettext' '--disable-fileinfo' '--enable-maintainer-zts'
Server API => Command Line Interface
Virtual Directory Support => enabled
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)

extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20170718 => /usr/local/php/lib/php/extensions/no-debug-zts-20170718

[外链图片转存失败(img-Wm7suMFX-1567844267583)(./images/1559621551936.png)]

网站文章