1、切换到安装目录,解压
#cd /usr/local/src
#tar -zxvf php-7.2.23.tar.gz
#cd php-7.2.23
下载链接 :https://www.php.net/downloads.php
2、安装相关依赖库
#sudo apt-get install libxml2-dev gcc build-essential openssl make libssl-dev curl libcurl4-gnutls-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline6 libreadline6-dev
3、编译
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pdo-pgsql --with-iconv-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-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install
4、配置php-fpm
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
5、php -v ,验证PHP
#php -v
#/usr/local/php/bin/php -v
6、.编译后的文件,配置文件php.ini文件
root@ubuntu:/usr/local/php/etc/php-fpm.d# find / -name php.ini
/etc/php/7.0/apache2/php.ini
/etc/php/7.0/cli/php.ini
root@ubuntu:/usr/local/php/etc/php-fpm.d# php -i |grep php.ini
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
7、启动php-fpm
#sudo /usr/local/php/sbin/php-fpm
#netstat -lantp
8、查看php进程
8、查看端口所在的配置文件路径
root@ubuntu:/usr/local/php/etc/php-fpm.d# find / -name www.conf
/usr/local/php/etc/php-fpm.d/www.conf
/usr/local/php-7.0.9/sapi/fpm/www.conf
9、设置php.ini的log日志
#vi /etc/php/7.0/cli/php.ini
display_errors = Off 修改成On
;error_log = php_errors.log 去掉前面的;号
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT #注释掉,改成error_reporting = E_ALL | E_STRICT
#error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL | E_STRICT
再去添加读写权限:
root@ubuntu:/usr/local/php/etc/php-fpm.d# cd /var/log
root@ubuntu:/var/log# pwd
/var/log
root@ubuntu:/var/log# touch /var/log/php_errors.log
root@ubuntu:/var/log# ls /var/log/php_errors.log -l
-rw-r–r-- 1 root root 0 Oct 8 20:32 /var/log/php_errors.log
root@ubuntu:/var/log# chmod +rw /var/log/php_errors.log
root@ubuntu:/var/log# ls /var/log/php_errors.log -l
-rw-r–r-- 1 root root 0 Oct 8 20:32 /var/log/php_errors.log
root@ubuntu:/var/log# systemctl restart apache2
root@ubuntu:/var/log# systemctl enable apache2
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable apache2
root@ubuntu:/var/log# tail /var/log/php_errors.log
常见的报错
1、root@ubuntu:/usr/local/php/etc/php-fpm.d# curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
参考链接 :
在Ubuntu 16.04下源码编译安装PHP7 过程记录 : https://blog.csdn.net/twh69/article/details/78721095
编译安装php7.2.21 :https://www.e-learn.cn/content/php/2610236
linux源码安装php7.2.0 : https://blog.csdn.net/zrainload/article/details/78812003
Ubuntu 16.04 源码编译安装PHP7 : https://blog.csdn.net/weixin_33720452/article/details/94147354