- 下载
- 源码安装
- 下载
- 解压
- 进入目录
- 3.源码编译
- 4. 安装
- 5.将配置文件复制到对应目录,注意php和php-fpm引用的php.ini目录可能不同
- 6.如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。
- 7.在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
- 8.启动服务php-fpm
- 9.编写php-fpm平滑重启脚本-php-fpmr,vim /usr/local/php/sbin/php-fpmr
- 10.添加环境变量
- 配置Nginx
- 安装完成后再添加依赖
- 问题
下载
- 版本选择:5.6.40
- 官方地址:主地址https://www.php.net/downloads,5.6.40地址:https://www.php.net/distributions/php-5.6.40.tar.gz
源码安装
1.下载解压
```bash下载
wget https://www.php.net/distributions/php-5.6.40.tar.gz解压
tar -zxvf php-5.6.40.tar.gz tar -zxf php-5.6.40.tar.gz进入目录
cd php-5.6.40.tar.gz
<a name="Yuoby"></a>## 2.安装依赖```bashyum -y install gd gd-devel libmcrypt libmcrypt-devel freetype freetype-devel libtool-ltdl libtool-ltdl-devel libjpeg-devel \libpng-devel libmcrypt libmcrypt-devel
大部分都在这里,后续安装扩展时缺少的话也会提示
yum -y install \
gcc gcc-c++ make cmake autoconfig \
zlib zlib-devel pcre pcre-devel \
libxml2-devel libxslt-devel \
bzip2-devel curl-devel libzip-devel\
sqlite-devel \
systemd-devel \
openssl-devel \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel \
freetype-devel \
gmp-devel \
libldb-devel \
libc-client libc-client-devel \
openldap openldap-devel \
oniguruma oniguruma-devel \
net-snmp-devel readline-devel unixODBC-devel \
uw-imap uw-imap-devel uw-imap-static uw-imap-utils \
libicu-devel \
enchant2 enchant2-devel \
gd gd-devel \
libsodium libsodium-devel \
libtidy libtidy-devel \
libmcrypt libmcrypt-devel
3.源码编译
./configure —help可以提示都可以添加哪些参数,选择自己需要的依赖扩展
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-fpm \
--with-libxml-dir=/usr/local/libxml2/lib \
--with-zlib --with-zlib-dir=/usr/local/lib \
--with-mysql \
--with-mysqli \
--with-bz2 \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv \
--with-libXML-dir \
--with-XMLrpc \
--with-zlib-dir \
--with-gd \
--enable-gd-native-ttf \
--with-curl \
--with-curlwrappers \
--with-ttf \
--with-xsl \
--with-gettext \
--with-pear \
--enable-calendar \
--enable-mbstring \
--enable-bcmath \
--enable-sockets \
--enable-exif \
--enable-magic-quotes \
--with-openssl \
--with-sqlite3 \
--enable-eAccelerator \
--with-mcrypt \
--sysconfdir=/usr/local/php/etc \
--with-oci8=instantclient,/usr/lib/oracle/12.2/client64/lib/
4. 安装
make && make install
5.将配置文件复制到对应目录,注意php和php-fpm引用的php.ini目录可能不同
cp php.ini-development /usr/local/php/php.ini
# php可执行文件,看一下有没有其他版本,后续新增依赖要注意
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp sapi/fpm/php-fpm /usr/local/php/sbin
# 默认已有/usr/local/php/sbin/php-fpm
6.如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。
sed -i 's/;;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /usr/local/php/php.ini
7.在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
vim /usr/local/php/etc/php-fpm.conf
# 默认是nobody改成www-data
user = www-data
group = www-data
# 添加用户和用户组
groupadd www-data
useradd -g www-data www-data
8.启动服务php-fpm
/usr/local/php/sbin/php-fpm
ps -ef | grep php
9.编写php-fpm平滑重启脚本-php-fpmr,vim /usr/local/php/sbin/php-fpmr
ps -ef |grep "php-fpm: master"|grep -v grep|awk '{print $2}'|xargs kill -SIGUSR2
10.添加环境变量
vim /etc/profile
PATH=$PATH:/usr/local/php/bin:/usr/local/php/sbin/
export PATH
使环境变量生效:source /etc/profile
配置Nginx
https://www.php.net/manual/zh/install.unix.nginx.php
安装完成后再添加依赖
动态新增依赖,这一步去掉# 先安装yum install php-devel:https://www.cnblogs.com/liluxiang/p/9316349.html
./configure –-with-php-config=/usr/local/php/bin/php-config —with-iconv
- orcale依赖,需要先安装client和sdk
/usr/local/php/bin/phpize
./configure —with-php-config=/usr/local/php/bin/php-config
/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf -c /usr/local/php/php.ini
PHP有两个版本!!!!下次就知道咋用了!!!
问题
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决:借助epel的yum源,所以先安装epel,再安装libmcrypt。速度可能会慢,多试几次
yum install -y epel-release
yum install -y libmcrypt-devel
