参考文章:httpd.conf:无法将模块/libphp7.so 加载到服务器:/usr/local/httpd/modules/libphp7.so:无法打开共享对象文件:没有这样的文件或目录
CentOS7+php7.4(7.x)+apache2.4,apache的module文件夹中没有libphp7.so,导致无法解析
1.配置Apache解析php
在配置apache解析php时,在httpd.conf中有几处需要修改的地方
1.1第一处
用以加载php模块
LoadModule php7_module modules/libphp7.so
1.2第二处
用以添加网站索引文件 ,访问一个网站地址时,服务器会按顺序从根目录寻找索引文件,先找index.html,如果没有,就会接着寻找index.php,然后将索引文件显示出来。
DirectoryIndex index.html index.php
1.3第三处
用以添加解析类型,将.php添加到可解析的类型中,作为application/x-httpd-php类型进行解析)
AddType application/x-httpd-php .php
2.问题所在
当这三处地方都写入文件后,httpd.conf就配置得能解析php了,而此次,我们的问题就出在第一处中。
2.1原因
某些网上的安装apache方式缺少部分内容,使apache的module文件夹中没有libphp7.so,导致了这些问题。
2.2症状
2.2.1重启httpd服务时提示:
不能加载libphp7.so,没有libphp7.so这个文件
httpd: Syntax error on line 154 of /usr/local/httpd/conf/httpd.conf: Cannot load modules/libphp7.so into server: /usr/local/httpd/modules/libphp7.so: cannot open shared object file: No such file or directory
2.2.2文件直接下载
打开index.php后直接下载了这个php文件,而不是解析并显示出来
2.2.3直接显示php源码
打开index.php后直接显示php文件的源码,而不是解析并显示出来
3解决
重装php7.4,使用以下的命令安装。
3.1重装php7.4(或是7.x)
注:以下内容摘自参考文章内容,不要忘了把php71改成php74。
我把解决方法放在这里,它可能会帮助到一些人。 通过使用它,你可以安装任何版本的 php7.x
以下是在 Centos7 上安装 apache 和 php7.1 的过程yum install -y yum-utils
Apache安装
yum -y install httpd
PHP 7 rpm(其中也包括了 php7.1、php7.2、php7.3、php7.4)
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
使用
remi-php71
以安装php7.1,或是用 remi-php72 、 remi-php73、 remi-php74 (替换下方命令中的remi-php71)来安装其他的 php7.x 版本yum-config-manager --enable remi-php71
它将从上面启用的 repo 安装 php 版本
yum -y install php
这会自动将 libphp7.so 文件放入模块(module)文件夹并解决上述问题
3.2配置完成
接下来按照Apache正常的配置顺序挨个配置下去,就可以配置完成了。
可以在apache的根目录中查看index.php是否显示成功,来确认是否成功解析,也可以自己创建一个index.php放入根目录,内容为显示php信息,若成功显示即是配置成功。如下图。
#index.php
<?php
echo phpinfo();
?>