0
-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.iniURL を使用してファイルにアクセスするにはどうすればよいですか?

4

2 に答える 2

2

-rw-r-----1ルートルート13442月5日02:09dbm-config.ini

ファイルは、ユーザーrootによるrw-読み取りと書き込み、およびグループrootのメンバーによる読み取りが可能です。r--

curlを使用してphpファイルにアクセスする場合、これはほとんどの場合、Webサーバーのユーザーとグループでは実行されません。root:root

これが、phpがiniファイルを読み取れない理由です。Webから直接アクセスできないように、ファイルをドキュメントルートから移動してから、所有者をWebサーバーのユーザーとグループに変更することをお勧めします。

phpが実行されるユーザー名を決定する

ps aux | grep "httpd" # apache environment
ps aux | grep "php"   # php fastcgi environment 

chown user:group dbm-config.ini
于 2013-02-05T08:22:26.857 に答える
1

問題は、Web サーバーがそのファイルにアクセスできないことです。修正できない場合は、その Web サーバーを介してリモートでアクセスできません。:)

あなたが何を使っているのかわからないので、勝手な推測です:

chown root:apache dbm-config.ini
chmod g+r dbm-config.ini

役立つかもしれません。これにより、ファイルの所有グループが apache に設定され、グループに読み取りアクセスが付与されます。WebサーバーがApacheであり、それが使用している正しいグループである場合、これが役立つ場合があります。

于 2013-02-05T07:56:04.710 に答える