如何在每个用户的public_html目录中启用php脚本的执行

时间:2014-07-11 12:14:32

标签: php apache

我有一个php脚本来上传目录中的文件。 这在apache的DocumentRoot中工作正常。 当我复制我的/home/$USER/public_html中的代码时,而不是正确的输出我只是在打印出php文件时。我认为它没有被执行。

我正在调查userDir模块并找到了这个

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

includesNoExec看起来很有希望,但它只与cgi有关。

那么如何为每个用户启用php脚本?

4 个答案:

答案 0 :(得分:3)

尝试设置此配置:

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_value engine On
    </Directory>
</IfModule>

不要忘记重启Apache。

答案 1 :(得分:1)

我假设你像我一样在debian上使用apache2,我认为解决方案 对于你来说是添加别名目录并设置别名dir配置如下

1从终端运行此命令编辑apache2配置

sudo gedit /etc/apache2/sites-enabled/000-default

2编辑执行PHP文件的路径并保存

Alias /testdir /home/user/testdir
<Directory /home/user/testdir>
    Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All   
</Directory>

3重启apache2

sudo service apache2 restart

检查如果您可以从浏览器访问该文件夹,则可能不得不chmod / chown该文件夹

yourhost / TESTDIR

答案 2 :(得分:1)

根据Apache 2.2 documentation,可以通过取消注释此配置行来完成此操作:

#Include conf/extra/httpd-userdir.conf

并修改httpd-userdir.conf以适合您的服务器。根据您的qustion文本,这可以解决您的问题。

答案 3 :(得分:0)

事实证明,Claudix提供的重要代码已存在于/etc/apache2/mods-available/php5.conf

下的配置文件中

该子句包含php_admin_value engine Off,因此通过在任何地方设置Claudix解决方案都会与此设置冲突。更重要的是,上面的评论建议不要设置php_admin_value engine On因为它呈现.htaccess文件无法禁用php。

因此,在用户www目录中运行php的正确方法是在/etc/apache2/mods-available/php5.conf

中注释相关文本