Centos7安装php7.2

centos7系列自带php版本为5.4,有些网页程序需要使用php7.0以上的版本,因此只能去php官网下载最新稳定版本然后编译安装。

1 下载安装包,解压

当前最新版本为7.2.11

wget http://101.96.10.64/cn2.php.net/distributions/php-7.2.11.tar.gz

tar -xzvf php-7.2.11.tar.gz

2 编译安装

2.1 首先安装apache

yum install httpd -y

systemctl restart httpd

systemctl enable httpd

2.2 安装前准备依赖

yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel -y

2.3 开始编译,安装

cd php-7.2.11/

下面这些命令可以全选一起复制粘贴执行,不必一条条复制。

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

 

编译安装

make && make install

如果不报错,就安装玩了

报错解决:


出现 configure: error: mcrypt.h not found. Please reinstall libmcrypt时

cd /usr/local/src
wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gztar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local
make 
make install

出现 Don't know how to define struct flock on this system, set --enable-opcache=no


[root@localhost php-7.1.0]# vi /etc/ld.so.conf  
include ld.so.conf.d/*.conf
# 添加这行
/usr/local/lib
~
#保存后使之生效
ldconfig -v


2.4 配置环境变量

vi /etc/profile

在文件末尾加入下面两行

PATH=$PATH:/usr/local/php/bin
export PATH

source /etc/profile

就可以了

php.png

2.5 配置php-fpm

cp php.ini-production /etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

启动php-fpm

/etc/init.d/php-fpm start

3 测试apache环境下php是否正常

安装完之后, 可以直接运行PHP内建的web server,

# 使用/var/www/html/ 作为root目录, 使用php.ini作为环境配置
php -S 0.0.0.0:80 -t /var/www/html -c php.ini
# 后台运行, 且不保留任何输出
nohup php -S 0.0.0.0:80 -t /var/www/html >/dev/null 2>&1 &# 后台运行, 将日志输出到当前路径下的phpd.log
nohup php -S 0.0.0.0:80 -t /var/www/html >phpd.log 2>&1 &# 后台运行, 将日志输出到当前路径下的phpd.log, 使用bar.php作为路由脚本
nohup php -S 0.0.0.0:80 -t /var/www/html bar.php >phpd.log 2>&1 &

路由脚本: 每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器


以上测试一般都会正常,但是远远不够,继续测试 

进入apache网站根目录,创建个phpinfo的index.php文件

cd /var/www/html

vim index.html

<?php
phpinfo();
?>

输入服务器的IP地址发现它仅仅显示了test页面,并没有如预料的那样显示phpinfo网页,说明apache还不支持php,这是因为它没有安装php模块,下面开始解决这个问题

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum install mod_php72w

重启apache

systemctl restart httpd

再刷新一下IP,发现可以正常显示phpinfo的页面了。

4 nginx相关

配置php和php-fpm

# 将默认的产品配置文件复制到配置目录cp /usr/src/php-7.1.0/php.ini-production /usr/local/php/etc/php.ini
# 复制默认的php-fpm配置文件
cd /usr/local/php/etc/mv php-fpm.conf.default php-fpm.confmv php-fpm.d/www.conf.default php-fpm.d/www.conf
# 将php-fpm添加到服务
cd /usr/src/php-7.1.0/sapi/fpm/cp init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpm 
chkconfig --add php-fpm
chkconfig php-fpm on
systemctl start php-fpm
# 检查是否正常运行ps aux|grep php-fpm

修改nginx配置文件支持PHP

vi /opt/nginx/conf/nginx.conf

# 把前面的#注释符号去掉,把script改为$document_root最终如下:
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
    include        fastcgi_params;
}

然后重新载入nginx配置, 安装就完成了


5、采用yum方式安装


326  yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

327  yum repolist

328  yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

329  yum repolist

330  rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum install php72w

php -v





最后编辑于:2018/10/18作者: admin

发表评论