电脑技术学习

Phpcms2008出现Open_basedir restriction错误解决办法

dn001

Phpcms2008的/include/common.inc.php第7行:
set_include_path(PHPCMS_ROOT.'include/'); 用来设置包含文件路径,但是部分用户在安装运行时会出现” open_basedir restriction”的错误.解决办法如下经过查阅,现总结出以下几点可能的原因(从原英文翻译而来)1.你的PHP版本是否在4.4及以上?
php4.4以下的版本, 是无法支持这个选项的, 请考虑升级你的PHP版本吧

2.PHP是否运行在安全模式?

安全模式下,也可能出现这个问题, 请联系ISP禁止PHP的安全模式

3. php.ini文件中配置了错误的open_basedir值

打开php.ini, 找到open_basedir定义的位置, 可能发现它的值类似如下:
/path/to/www/root/

这样的配置是错误的,应该如下:
Windows平台(用分号代替目录分隔符) : ;path;to;www;root;
其它平台(用冒号代替目录分隔符) : :path:to:www:root:

或者,直接将open_basedir的值清空或注释它

4.phcpms2008的/include/及其下的文件,应该有所有用户能读取的权限

附加: 如何为特定的虚拟主机指定包含路径呢?(而并非整个服务器所有的WEB站点)
Apache配置:
<VirtualHost 217.160.187.131:80>
ServerName mydomain.de
DocumentRoot /home/www/web3/html
User web3
Group webuser
php_admin_value upload_tmp_dir /home/www/web3/phptmp/
php_admin_value open_basedir none
RewriteEngine On
RewriteRule !.(gif|css|jpg|png|jar)$ /index.php
</VirtualHost>
注意: 红色文字的地方应该你应该加上的,这样,就禁止了此虚拟主机使用php.ini中的包含路径;当然,你可以将none替换成你的包含目录路径.

标签: