所以我已经在Ubuntu机器上安装了LAMP用于一些php开发,除了解析和显示php页面之外,一切都很好,浏览器询问我是否要下载它们。我知道这是一个有详细记录的问题,我已经浏览了Ubuntu的相关页面,并研究了所有可能的原因。我已经安装了libapache2-mod-php5
,在运行sudo a2enmod php5
时,我得到module php5 already enabled
。因此,我认为我已经将问题缩小到php文件授权问题。
现在我应该指出,这只发生在我修改配置文件以允许/home/public_html
中的UserDir
之后。使用/var/www
文件夹中的默认配置,php文件解析得很好,只要我给自己root访问权限或修改他们的权限,就仍然可以。我没有更改配置文件中的任何其他内容。
尝试安装:
sudo apt-get install php5 libapache2-mod-php5
然后重新启动服务。
/etc/init.d/apache2 restart
或者如果使用httpd:
/etc/init.d/httpd restart
所以我用一些真的繁琐的搜索找出了这个问题,我很惊讶这个解决方案没有更广泛地可用,它真的很简单。/etc/apache2/mods-available/php5.conf
文件包含以下行.....
8 # To re-enable php in user directories comment the following lines
9 # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
10 # prevents .htaccess files from disabling it.
11 <IfModule mod_userdir.c>
12 <Directory /home/*/public_html>
13 php_admin_value engine Off
14 </Directory>
15 </IfModule>
…这显然会禁用用户目录中的PHP。这些需要被注释掉。
这解决了我的问题,但我就是不明白为什么:
AddType application/x-httpd-php .php
我在/etc/httpd/conf/httpd.conf
中添加了以上内容当我编辑httpd.conf配置
我在Centos 7上运行PHP 7.0。我必须在我的/etc/httpd/conf/httpd.conf
文件中加载PHP 7模块。
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
<FilesMatch '.php$>
SetHandler application/x-httpd-php
</FilesMatch>
和往常一样,在修改apache
sudo service httpd restart