在apache下限制php列目录
头几天为了解决这个,烦了好几天,现在这个解决了,新问题又来啦,还好经过摸索,总算解决了。
不过目前还有个问题就是 开了php的safe_mode后,wordpress挂了,运行不起来!什么情况
还有就是wordpress装插件的时候需要用ftp登陆,如果不用的话,是否意味着要给php写权限?怎么给呢?
---------------------------------------------------------------------
环境:centos 5 + apache2 + php5.2+ phpMyAdmin2.11
限制列php有多种方法,可以在虚拟机主机中加入 php_admin_value open_basedir=""
如下配置
<VirtualHost *> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com <Directory "/var/www/example/"> php_admin_value open_basedir /var/www/example.com/ </Directory> # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost>
也可以在/etc/php.ini中更改
open_basedir = .:/tmp
. 表示当前目录,:表示多个目录,
主要是这样子配置了以后,我的phpmyadmin就出问题了
之前访问的时候是出现输入用户名和密码的对话框的,现在直接报错
Probably reason of this is that you did not create configuration file. You might want to use setup script to create one
#1045 - Access denied for user 'root'@'localhost' (using password: NO)
大概是不能读取配置文件,而且我又把mysql的默认本地用户删除了
解决了半天,没结果。
我尝试将/usr/share/phpMyAdmin下的文件拷贝到我的网站目录下,依然出现这个问题。
后来我用 ls -l查看了一下,~哈哈 问题出现了!
/usr/share/phpMyadmin/config.inc.php 是链接文件! 指向 /etc/phpMyAdmin/config.inc.php!!!
难怪找不到配置文件,因为把php的读取权限限制到了当前目录下,所以无法访问到连接的文件啦。
解决方案是删除/usr/share/phpMyAdmin下的config.inc.php链接符号,拷贝/etc/phpMyAdmin的config.inc.php到
/usr/share/phpmyadmin下。~ OK 再次访问就正常了