php8.3.2 编译并配置systemd管理

一、 编译安装php8.3

  • 依赖
    yum -y install php-mcrypt libmcrypt-devel libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libmemcached oniguruma-devel

  • 下载
    https://www.php.net/downloads.php

  • 解压
    tar -zxvf php-8.3.2.tar.gz

  • 生成配置
    ./buildconf

  • 编译选项

    ./configure  --enable-debug  --prefix=/usr/local/php-8.3.2 \
    --with-config-file-path=/usr/local/php-8.3.2/etc \
    --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
    --with-mysql-sock=/usr/local/mysql-5.7.44-el7-x86_64/mysql.sock \
    --enable-mysqlnd --with-iconv --enable-bcmath --enable-shmop --enable-sysvsem \
    --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl \
    --enable-pcntl --enable-sockets --enable-soap --with-gettext \
    --with-curl

    注意参数: --with-mysql-sock=/usr/local/mysql-5.7.44-el7-x86_64/mysql.sock

  • 编译安装
    make -j4 && make test -j4 && make install

二、 配置PHP

2.1 php 配置文件

从源码里复制一份到安装目录
cp {path_2_your_php_source}/php.ini-development /usr/local/php/etc/php.ini

2.2 php-fpm 配置文件

cd /usr/local/php/etc/php-fpm.d/ && cp www.conf.default www.conf
cd /usr/local/php/etc && cp php-fpm.conf.default php-fpm.conf

2.3 修改 php-fpm 配置

文件: /usr/local/php/etc/php-fpm.conf
配置: pid = run/php-fpm.pid

2.4 修改 www.conf 配置

文件: /usr/local/php/etc/php-fpm.d/www.conf
配置: listen = 127.0.0.1:9000 (与nginx中的配置保持一致)

三、 配置 systemd

vim php-fpm.service

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

systemctl daemon-reload && systemctl enable php-fpm --now

3.1 Nginx 配置

vim php.conf

server {
listen 4433 default_server;
listen [::]:4433 default_server;
server_name 192.168.1.201;
root /var/www/;

location / {
index index.php index.html index.htm;
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:19000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

3.2 php_info

vim /var/www/index.php

<?php
phpinfo();

3.3 验证

图