php fpm 指定用户,chroot php-fpm进程到用户的家

我正在从单个

PHP实例移动单个服务器上的每个网站(所有网站中的所有文件都由apache拥有,只有默认的PHP库安装时没有PHP-fpm) …我正在为每个网站安装一个PHP-fpm池.

更好的安全性和网站分离是我的目标,最大的目标是1个网站中的PHP脚本无法从其他网站访问PHP脚本.

我显然做错了什么.

我的环境:

> CentOS 7

> PHP 5.4.16

> Apache 2.4.6

这是一个PHP-fpm池配置文件示例:

[root@host]# cat /etc/PHP-fpm.d/website1.com.conf

[website1.com]

user = user1

group = user1

listen = /var/run/PHP-fpm/website1.com.sock

listen.owner = user1

listen.group = user1

PHP_admin_value[disable_functions] = exec,passthru,shell_exec,system

PHP_admin_flag[allow_url_fopen] = on

PHP_admin_value[short_open_tag] = On

pm = ondemand

pm.max_children = 5

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3

chdir = /home/www/website1.com/

这是Apache中相应的vhost文件:

[root@host]# cat /etc/httpd/conf.d/website1.com.conf

ServerAdmin admin@my-host.com

ServerName website1.com

ServerAlias www.website1.com

DocumentRoot /home/www/website1.com/www

Options Includes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

ErrorLog /home/www/website1.com/logs/errors

CustomLog /home/www/website1.com/logs/access_log common

SetHandler "proxy:unix:///var/run/PHP-fpm/website1.com.sock|fcgi://website1.com/"

所有文件和文件夹仅由user1拥有(该组也设置为user1).

我在“website2”中有一个PHP脚本,仍然可以访问“website1”内容. “website2”的PHP-fpm池配置文件中的设置和“website2”Apache vhost配置文件中的设置与网站1相同(不同的文件夹路径,主目录,chroot等…).

这是我的测试脚本,位于/ home / www / website2 / www /,可通过website2.com域名访问:

$test = file_get_contents('/home/www/website1.com/www/wp-config.php');

echo $test;

#$files = scandir('/home/www');

#print_r($files);

?>

但是,此脚本的输出有些出乎意料.我没有看到wp-config.php的全部内容.相反,我看到的是超出文件中某一点的所有内容(如果您熟悉wp-config.php,我会在define(‘SECURE_AUTH_KEY’,’foo’)条目之后看到所有内容).

为什么这个在“user2”下运行的测试脚本能够访问并回显出“user1”目录中的wp-config.php的一些内容?我认为chdir = /home/www/website1.com/指令会阻止这种事情.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值