安装相关库
apt install gcc make openssl curl libssl-dev libxml2-dev libzip-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libwebp-dev libsqlite3-dev libfreetype6-dev libonig-dev
下载解压
cd /usr/local/src
wget -c https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxf php-7.4.33.tar.gz
cd php-7.4.33
编译配置
./buildconf --force
./configure \
--prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--enable-gd \
--with-jpeg \
--with-freetype \
--with-zlib \
--with-iconv \
--enable-bcmath \
--enable-shmop \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-mbstring \
--enable-ftp \
--with-openssl \
--enable-opcache \
--enable-pcntl \
--enable-sockets \
--with-mhash \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-xmlrpc \
--with-zip \
--with-pear \
--with-curl
编译安装
make
make install
配置文件
# 查看配置文件路径
/usr/local/php/bin/php --ini
Configuration File (php.ini) Path: /usr/local/php/lib
# 复制配置文件
cp php.ini-production /usr/local/php/lib/php.ini
php.ini
expose_php = Off
error_reporting = E_ALL & ~E_NOTICE
error_log = /data/logs/php/php_errors.log
date.timezone = PRC
错误日志
mkdir -p /data/logs/php
touch /data/logs/php/php_errors.log
chown nginx:nginx /data/logs/php/php_errors.log
php-fpm
一、创建日志目录
mkdir -p /data/logs/php-fpm
二、php-fpm.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
① 去掉;pid = run/php-fpm.pid 前面的分号,使之生效
② 设置错误日志路径
error_log = /data/logs/php-fpm/php-fpm.log
三、www.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
;设置用户和用户组
user = nginx
group = nginx
;设置监听
;listen = 127.0.0.1:9000
listen = /dev/shm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
;进程相关,这个得根据硬件情况来设置
pm.max_children = 100
pm.start_servers = 50
pm.min_spare_servers = 40
pm.max_spare_servers = 60
;开启慢日志
slowlog = /data/logs/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s
;开启抓去php的错误输出
catch_workers_output = yes
四、启动和开机自启动
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 0744 /etc/init.d/php-fpm
#启动
service php-fpm start
#停止
service php-fpm stop
#重启
service php-fpm restart
#运行状态
service php-fpm status
vim /etc/rc.local
在exit 0前面添加如下命令
# php-fpm
/etc/init.d/php-fpm start