CentOS 8.x编译安装Nginx1.16.x+MySQL8.0.x+PHP7.4.x 7.3.x 7.2.x 7.1.x 7.0.x 5.6.x 5.5.x 5.3.x 多版本全能环境
前传:
1、CentOS 8.0.1905系统安装配置图解教程
http://www.osyunwei.com/archives/10256.html
2、CentOS服务器初始化设置
http://www.osyunwei.com/archives/9034.html
准备篇
一、防火墙配置
CentOS 8.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl mask firewalld
systemctl stop firewalld
yum remove firewalld
2、安装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 #使配置立即生效
三 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
四、下载软件包
1、下载nginx
http://nginx.org/download/nginx-1.16.1.tar.gz
2、下载MySQL
http://mirrors.sohu.com/mysql/MySQL-8.0/mysql-8.0.19.tar.gz
3、下载php
http://mirrors.sohu.com/php/php-7.4.4.tar.gz
http://mirrors.sohu.com/php/php-7.3.16.tar.gz
http://mirrors.sohu.com/php/php-7.2.29.tar.gz
http://mirrors.sohu.com/php/php-7.1.33.tar.gz
http://mirrors.sohu.com/php/php-7.0.33.tar.gz
http://mirrors.sohu.com/php/php-5.6.40.tar.gz
http://mirrors.sohu.com/php/php-5.5.38.tar.gz
http://mirrors.sohu.com/php/php-5.4.45.tar.gz
http://mirrors.sohu.com/php/php-5.3.29.tar.gz
http://museum.php.net/php5/php-5.2.17.tar.gz
http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
4、下载cmake(MySQL编译工具)
https://github.com/Kitware/CMake/releases/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 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
安装篇
以下是用putty工具远程登录到服务器,在命令行下面操作的
一、安装MySQL
1、安装rpcsvc-proto
cd /usr/local/src
tar zxvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make
make install
2、安装cmake
cd /usr/local/src
tar zxvf cmake-3.15.4.tar.gz
cd cmake-3.15.4
./configure
make
make install
3、安装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 #进入目录
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 -DWITH_BOOST=/usr/local/boost
make #编译
make install #安装
编译出错, 重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)
cd /usr/local/mysql #进入MySQL安装目录
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系统数据库
--initialize表示默认生成密码, --initialize-insecure 表示不生成密码, 密码为空。
看到这一行[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: LZrRpp40AG*-
记录下自动生成的mysql管理员root账号登录密码LZrRpp40AG*-
vi /usr/local/mysql/my.cnf #mysql 8.0.x默认没有配置文件,我们自己创建一个。
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user = mysql
socket=/tmp/mysql.sock
tmpdir = /tmp
key_buffer_size=16M
max_allowed_packet=128M
default_authentication_plugin=mysql_native_password #设置加密方式为mysql_native_password,MySQL 8.0.x默认使用caching_sha2_password加密。
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1
character-set-server = utf8
federated
max_connections = 1000
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=0
back_log=100
default-storage-engine = InnoDB
log_slave_updates = 1
[mysqldump]
quick
[client]
# The following password will be sent to all standard MySQL clients
password="my password"
[mysqld-8.0]
sql_mode=TRADITIONAL
[mysqladmin]
force
[mysqld]
key_buffer_size=16M
:wq! #保存退出
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 #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
:wq! #保存退出
source /etc/profile #使配置立刻生效
下面这两行把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 -u root -p #输入之前生成的密码LZrRpp40AG*-回车
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改密码,NEVER表示密码永不过期
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456' PASSWORD EXPIRE NEVER; #使用WITH mysql_native_password加密
#MySQL 8.0.x加密方式从mysql_native_password 更改为 caching_sha2_password,mysql8.0.x之前的客户端远程连接可能报错:authentication plugin caching_sha2
flush privileges; #刷新系统授权表
exit #退出mysql控制台
4、创建MySQL数据库、添加用户并授权
数据库名称:www.osyunwei.com
数据库用户名:osyunwei.com
数据库密码:osyunwei
授权osyunwei.com用户对www.osyunwei.com具有全部操作权限
继续在mysql控制台操作
mysql -u root -p #输入刚刚修改过的密码123456,回车
4.1、Create DATABASE IF NOT EXISTS www.osyunwei.com default charset utf8 COLLATE utf8_general_ci; #创建数据库
4.2、CREATE USER 'osyunwei.com'@'localhost' IDENTIFIED BY 'osyunwei'; #创建用户
CREATE USER 'osyunwei.com'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'osyunwei'; #加密方式为mysql_native_password
4.3、grant all privileges on www.osyunwei.com.* to 'osyunwei.com'@'localhost'; #授权用户osyunwei.com对数据库www.osyunwei.com具有全部操作权限
grant all privileges on www.osyunwei.com.* to 'osyunwei.com'@'127.0.0.1'; #授权用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; #授权root用户具有全部数据库本地权限
4.4、MySQL5.7版本后要授权用户对所有数据库有SUPER权限,否则上一步对用户的授权只能连接但无任何操作权限。
grant SUPER on *.* to 'osyunwei.com'@'localhost' ; #授予用户对所有数据库有SUPER权限,否则只能连接无任何操作权限。
grant SUPER on *.* to 'osyunwei.com'@'127.0.0.1' ;
flush privileges; #刷新系统授权表
exit #退出mysql控制台
service mysqld restart #重启mysql数据库
二、安装Nginx
1、安装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
2、安装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
3、安装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
设置nginx开机启动
vi /lib/systemd/system/nginx.service #添加以下代码
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
ExecStartPost=/bin/sleep 0.1
PrivateTmp=true
[Install]
WantedBy=multi-user.target
:wq! #保存退出
/usr/local/nginx/sbin/nginx -s stop #停止
systemctl enable nginx.service #设置开机自启动
systemctl start nginx.service #启动
systemctl stop nginx.service #关闭
systemctl restart nginx.service #重启
systemctl reload nginx.service #重新加载配置文件
在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。
扩展阅读:
Nginx配置txt、pdf、doc、xls等文件直接下载的方法
在nginx配置文件中添加以下代码
location / {
if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){
add_header Content-Disposition: 'attachment;';
}
}
三、安装php
(一):安装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 #适用于编译php5.6.x及其以下版本
CentOS 8.x默认的openssl版本太高,与php 5.6.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/
1.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运行账号为www
group = www #设置php-fpm运行组为www
pid = 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短标签
1.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! #保存退出
1.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-fpm
prefix=/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! #保存退出
1.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! #保存退出
1.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! #保存退出
1.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! #保存退出
1.73、安装php7.3.x
1.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开机启动(有两种设置方法,选择一种即可)
1.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
1.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 #重启
1.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! #保存退出
1.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,或者使用绝对路径
/etc/init.d/nginx restart #重启nginx
service php71-fpm start #启动php71-fpm
说明:
fastcgi_pass 127.0.0.1:9000;中使用端口号来区分php版本,需要使用哪个php版本就修改为相应的端口。
9074对应的php版本是php7.4.x
9073对应的php版本是php7.3.x
9072对应的php版本是php7.2.x
9071对应的php版本是php7.1.x
9070对应的php版本是php7.0.x
9056对应的php版本是php5.6.x
9055对应的php版本是php5.5.x
9053对应的php版本是php5.3.x
五、多版本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
测试篇
cd /usr/local/nginx/html/ #进入nginx默认网站根目录
rm -rf /usr/local/nginx/html/* #删除默认测试页
vi index.php #新建index.php文件
<?php
phpinfo();
?>
:wq! #保存退出
chown www.www /usr/local/nginx/html/ -R #设置目录所有者
chmod 700 /usr/local/nginx/html/ -R #设置目录权限
在浏览器中打开服务器IP地址,会看到下面的界面
后记:
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存在问题,不推荐。
推荐:CentOS 8.x + MySQL8.0.x使用php 7.3/7.2/7.1/7.0/5.6/5.5组合最佳。
php各个小版本的安装过程相同,如php 7.3.10和php 7.3.16安装过程一样。
至此,CentOS 8.x编译安装Nginx1.16.x+MySQL8.0.x+PHP7.4.x 7.3.x 7.2.x 7.1.x 7.0.x 5.6.x 5.5.x 5.3.x 多版本全能环境教程完成。