CentOS7配置apache2.4解析php7.4(7.x),apache的module文件夹中没有libphp7.so,导致无法解析

参考文章: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();
?>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ON_Zero/article/details/126289055