我已经搜索了一下,但我没有任何帮助我的东西。
我在LAMP环境中工作。我的网站的文档根目录在/ var / www上,我已经将Apache配置为与用户“vendor”一起运行。
现在,我已经创建了一个子文件夹/ var / www / plugins,我希望这个子文件夹的页面上的任何http请求都可以作为“客户端”执行。目标是将插件系统用于我的客户端,但我不希望他们看到项目核心的代码。因此,如果他的代码是由另一个用户执行的,我可以设置文件的权限,以选择我让他包含和阅读的文件。
我试过使用UserDir指令,但是当我调用php函数get_current_user()时, 我还有“供应商”。
请帮助我;(
答案 0 :(得分:0)
解决方案是使用apache模块suPHP。安装它,使用命令
启用它a2enmod suphp
然后,要进行配置,您必须执行以下操作:
1.在apache2.conf中,在文件末尾添加以下行:
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so
2.在文件/etc/apache2/mods-available/suphp.conf
中<IfModule mod_suphp.so>
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php5 .php
suPHP_AddHandler x-httpd-php
suPHP_AddHandler x-httpd-php5
suPHP_Engine on
#Use a specific php config file (a dir which contains a php.ini file)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Tells mod_suphp NOT to handle requests with the type <mime-type>.
# suPHP_RemoveHandler <mime-type>
</IfModule>
3.在文件/etc/suphp/suphp.conf
中[handlers]
;Handler for php-scripts
application/x-httpd-php5="php:/usr/bin/php5-cgi"
application/x-httpd-php="php:/usr/bin/php5-cgi"
4.在虚拟主机文件中,对于要与其他用户执行的目录:
<Directory "/your/folder">
php_admin_flag engine off
suPHP_Engine on
suPHP_AddHandler application/x-httpd-php5
suPHP_AddHandler application/x-httpd-php
</Directory>
这样做,当您在此文件夹中执行php文件时,执行者将成为该文件的所有者。
感谢EJEHardenberg,你的评论让我找到了这个问题的答案。