因此,我建立了一个/var/www
由 root 拥有的站点,可以毫无问题地运行 PHP。
我创建了一个用户,将其添加www-data
到该用户组,并设置了一个指向的虚拟站点/home/user/public_html
。我成功浏览到与该虚拟站点关联的域,并且它从那里加载 HTML 没有任何问题。
但是,当我创建index.php
并输入一些简单的 php( <?php echo '<h1>test</h1>'; ?>
) 时,它会显示 php 源代码。
根拥有的站点中的 PHP 运行良好;用户拥有的站点中的 PHP 显示源代码。
所以我知道 php 正在与 apache2 一起工作,只是没有用户参与。
PHP 是否以 www-data 以外的其他方式运行?那么我是否需要像我所做的那样将其他用户添加到我的用户组中www-data
?
这有道理吗?提前感谢帮助...我正在慢慢学习。:)
答案1
默认情况下,php 在 /home/*/public_html 中被明确禁用。要在 ubuntu 14.04 上更改此设置,
cd /etc/apache2/mods-enabled/
sudo cp php5.conf my-php5.conf
sudo rm php5.conf
并通过更改行来编辑 my-php5.conf
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
到
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
# php_admin_flag engine Off
</Directory>
</IfModule>
然后重新启动 apache
sudo /etc/init.d/apache2 restart
对于其他版本的 ubuntu,这些命令可能需要进行一些更改。