-rw-r--r-- 1 root root 514 Jan 15 04:03 curl.php
-rw-r----- 1 root root 1344 Feb 5 02:09 dbm-config.ini
-rw-r--r-- 1 root root 5149 Feb 5 02:19 mysql-connectivity-status.php
在这里,我从url访问文件“mysql-connectivity-status.php”,如为http://<ip>/html/DB-Monitoring/mysql-connectivity-status.php
。
在mysql-connectivity-status.php
中,我调用了文件dbm-config.ini
。在通过URL访问时,我收到以下警告。
Warning: parse_ini_file(/var/www/html/DB-Monitoring/dbm-config.ini): failed to open stream: Permission denied in /var/www/html/DB-Monitoring/mysql-connectivity-status.php on line 113
所以,我不想更改dbm-config.ini
的权限但是如何使用URL访问该文件?
答案 0 :(得分:2)
-rw-r ----- 1 root root 1344 Feb 5 02:09 dbm-config.ini
该文件可以由用户root rw-
读取和写入,并由组根r--
的成员读取
如果您使用curl访问php文件,则最有可能是您的网络服务器用户和组不是root:root
这就是php无法读取ini文件的原因。 我建议将文件移出文档根目录,以便无法直接从Web访问,然后将所有者更改为您的Web服务器用户和组
确定使用
执行用户名phpps aux | grep "httpd" # apache environment
ps aux | grep "php" # php fastcgi environment
chown user:group dbm-config.ini
答案 1 :(得分:1)
问题是您的网络服务器无法访问该文件。如果您无法修复,则无法通过该Web服务器远程访问它。 :)
狂野猜测,因为我不知道你在使用什么:
chown root:apache dbm-config.ini
chmod g+r dbm-config.ini
可能有所帮助。这将把文件的拥有组设置为apache并为组提供读访问权限。如果您的网络服务器是apache,并且它正在使用它,那么这可能有所帮助。