当一台服务器跑多个站点时,使用open_basedir限定各个站点所能访问的服务器上的目录的范围。在php-fpm服务中,可以针对每个pool设定open _ basedir。
核心配置参数:
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
……
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
注意此处open_basedir路径,路径要本pool中的站点保持一致。
创建测试PHP脚本:
vim /data/wwwroot/linuxtest.com/1.php
<?php
echo "This is a test php of open_basedir";
测试:
curl -x127.0.0.1:80 linuxtest.com/1.php
编辑配置文件,并设置错误日志
vim /usr/local/php-fpm/etc/php.ini
查看是否有打开错误日志网页显示,要将其关闭。
error_log = /usr/local/php-fpm/var/log/php_errors.log
error_reporting = E_ALL 日志级别定义为所有,注释掉上一条日志级别。
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
修改为错误的地址
touch /usr/local/php-fpm/var/log/php_errors.log
chmod 777 /usr/local/php-fpm/var/log/php_errors.log
/etc/init.d/php-fpm restart
curl -x127.0.0.1:80 linuxtest.com/1.php
cat /usr/local/php-fpm/var/log/php_errors.log
open_basedir定义的地址与文件/data/wwwroot/linuxtest.com/1.php的地址不匹配