Ubuntu 12.04システムでLAMPサーバーを使用しています。この前に、私は問題なくprestashopをインストールしました。しかし、私が今日prestashopをインストールしようとした長い時間の後、それは本当に奇妙なエラーを示しました。エラーは次のようなものです。
Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27 Fatal error: require(): Failed opening required '/var/www/Prestashop/config/config.inc.php' (include_path='.:/usr/share/php:/usr/share/pear/PEAR') in /var/www/Prestashop/index.php on line 27
そのため、エラーをデバッグすることに決めたので、多くのブログやフォーラムを調べて、php.iniファイルを確認しました。ファイルは this のようなものです。
多くのブログを読んだ後、誰かがphp pearパッケージのエラーだと言っていましたが、リンクは here です。
その後、php.iniの梨のURLを次のように編集しました。
;UNIX: "/path1:/path2"
include_path = ".:/usr/share/php:/usr/share/php/PEAR"
その後、Apacheサーバーを再起動しましたが、うまくいきませんでした。同じエラーが発生します。だから、ここで誰かが親切に私にここの問題は何であるか教えてもらえますか?そして、これを解決する方法は?
エラーは require()
functionによって生成されます。この関数は、次の場合にphpスクリプトを停止します。
/var/www/Prestashop/config/config.inc.php
ファイル)が存在しないか、によれば:
Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27
問題は2番目のケースに分類されます。これを防ぐには、/var/www/Prestashop/config/config.inc.php
ファイルのアクセス許可を変更して、他のユーザーがファイルを読み取れるようにする必要があります。これを行うには、ターミナルから次のコマンドを実行します。
chmod +r /var/www/Prestashop/config/config.inc.php
他のファイルでもエラーが表示される場合は、同じ方法に従って権限を変更してください。
config
ディレクトリの権限も確認してください。これらはdrwxr-xr-x
のようなものでなければなりません。そうでない場合は、ターミナルで次のコマンドを使用します。
chmod +rx /var/www/Prestashop/config
ディレクトリ/var/www/Prestashop/config
のパーミッションは wrong です。これらはdrwx------
です。つまり、newuser
ユーザーのみがアクセスできます。 Webサーバーはwww-data
として実行され、明らかにconfigディレクトリにアクセスできません。
グループとすべての両方に読み取り権限を追加してもまったく害はありません。
chmod +rx /var/www/Prestashop/config
ディレクトリへの書き込み許可を追加するセキュリティ問題と考えられるかもしれませんが、/tmp/
は常にアクセス可能であり、悪意のあるソフトウェアがそれをサポートディレクトリとして使用する傾向があるため、これも議論の余地があります。
thatはセキュリティの問題になるため、ファイル自体への書き込みアクセスを許可しないでください。
本当に読みやすくしたくない場合は、所有者をwww-data
に変更できます
Sudo chown www-data /var/www/Prestashop/config
ディレクトリ内のファイルは誰でも読み取り可能なため、これで十分なはずです(適切な所有権またはアクセス許可を再度必要とするxml
フォルダーを除く)。