我刚刚重新安装了 Apache 和 PHP5,但当我访问我的文档根目录时,它只会下载一个“下载”文件。当我尝试文档根目录/index.php 它只是下载 PHP 文件。
我安装了 PHP,但 Apache 似乎不想执行它。
有人建议在我的文件中添加“加载模块”行,httpd.conf
但我没有该文件。
答案1
键入:
sudo apt-get install apache2 php5 libapache2-mod-php5
将安装您需要的所有内容并启动支持 PHP 的 apache 服务器。
要验证 php 模块是否已加载,请输入:
a2query -m php5
如果未启用,则加载:
sudo a2enmod php5
然后重新启动 Apache:
sudo service apache2 restart
针对 php7.x 进行更新(已在 Ubuntu 16.04、16.10、18.04、18.10 上测试))
感谢评论,我更新了 php7.x 的答案。
安装:
sudo apt-get install apache2 php7.x libapache2-mod-php7.x
核实:
a2query -m php7.x
加载:
sudo a2enmod php7.x
重新启动apache:
sudo service apache2 restart
答案2
另一个常见原因是<?
默认的 php.ini 配置未启用 php 短标签,因此升级或重新安装后,该设置可能会被关闭,而 php 代码可能依赖于它。请尝试<?
用替换<?php
。
(信用)
答案3
Ubuntu 16.04已移至 PHP 7。此命令将为您完成该工作:
sudo apt-get install apache2 php libapache2-mod-php
这libapache2-mod-php
是一个安装 libapache2-mod-php7 的元包。
答案4
UserDir
对于那些在未来近 6 年(甚至更久)后从 Google 找到这篇帖子的人来说,您在使用该模块时可能会遇到 Apache 2 和 PHP 7 的这个问题。
导致此问题的另一个可能原因是您尝试从模块的“用户目录”中运行脚本。默认情况下,禁用在用户目录中运行 PHP 脚本。如果脚本位于主文件夹中的目录中,并且您尝试从中访问它,UserDir
则会遇到此问题。public_html
http://localhost/~your_username
要解决此问题,请打开/etc/apache2/mods-enabled/php7.2.conf
。您必须评论或删除底部的标签块,内容如下
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>