自行安装支持组件
安装目录/usr/local/php7.4
配置文件目录/usr/local/php7.4/etc
用户为www
下载并编译安装php7.4

groupadd www
useradd -m -s /sbin/nologin -g www www
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar zxf php-7.4.33.tar.gz
cd php-7.4.33
./configure --prefix=/usr/local/php7.4 --with-config-file-path=/usr/local/php7.4/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv --with-zlib --with-libxml --enable-xml --with-freetype --enable-bcmath --enable-shmop --with-jpeg --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --enable-gd --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --with-pear --with-gettext --enable-calendar --enable-fileinfo --with-bz2 --with-readline --enable-sysvshm --enable-sysvmsg --enable-bcmath --enable-mbstring --with-gettext --enable-shared --enable-inline-optimization --disable-debug --disable-rpath --enable-opcache --enable-intl --with-openssl
make -j4
make install
cp php.ini-development /usr/local/php7.4/etc/php.ini
sed -i 's/disable_functions =/disable_functions=eval,passthru,exec,system,chroot,scandir,chgrp,chown,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,disk_total_space,disk_free_space,error_log,putenv,popen,chmod,assert,pcntl_exec,phpfunc;/' /usr/local/php7.4/etc/php.ini

删除配置文件

rm -rf /usr/local/php7.4/etc/php-fpm.conf

创建配置文件/usr/local/php7.4/etc/php-fpm.conf并录入以下内容

[global]
pid = /usr/local/php7.4/tmp/php-fpm.pid
error_log = /usr/local/php7.4/tmp/php-fpm.log
log_level = notice

[www]
user = www
group = www
listen.owner = www
listen.group = www
listen = /usr/local/php7.4/tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.mode = 0666
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 15
pm.max_requests = 1000
pm.process_idle_timeout = 10s
request_terminate_timeout = 150
request_slowlog_timeout = 0
rlimit_files = 51200
slowlog = /usr/local/php7.4/tmp/slow.log

创建并tmp目录并设置php.ini

mkdir -p /usr/local/php7.4/tmp;
chown -R www:www /usr/local/php7.4/tmp;
sed -i 's/post_max_size/;post_max_size/' /usr/local/php7.4/etc/php.ini;
echo 'post_max_size=100M' >>/usr/local/php7.4/etc/php.ini;
sed -i 's/upload_max_filesize/;upload_max_filesize/' /usr/local/php7.4/etc/php.ini;
echo 'upload_max_filesize=100M' >>/usr/local/php7.4/etc/php.ini;
sed -i 's/max_execution_time/;max_execution_time/' /usr/local/php7.4/etc/php.ini;
sed -i 's/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo=0/g' /usr/local/php7.4/etc/php.ini;
sed -i 's/;date.timezone =.*/date.timezone = PRC/g' /usr/local/php7.4/etc/php.ini;
sed -i 's/short_open_tag =.*/short_open_tag = On/g' /usr/local/php7.4/etc/php.ini;
sed -i 's/max_execution_time/;max_execution_time/' /usr/local/php7.4/etc/php.ini;
echo 'max_execution_time=300' >>/usr/local/php7.4/etc/php.ini;

创建启动文件/lib/systemd/system/php-fpm74.service并录入以下内容

[Unit] 
Description=The PHP FastCGI Process Manager 
After=nginx.service 

[Service]
Type=forking
PIDFile=/usr/local/php7.4/tmp/php-fpm.pid
ExecStart=/usr/local/php7.4/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install] 
WantedBy=multi-user.target

创建软连并启动

ln -s /lib/systemd/system/php-fpm74.service /etc/systemd/system/multi-user.target.wants/php-fpm74
systemctl daemon-reload
systemctl enable php-fpm74

如果是nginx连接php就是

fastcgi_pass  unix:/usr/local/php7.4/tmp/php-cgi.sock;
fastcgi_index index.php;
分类: PHP 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录