下载

  1. <a name="Yuoby"></a>
  2. ## 2.安装依赖
  3. ```bash
  4. yum -y install gd gd-devel libmcrypt libmcrypt-devel freetype freetype-devel libtool-ltdl libtool-ltdl-devel libjpeg-devel \
  5. 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步
image.png

4. 安装

make && make install

下图表示成功
image.png

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
image.png

安装完成后再添加依赖

动态新增依赖,这一步去掉# 先安装yum install php-devel:https://www.cnblogs.com/liluxiang/p/9316349.html
./configure –-with-php-config=/usr/local/php/bin/php-config —with-iconv

  1. 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