CentOS 8.x编译安装Nginx1.16+MySQL8.0+PHP7.4/7.3/ 7.2/ 7.1/ 7.0/ 5.6/ 5.5/ 5.3 全能环境

  • 配置防火墙
    • 关闭firewalld
    • 安装配置iptables
  • 关闭SELINUX
  • 下载软件包
  • 安装编译工具及库文件(使用yum命令安装)
  • 安装
    • 安装mysql
      • 安装rpcsvc-proto
      • 安装cmake
      • 安装MySQL
    • 安装nginx
      • 安装pcre
      • 安装openssl
      • 安装zlib
    • 安装php
      • 安装依赖
      • 编译安装php
  • 配置nginx支持php
  • 多版本php共存总结

配置防火墙

CentOS 8.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。

关闭firewalld

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl mask firewalld   #屏蔽服务
systemctl stop firewalld
yum remove firewalld

有关mask可以看考本博客:
systemctl mask 和 systemctl disable

安装配置iptables

yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
#sample configuration for iptables service
#you can edit this manually or use system-config-firewall
#please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
/usr/libexec/iptables/iptables.init restart #重启防火墙

关闭SELINUX

vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出
setenforce 0 #使配置立即生效

下载软件包

1、nginx
http://nginx.org/download/nginx-1.16.1.tar.gz
2、mysql
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.19.tar.gz
3、http
https://www.php.net/distributions/php-7.4.4.tar.gz
https://www.php.net/distributions/php-7.3.16.tar.gz
https://www.php.net/distributions/php-7.2.29.tar.gz
https://www.php.net/distributions/php-7.1.33.tar.gz
https://www.php.net/distributions/php-7.0.33.tar.gz
https://www.php.net/distributions/php-5.6.40.tar.gz
https://www.php.net/distributions/php-5.5.38.tar.gz
https://www.php.net/distributions/php-5.4.45.tar.gz
https://www.php.net/distributions/php-5.3.29.tar.gz
https://www.php.net/distributions/php-5.2.17.tar.gz
https://www.php.net/distributions/php-5.2.17-fpm-0.5.14.diff.gz
4、下载cmake(MySQL编译工具)
https://cmake.org/download/v3.15.4/cmake-3.15.4.tar.gz
5、下载pcre (支持nginx伪静态)
http://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
6、下载openssl(nginx扩展)
6.1下载最新稳定版本,适用于nginx扩展https
https://www.openssl.org/source/openssl-1.1.1e.tar.gz
6.2下载旧版本,适用于php5.6.x及其以下版本编译安装openssl扩展
https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz
7、下载zlib(nginx扩展)
http://www.zlib.net/zlib-1.2.11.tar.gz
8、下载libmcrypt(php扩展)
https://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9、下载yasm(php扩展)
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10、t1lib(php扩展)
http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz
11、下载gd库安装包
11.1适用于php 5.4.x及其以上版本
https://github.com/libgd/libgd/releases/download/gd-2.3.0/libgd-2.3.0.tar.gz
11.2适用于 php 5.3.x 5.2.x版本
https://jaist.dl.sourceforge.net/project/gd2/gd-2.0.35.tar.gz
12、libvpx(gd库需要)
https://github.com/webmproject/libvpx/archive/v1.8.2/libvpx-1.8.2.tar.gz
13、tiff(gd库需要)
http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz
14、libpng(gd库需要)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.37.tar.gz
15、freetype(gd库需要)
https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz
16、jpegsrc(gd库需要)
http://distfiles.macports.org/jpeg/jpegsrc.v9d.tar.gz
17、Boost(编译mysql需要)
https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz
18、libzip(编译php需要)
https://libzip.org/download/libzip-1.2.0.tar.gz
19、rpcsvc-proto(编译MySQL需要)
https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
20、oniguruma(编译安装php7.4.x需要)
https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
21、curl库(编译php需要)
https://curl.haxx.se/download/curl-7.29.0.tar.gz

安装编译工具及库文件(使用yum命令安装)

yum install apr* autoconf automake bison bzip2 bzip2* cpp curl curl-devel fontconfig fontconfig-devel freetype-devel git gcc gcc-c++ gd gd-devel gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc+±devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet wget zlib-devel ncurses-devel libtirpc-devel gtk* ntpstat bison* sqlite-devel oniguruma libzip-devel

安装

安装mysql

安装rpcsvc-proto

cd /usr/local/src
tar zxvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make
make install

安装cmake

cd /usr/local/src
tar zxvf cmake-3.15.4.tar.gz
cd cmake-3.15.4
./configure
make
make install

安装MySQL

cd /usr/local/src
mkdir -p /usr/local/boost
cp boost_1_70_0.tar.gz /usr/local/boost
groupadd mysql #添加mysql组
useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录权限
mkdir -p /usr/local/mysql #创建MySQL安装目录
cd /usr/local/src #进入软件包存放目录
tar zxvf mysql-8.0.19.tar.gz #解压
cd mysql-8.0.19 #进入目录
rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=1 -DFORCE_INSOURCE_BUILD=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
make #编译
make install #安装cd /usr/local/mysql #进入MySQL安装目录
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系统数据库
--initialize表示默认生成密码, --initialize-insecure 表示不生成密码, 密码为空。
ln -s /usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目录的软连接
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动vi /etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录
:wq! #保存退出
service mysqld start #启动
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql #创建目录
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接
创建MySQL数据库、添加用户并授权后
service mysqld restart #重启mysql数据库

安装nginx

安装pcre

cd /usr/local/src
mkdir /usr/local/pcre
tar zxvf pcre-8.44.tar.gz
cd pcre-8.44
./configure --prefix=/usr/local/pcre
make
make install

安装openssl

cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.1.1e.tar.gz
cd openssl-1.1.1e
./config  -fPIC shared  zlib --prefix=/usr/local/openssl
make
make install

安装zlib

cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install

4、安装Nginx

groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.1.1e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.44
注意:--with-openssl=/usr/local/src/openssl-1.1.1e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.44指向的是源码包解压的路径,而不是安装的路径,否则会报错
make
make install
/usr/local/nginx/sbin/nginx #启动Nginx

安装php

安装依赖

1、安装yasm

cd /usr/local/src
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install

2、安装libmcrypt

cd /usr/local/src
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install

3、安装libvpx

cd /usr/local/src
tar zxvf libvpx-1.8.2.tar.gz
cd libvpx-1.8.2
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
make
make install

4、安装tiff

cd /usr/local/src
tar zxvf tiff-4.0.7.tar.gz
cd tiff-4.0.7
./configure --prefix=/usr/local/tiff --enable-shared
make
make install

5、安装libpng

cd /usr/local/src
tar zxvf libpng-1.6.37.tar.gz #解压
xz -d libpng-1.6.37.tar.xz #先解压xz
tar xvf libpng-1.6.37.tar #再解压tar
或者
tar xvJf libpng-1.6.37.tar.xz #直接解压
cd libpng-1.6.37
./configure --prefix=/usr/local/libpng --enable-shared
make
make install

6、安装freetype

cd /usr/local/src
tar zxvf freetype-2.10.1.tar.gz
cd freetype-2.10.1
./configure --prefix=/usr/local/freetype --enable-shared
make
make install

7、安装jpeg

cd /usr/local/src
tar zxvf jpegsrc.v9d.tar.gz
cd jpeg-9d
./configure --prefix=/usr/local/jpeg --enable-shared
make
make install

8、安装GD库

8.1安装新版本libgd,适用于php5.4.x及其以上版本

cd /usr/local/src
tar zxvf libgd-2.3.0.tar.gz
cd libgd-2.3.0
./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/lib64 --with-tiff=/usr/local/tiff
make
make install

8.2安装旧版本gd库,适用于php5.3x及其以下版本

cd /usr/local/src
tar zxvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/lib64 --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install

9、安装t1lib

cd /usr/local/src
tar zxvf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
./configure --prefix=/usr/local/t1lib --enable-shared
make without_doc
make install

10、安装libzip

cd /usr/local/src
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make
make install
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
#拷贝文件,否则安装php可能会报错 /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire

11、安装oniguruma #编译安装php7.4.x需要

cd /usr/local/src
tar -zxf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4
./autogen.sh
./configure --prefix=/usr
make
make install

12、安装低版本openssl #适用于编译php7.3.x及其以下版本

CentOS 8.x默认的openssl版本太高,与php 7.3.x及其以下版本不兼容,需要降低openssl版本才能编译成功
which openssl #查询openssl目录,如/usr/include/openssl
openssl version #查看openssl版本
cd /usr/local/src
mkdir /usr/local/ssl
tar zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config -fPIC  shared  zlib  --prefix=/usr/local/ssl
make
make install
mv /usr/bin/openssl   /usr/bin/openssl.old
mv /usr/include/openssl   /usr/include/openssl.old
mv /usr/lib64/libssl.so     /usr/lib64/libssl.so.old
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -s /usr/local/ssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig -v #建立动态链接
openssl version

注意:带shared参数才能生成libssl.so动态链接库文件,安装curl时, --with-ssl=/usr/local/ssl 才能找到动态链接库,curl才能开启ssl模块

13、安装curl模块

cd /usr/local/src
mkdir /usr/local/curl
tar zxvf curl-7.29.0.tar.gz
cd curl-7.29.0
./configure --without-nss --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
make
make install

编译安装php

注意:如果系统是64位,请执行以下两条命令,否则安装php会出错。

\cp -frp /usr/lib64/libltdl.so* /usr/lib/
\cp -frp /usr/lib64/libXpm.so* /usr/lib/

2.53、安装php5.3.x

cd /usr/local/src
tar -zvxf php-5.3.29.tar.gz
cd php-5.3.29
./configure --prefix=/usr/local/php53 --with-config-file-path=/usr/local/php53/etc --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/gd --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/lib --with-iconv --with-zlib-dir=/usr/local/zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
cp php.ini-production /usr/local/php53/etc/php.ini #复制php配置文件到安装目录
#rm -rf /etc/php.ini #删除系统自带配置文件
#ln -s /usr/local/php53/etc/php.ini /etc/php.ini #添加软链接
cp /usr/local/php53/etc/php-fpm.conf.default /usr/local/php53/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
vi /usr/local/php53/etc/php-fpm.conf #编辑user = www #设置php-fpm运行账号为wwwgroup = www #设置php-fpm运行组为wwwpid = run/php-fpm.pid #取消前面的分号listen = 127.0.0.1:9053:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-5.3.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php53-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php53-fpm #添加执行权限
chkconfig php53-fpm on #设置开机启动
vi /etc/rc.d/init.d/php53-fpm
prefix=/usr/local/php53
php_fpm_BIN=${exec_prefix}/sbin/php53-fpm
:wq! #保存退出
mv /usr/local/php53/sbin/php-fpm /usr/local/php53/sbin/php53-fpm
service php53-fpm start #启动
vi /usr/local/php53/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签2.55、安装php5.5.x
cd /usr/local/src
tar -zvxf php-5.5.38.tar.gz
cd php-5.5.38
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php55 --with-config-file-path=/usr/local/php55/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
cp php.ini-production /usr/local/php55/etc/php.ini #复制php配置文件到安装目录
#rm -rf /etc/php.ini #删除系统自带配置文件
#ln -s /usr/local/php55/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php55/etc/php-fpm.conf.default /usr/local/php55/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
#ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php55/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
listen = 127.0.0.1:9055
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-5.5.38/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php55-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php55-fpm #添加执行权限
chkconfig php55-fpm on #设置开机启动
vi /etc/rc.d/init.d/php55-fpm
prefix=/usr/local/php55
php_fpm_BIN=${exec_prefix}/sbin/php55-fpm
:wq! #保存退出
mv /usr/local/php55/sbin/php-fpm /usr/local/php55/sbin/php55-fpm
vi /usr/local/php55/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。找到:;date.timezone =修改为:date.timezone = PRC #设置时区找到:expose_php = On修改为:expose_php = Off #禁止显示php版本的信息找到:short_open_tag = Off修改为:short_open_tag = ON #支持php短标签找到opcache.enable=0修改为opcache.enable=1 #php支持opcode缓存找到:opcache.enable_cli=1 #php支持opcode缓存修改为:opcache.enable_cli=0在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能:wq! #保存退出2.56、安装php5.6.x
cd /usr/local/src
tar -zvxf php-5.6.40.tar.gz
cd php-5.6.40
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make
make install
如果编译错误,可以清理后在编译一次
make clean #清理
make #编译
cp php.ini-production /usr/local/php56/etc/php.ini #复制php配置文件到安装目录
#rm -rf /etc/php.ini #删除系统自带配置文件
#ln -s /usr/local/php56/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
#ln -s /usr/local/php56/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php56/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
listen = 127.0.0.1:9056
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-5.6.40/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php56-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php56-fpm #添加执行权限
chkconfig php56-fpm on #设置开机启动
vi /etc/rc.d/init.d/php56-fpmprefix=/usr/local/php56
php_fpm_BIN=${exec_prefix}/sbin/php56-fpm
:wq! #保存退出
mv /usr/local/php56/sbin/php-fpm /usr/local/php56/sbin/php56-fpm
vi /usr/local/php56/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出2.70、安装php7.0.x
cd /usr/local/src
tar -zvxf php-7.0.33.tar.gz
cd php-7.0.33
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php70 --with-config-file-path=/usr/local/php70/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
cp php.ini-production /usr/local/php70/etc/php.ini #复制php配置文件到安装目录
#rm -rf /etc/php.ini #删除系统自带配置文件
#ln -s /usr/local/php70/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php70/etc/php-fpm.conf.default /usr/local/php70/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
#ln -s /usr/local/php70/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php70/etc/php-fpm.conf #编辑
pid = run/php-fpm.pid #取消前面的分号
include=/usr/local/php70/etc/php-fpm.d/*.conf
:wq! #保存退出
cp /usr/local/php70/etc/php-fpm.d/www.conf.default /usr/local/php70/etc/php-fpm.d/www.conf
vi /usr/local/php70/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
listen = 127.0.0.1:9070
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-7.0.33/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php70-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php70-fpm #添加执行权限
chkconfig php70-fpm on #设置开机启动
vi /etc/rc.d/init.d/php70-fpm
prefix=/usr/local/php70
php_fpm_BIN=${exec_prefix}/sbin/php70-fpm:wq! #保存退出
mv /usr/local/php70/sbin/php-fpm /usr/local/php70/sbin/php70-fpm
vi /usr/local/php70/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出2.71、安装php7.1.x
cd /usr/local/src
tar -zvxf php-7.1.33.tar.gz
cd php-7.1.33
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php71 --with-config-file-path=/usr/local/php71/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
cp php.ini-production /usr/local/php71/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php71/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php71/etc/php-fpm.conf.default /usr/local/php71/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
ln -s /usr/local/php71/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php71/etc/php-fpm.conf #编辑
pid = run/php-fpm.pid #取消前面的分号
include=/usr/local/php71/etc/php-fpm.d/*.conf
:wq! #保存退出
cp /usr/local/php71/etc/php-fpm.d/www.conf.default /usr/local/php71/etc/php-fpm.d/www.conf
vi /usr/local/php71/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
listen = 127.0.0.1:9071
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-7.1.33/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php71-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php71-fpm #添加执行权限
chkconfig php71-fpm on #设置开机启动
vi /etc/rc.d/init.d/php71-fpm
prefix=/usr/local/php71
php_fpm_BIN=${exec_prefix}/sbin/php71-fpm
:wq! #保存退出
mv /usr/local/php71/sbin/php-fpm /usr/local/php71/sbin/php71-fpm
vi /usr/local/php71/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出2.72、安装php7.2.x
cd /usr/local/src
tar -zvxf php-7.2.29.tar.gz
cd php-7.2.29
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php72 --with-config-file-path=/usr/local/php72/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
make #编译make install #安装
cp php.ini-production /usr/local/php72/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php72/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
ln -s /usr/local/php72/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php72/etc/php-fpm.conf #编辑pid = run/php-fpm.pid #取消前面的分号
include=/usr/local/php72/etc/php-fpm.d/*.conf
:wq! #保存退出
cp /usr/local/php72/etc/php-fpm.d/www.conf.default /usr/local/php72/etc/php-fpm.d/www.conf
vi /usr/local/php72/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
listen = 127.0.0.1:9072
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-7.2.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php72-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php72-fpm #添加执行权限
chkconfig php72-fpm on #设置开机启动
vi /etc/rc.d/init.d/php72-fpm
prefix=/usr/local/php72
php_fpm_BIN=${exec_prefix}/sbin/php72-fpm:wq! #保存退出
mv /usr/local/php72/sbin/php-fpm /usr/local/php72/sbin/php72-fpm
vi /usr/local/php72/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0 在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出2.73、安装php7.3.x
2.73.1
cd /usr/local/src
tar -zvxf php-7.3.16.tar.gz
cd php-7.3.16
export LD_LIBRARY_PATH=/usr/local/libgd/lib
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" #libzip库安装位置,否则安装php可能会报错
./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php73/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd --enable-pdo
make #编译
make install #安装
cp php.ini-production /usr/local/php73/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php73/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
ln -s /usr/local/php73/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php73/etc/php-fpm.conf #编辑
pid = run/php-fpm.pid #取消前面的分号
include=/usr/local/php73/etc/php-fpm.d/*.conf
:wq! #保存退出
cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf
vi /usr/local/php73/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
listen = 127.0.0.1:9073
:wq! #保存退出
1.73.2、设置 php-fpm开机启动(有两种设置方法,选择一种即可)
2.73.2.1 #chkconfig方式
cp /usr/local/src/php-7.3.16/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php73-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php73-fpm #添加执行权限
chkconfig php73-fpm on #设置开机启动
vi /etc/rc.d/init.d/php73-fpm
prefix=/usr/local/php73
php_fpm_BIN=${exec_prefix}/sbin/php73-fpm
:wq! #保存退出
mv /usr/local/php73/sbin/php-fpm /usr/local/php73/sbin/php73-fpm
service php73-fpm start #启动php71-fpm
service php73-fpm stop #停止php71-fpm
2.73.2.2 #systemctl方式
vi /usr/lib/systemd/system/php73-fpm.service #编辑添加以下代码
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php73/sbin/php73-fpm --nodaemonize --fpm-config /usr/local/php73/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
:wq! #保存退出
mv /usr/local/php73/sbin/php-fpm /usr/local/php73/sbin/php73-fpm
systemctl enable php73-fpm.service #设置开机自启动
systemctl daemon-reload #重新加载systemctll
systemctl start php73-fpm.service #启动
systemctl stop php73-fpm.service #停止
systemctl restart php73-fpm.service #重启
2.73.3 配置php配置文件
vi /usr/local/php73/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1
修改为:opcache.enable_cli=0 #php支持opcode缓存
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出
2.74、安装php7.4.x
#恢复CentOS 8.x自带的openssl和curl默认高版本
#php7.4.x中这2个库需要使用CentOS 8.x自带的高版本进行编译--with-openssl  --with-curl
rm -rf /usr/lib64/libssl.so
mv /usr/lib64/libssl.so.old /usr/lib64/libssl.so
rm -rf /usr/include/openssl
mv /usr/include/openssl.old /usr/include/openssl
rm -rf /usr/bin/openssl
mv /usr/bin/openssl.old /usr/bin/openssl
cd /usr/local/src
tar -zvxf php-7.4.4.tar.gz
cd php-7.4.4
export LD_LIBRARY_PATH=/usr/local/libgd/lib #设置libgd库环境变量
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" #设置libzip环境变量
./configure --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-gd --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-xpm=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --with-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-ctype --enable-mysqlnd --enable-pdo
make #编译
make install #安装
./configure --help #可以查看编译参数的写法
cp php.ini-production /usr/local/php74/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php74/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php74/etc/php-fpm.conf.default /usr/local/php74/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
ln -s /usr/local/php74/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php74/etc/php-fpm.conf #编辑
pid = run/php-fpm.pid #取消前面的分号
include=/usr/local/php74/etc/php-fpm.d/*.conf
:wq! #保存退出
cp /usr/local/php74/etc/php-fpm.d/www.conf.default /usr/local/php74/etc/php-fpm.d/www.conf
vi /usr/local/php74/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
listen = 127.0.0.1:9074
:wq! #保存退出
设置 php-fpm开机启动
cp /usr/local/src/php-7.4.4/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php74-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php74-fpm #添加执行权限
chkconfig php74-fpm on #设置开机启动
vi /etc/rc.d/init.d/php74-fpm
prefix=/usr/local/php74
php_fpm_BIN=${exec_prefix}/sbin/php74-fpm
:wq! #保存退出
mv /usr/local/php74/sbin/php-fpm /usr/local/php74/sbin/php74-fpm
vi /usr/local/php74/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1
修改为:opcache.enable_cli=0 #php支持opcode缓存
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出
#恢复openssl安装版本
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -s /usr/local/ssl/lib/libssl.so /usr/lib64/libssl.so
ldconfig -v #建立动态链接
openssl version

配置nginx支持php

 vi /usr/local/nginx/conf/nginx.conf  #修改/usr/local/nginx/conf/nginx.conf user www www;  #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错index index.html index.htm index.php; #添加index.php
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9053;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;
}
#取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
systemctl restart nginx.service #启动#重启nginx
service php71-fpm start #启动php71-fpm

多版本php共存总结

1、规划php安装路径

/usr/local/php53
/usr/local/php55
/usr/local/php56
/usr/local/php70
/usr/local/php71
/usr/local/php72
/usr/local/php73
/usr/local/php74

2、编译php参数

./configure --prefix=/usr/local/php53 --with-config-file-path=/usr/local/php53/etc --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/gd --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/lib --with-iconv --with-zlib-dir=/usr/local/zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php55 --with-config-file-path=/usr/local/php55/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php70 --with-config-file-path=/usr/local/php70/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php71 --with-config-file-path=/usr/local/php71/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php72 --with-config-file-path=/usr/local/php72/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd
./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php73/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl=/usr/local/ssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl=/usr/local/curl --enable-ctype --enable-mysqlnd --enable-pdo
./configure --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-gd --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-xpm=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --with-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-ctype --enable-mysqlnd --enable-pdo

3、php开机启动设置

cp /usr/local/src/php-5.3.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php53-fpm
vi /etc/rc.d/init.d/php53-fpm
prefix=/usr/local/php53
php_fpm_BIN=${exec_prefix}/sbin/php53-fpm
mv /usr/local/php53/sbin/php-fpm    /usr/local/php53/sbin/php53-fpm

4、php监听端口设置

vi /usr/local/php53/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
listen = 127.0.0.1:9053

5、nginx结合php

修改nginx站点配置文件
/usr/local/nginx/conf/nginx.conf
fastcgi_pass 127.0.0.1:9053;
根据之前php的设置,选择相应的端口,例如9053对应的php版本是php5.3.x
那么此站点的php版本就为php5.3.x
fastcgi_pass 127.0.0.1:9055;
根据之前php的设置,选择相应的端口,例如9055对应的php版本是php5.5.x
那么此站点的php版本就为php5.5.x

CentOS 8.x + MySQL8.0.x + php 7.4组合建议使用系统自带的GD库进行编译,php驱动只有mysqli和mysqlnd驱动。

CentOS 8.x + MySQL8.0.x + php 7.3/7.2/7.1/7.0/5.6/5.5组合建议使用libgd-2.3.0进行编译,php驱动包括mysqli和mysqlnd

CentOS 8.x + MySQL8.0.x + php 5.3组合建议使用gd-2.0.35进行编译,php驱动只有mysqlnd

CentOS 8.x + MySQL8.0.x + php 5.4/5.2此组合目前编译安装php存在问题,MySQL8.0.x默认没有php5.2驱动,php5.4存在void (*data);的bug,需要修改gd文件,不推荐。

推荐:CentOS 8.x + MySQL8.0.x使用php 7.3/7.2/7.1/7.0/5.6/5.5组合最佳。

lnmp全能环境(编译安装多版本php)相关推荐

  1. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  2. CentOS 6.5 生产环境编译安装LNMP

    一.环境准备 1.操作系统安装:CentOS 6.5 64位最小化安装. 2.配置好IP.DNS.网关.主机名 3.配置防火墙,开启80.3306端口 vim /etc/sysconfig/iptab ...

  3. 【Ubuntu】安装python环境(一个脚本编译安装任意版本)

    前言 最近弄了个新装的Ubuntu系统,尽管里面有自带的python3环境,但是没有我想要用的python版本环境,看到网上的各种编译安装,都是各种繁琐的步骤,其实也不利于一些计算机基础比较差的同学安 ...

  4. LNMP源码编译安装(centos7+nginx1.9+mysql5.6+php7)

    LNMP安装教程: 1.准备工作: 1)把所有的软件安装在/Data/apps/,源码包放在/Data/tgz/,数据放在/Data/data,日志文件放在/Data/logs,项目放在/Data/w ...

  5. LNMP源码编译安装及一键部署LNMP架构

    目录 一.LNMP 1.LNMP介绍 1.1 LNMP工作原理 1.2.LAMP工作原理 2.LAMP和LNMP的区别 3.编译安装的优点 4.各组件的主要作用 三.LNMP架构的部署 1.安装ngi ...

  6. 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3)

    CentOS 7升级GCC 正文开始@Assassin 目录: CentOS 7升级GCC 基本执行步骤: 1. 切换用户: 2. 安装centos-release-scl: 3. 安装devtool ...

  7. Win10 OpenCV编译安装CUDA版本

    Win10 + Microsoft Visual Studio Community 2017 + CUDA11.3 + CUDNN8.2 + RTX GeForce 3090 + OpenCV4.5. ...

  8. Linux环境Nginx安装多版本PHP

    关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922 linux版本:64位Cent ...

  9. Linux环境编译安装Mysql以及PHP中文乱码解决

    mysql安装  5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...

最新文章

  1. 百度Apollo飘了!在京开启全无人RoboTaxi体验,车型还能选,原因竟是嫌40万人次体验不够...
  2. Adprep 无法完成,原因是回叫功能失败
  3. 线性稀疏自编码机_特征工程之特征缩放amp;特征编码
  4. 打造自己Django博客日记
  5. 斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...
  6. android 桌面视频播放器,ZY-Player ,一款跨平台桌面端视频资源播放器
  7. LinkedList作者说他自己都不用LinkedList?看完给我整不会了。。
  8. 回顾Google IO 2016 -Keynote【图解】
  9. 最牛逼android上的图表库MpChart(三) 条形图
  10. 极域电子教室超级管理员密码
  11. 米思齐Mixly图形化编程---呼吸灯与可调档位灯
  12. 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
  13. 毕业设计论文 基于遥感影像的道路材质信息提取方法研究
  14. matplotlib - spines 设置
  15. LT3759 宽输入电压范围升压 / 负输出 / SEPIC 控制器 可在输入电压低至 1.6V 的情况下工作...
  16. Typora + PicGo + 七牛云图床
  17. java 九大行星运行_html5 canvas太阳系九大行星运行动态图代码
  18. Day 73 Npm包管理 +Express+路由+中间件
  19. UDF开发手册 - UDF
  20. 很多朋友问我:什么是博客?为什么要博客!

热门文章

  1. linux下的rar命令,Linux下的压缩解压命令
  2. 万名达人参与,千万粉丝撑腰,美的“焕新吧,冰箱”一路冲冲冲
  3. Oxygen XML Editor Enterprise主题引用的可能性
  4. 各大互联网公司java开发面试常问问题
  5. DataFrame的行数和列数计算
  6. 3.5 Window Functions
  7. java批改算数题,一秒批改数学题 小猿口算横式题目批改准确率达99.9%
  8. python getitem用法_Python:在__getitem__中实现切片
  9. 计蒜客-字符串弱等于
  10. Python骚操作之第二话常用语句及经典案例