php官方下载页面 在/usr/local目录下操作
cd /usr/local
下载源码包
wget https://www.php.net/distributions/php-8.2.10.tar.gz wget https://www.php.net/distributions/php-8.1.26.tar.gz 解压并进入目录
cd /usr/local/src/php/ tar -zxvf php-8.2.10.tar.gz && cd php-8.2.10 tar -zxvf php-8.1.26.tar.gz && cd php-8.1.26
2.安装依赖
dnf -y groupinstall 'Development Tools'
dnf -y install wget libxml2-devel sqlite-devel bzip2-devel libcurl-devel libffi-devel libpng-devel libwebp-devel libjpeg-devel oniguruma libzip freetype freetype-devel libicu-devel
1) Rocky9系列
2)Rocky8系列
3.编译安装
./configure -help
编译参数如下:
cd php-8.1.26/ ./configure --prefix=/usr/local/php --sysconfdir=/etc/php --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring --with-imap-ssl --with-mysqli --enable-exif --with-ffi --with-zip --enable-sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntl
上面的展开说明(使用的话直接复制上面的,这里是做解释用的)
./configure --prefix=/usr/local/php #安装地址 --sysconfdir=/etc/php #设置文件地址 --with-openssl #启用ssl --with-zlib --with-bz2 --with-curl #启用curl(必开) --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring #必开,很多需要用到 --with-imap-ssl --with-mysqli #mysqli函数,如果用pdo,可以补开 --enable-exif --with-ffi #支持外挂C程序 --with-zip --enable-sockets #开启socket --with-pcre-jit #开启jit --enable-fpm #开启fpm模式(必开) --with-pdo-mysql #支持mysql --with-pdo-pgsql #支持pgsql --enable-pcntl
显示如下的提示,说明可以继续安装了
编译安装,安装时间比较长,请耐心等待!
make && make install
编译完成后会显示类似如下信息: 里面包含了各种文件的地址,建议编译后截图保存,方便日后查看
Build complete.
Don't forget to run 'make test'.Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20220829/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM defconfig: /etc/php/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/php/fpm/
Installing phpdbg binary: /usr/local/php/bin/
Installing phpdbg man page: /usr/local/php/php/man/man1/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
添加用户组,名字用www是因为通常php做web后端开发的,可以改成别的。
groupadd www
添加用户(一个不允许登录的用户)
useradd -g www -s /sbin/nologin www
5.配置
将配置文件复制到正确的位置(很多情况下修改配置不生效就是配置文件地址没搞对)
cp /usr/local/src/php/php-8.2.10/php.ini-development /usr/local/php/lib/php.ini ################# cp /usr/local/src/php/php-8.1./p26hp.ini-development /usr/local/php/lib/php.ini cp /etc/php/php-fpm.conf.default /etc/php/php-fpm.conf cp /etc/php/php-fpm.d/www.conf.default /etc/php/php-fpm.d/www.conf
export PATH=$PATH:/usr/local/php/bin
保存退出后,在命令行刷新环境变量
source /etc/profile
输入以下命令,如果能够返回版本号,说明配置成功
php -v
[root@ldzcyhaliyunecs ~]#php -v
PHP 8.1.26 (cli) (built: Nov 29 2023 17:12:19) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.26, Copyright (c) Zend Technologies
修改默认session位置 创建session地址(也可以写成别的)
mkdir /usr/local/php/tmp && chmod -R 755 /usr/local/php/tmp
修改php.ini
vim /usr/local/php/lib/php.ini
找到session.save_path,修改后面内容为"/usr/local/php/tmp"(原本是“/tmp”) 找到expose_php = On;,修改On为Off。这个修改是在响应头中隐藏php信息。否则在响应头的X-Powered-By中会显示php版本(尽量不要让入侵者获取更多的信息)
配置php-fpm
vim /etc/php/php-fpm.d/www.conf
修改user=www,group=www(原本都是nobody)
8.systemctl管理(php-fpm)
创建脚本文件
vi /usr/lib/systemd/system/php-fpm.service cat > /usr/lib/systemd/system/php-fpm.service << EOF [Unit] Description=php-fpm After=syslog.target network.target [Service] Type=forking ExecStart=/usr/local/php/sbin/php-fpm ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOF
刷新systemctl
systemctl daemon-reload
开启、开机启动
systemctl start php-fpm && systemctl enable php-fpm && systemctl status php-fpm