现在在Ubuntu 14.04服务器上,WordPress(和Apache2)使用www-data:www-data创build文件夹www-data:www-data owner:group。 目标是让Apache根据所服务的站点来创build不同所有者的文件。 wp_one:www-data一个WordPress实例中的wp_one:www-data ,另一个WordPress实例中的wp_two:www-data 。
如果只需要一个用户,那么更改/ etc / apache2 / envvars中的APACHE_RUN_USER值将会起作用。 但是每个WordPress实例都需要不同的所有者。
逻辑位置似乎在每个站点的虚拟主机configuration文件中。 但是我不能把它拉下来。
在虚拟主机中添加Apache将会尊重的所有者的语法是什么?
这不起作用:
<Directory /var/www/wpone> export APACHE_RUN_USER=wp_one </Directory>
也没有这个:
<Directory /var/www/wpone> User: name="wp_one" </Directory>
我想从一台服务器运行很多WP实例,每个服务器都有不同的所有者,彼此隔离。 我的权限问题可以通过将所有者添加到www-data组来解决,但是每个人都可以访问服务器上的其他WP实例。
你可以使用apache2-mpm-itk来代替
准备testing环境
# useradd -d /vhosts/wp1.example.net/ wp1 # mkdir -p /vhosts/wp1.example.net/public_html # mkdir -p /vhosts/wp1.example.net/temp # chmod 770 /vhosts/wp1.example.net/ # chown -R wp1:wp1 /vhosts/wp1.example.net/
创buildtesting虚拟主机
<VirtualHost *:80> ServerName wp1.example.net ServerAdmin webmaster@localhost DocumentRoot /vhosts/wp1.example.net/public_html php_admin_value upload_tmp_dir /vhosts/wp1.example.net/tmp/ php_admin_value session.save_path /vhosts/wp1.example.net/tmp/ AssignUserID wp1 wp1 <Directory /vhosts/wp1.example.net/public_html> Options -Indexes AllowOverride all Require all granted </Directory> </VirtualHost>
创build示例脚本
# cat test.php <?php echo exec('id');
基本testing
# curl http://wp1.example.net/test.php uid=1004(wp1) gid=1004(wp1) groups=1004(wp1)