centos 安装php72和插件开关

网上很多这样的教程但都有很多问题这里就说说我的安装使用过程:

条件:

  1. centos系统安装好,楼主用的是centos7;
  2. apache服务器

配置yum源(Centos 7上)

网上很多源码安装教程,表示太麻烦,反正楼主是只有少数依赖少的软件能源码安装成功。依赖太多的表示太坑,不适合新手。

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm   
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 

安装后可以在/etc/yum.repos.d/下面看到webkit的源文件
之后是更新源:

yum update

删除已经安装的php版本:

yum remove php*
rpm -qa|grep php
rpm -e '上面列出来的php软件'

只用yum remove 很多时候删不干净,楼主就被这个坑过,安装新版之后有的插件不能启动。必需要删干净了安装很多功能才能实现。

安装php72w

yum search php		//列出可用的php包只要源配置好了下面应该就有php72w的包和各插件
yum -y install php72W-*	//这里可以选择安装,不用的插件就不安装

这里有可能会有个冲突,不用管。在安装那句里加上--skip broken选项就可以 了,只有在yum所冲突的时候用。好像是因为mysql 插件停用的原因。
到这里php7.2就安装好了,可以在你的/var/www/下面建立一个test.php文件

<?php
phpinfo();
?>

网页中打开看apache能不能解析php了。如果可以那就安装成功了。楼主第一次安装到这里就可以了,但第二次安装的时候就有问题了,apache还是不能解析php文件,网上各种找问题。最终发现问题所在,apache不能找到php模块。baidu一堆自己改httpd.conf文件,但是怎么改都找不到,/etc/httpd/modules.conf/文件下面完全没有所谓的libmysql.so。于是就想是不是没有安装php库,果然各种搜发现少安装一个包mod-php72w,yum install mod-php*安装之后再看/etc/httpd/conf.d下面的各文件,多了一个php.conf。表示已经加载php模块。再次打开网页php文件解析成功。至此php安装完成。

Centos 8 上的安装

Centos 8 自带的php是7.2。apache 是 2.4。这两货加一起就麻烦了下面说说我遇到的麻烦。

  • apache 2.4 取消设置关键字NameVirtualHost
  • Listen 关键字要指定域名或ip
  • Centos 8自带php7.2使用php-fpm管理
  • apache 2.4 目录权限管理使用Require all granted,不再使用Order deny,allow
    Deny from all

这几点改变还是够烦人的下面一条一条说。
第一条只会在/var/log/httpd/error_log 中出一个提示信息,但不知道还是要去网上看看这是什么意思。可以直接删除原nameVirtualHost 那一句就可以了。
第二条花了好长时间才想到问题所在。刚看到要加ip的直接想的就是加成:127.0.0.1:8080localhost:8080这个样子。加是方便了,加了之后外网怎么都找不到主机,ssh服务都能登录,http怎么都上不去。一直考虑是防火墙问题,各种改防火墙,没用。用nmap 扫描 127.0.0.1 和 192.168.2.3 结果都不一样。127.0.0.1 上面 8080 是开启的 192.168.2.3 上面又没开。冷静下来灵光一闪才想到改成 192.168.2.3:8080 才解决。还有个提醒是一定确定关闭 iptables , firewalld 。先只关了 firewalld 没关 iptables 也是各种没权限。
第三条之前Centos 7 时代使用php7.2 时管理php 和 apache 连接的是mod-php。 装上就可以使用,怎么改apache 的User 和 Group 都可以。Centos 8 中的php-fpm是有设置User 和 Group 的。也就是说改变httpd.conf 的User 和 Group 后还要改变 php-fpm 中的 User 和 Group 。值得注意的是 php-fpm/www.conf 中有两个地方提到 User 和 Group 两个地方都要改才能工作。要不然你的apache 可能只能解析html ,遇到php 文件就不可用了。
第四条和前面三条比起来这个改过来简单,烦人的就是几个地方都会出现权限问题。(iptables 没关或策略不正确、当前用户和用户组设置不正确(apache没有设置正解,php-fpm没有设置正确))
以上问题是在开启多个端口虚拟主机时遇到的。另一篇开启多个虚拟主机的文章加入一个Zend Project在apache 中。

插件的开启和关闭

网上教程总是很多坑,想找个开启mysqli插件的方法,各种让改httpd.conf。但我的httpd.conf里完全没有extension=php_mysqli.dll或extension=php_mysqli.so那一行,试过自己加,也是不能用。哦,这里要说下察看插件有开那些就是看上面给出的test.php页里面会有你开了的插件信息,废话不多说,最后楼主自己摸索发现/etc/文件夹里面有个php.d的文件,找开里面不就是一堆php插件信息。察看了下内容,每个文件都很简单,一条注释,一条语句。对于要开启的更改下第二条语句就是了。下面有很多文件,多看几个就知道怎么开怎么关了。更改之后要重启httpd.

systemctl restart httpd.service

这样就轻松完成了插件的开启和关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值