我有一个php脚本来上传目录中的文件。
这在apache的DocumentRoot
中工作正常。
当我复制我的/home/$USER/public_html
中的代码时,而不是正确的输出我只是在打印出php文件时。我认为它没有被执行。
我正在调查userDir
模块并找到了这个
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
includesNoExec
看起来很有希望,但它只与cgi有关。
那么如何为每个用户启用php脚本?
答案 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