web-dev-qa-db-ja.com

Ubuntu 12.04 php PEARパッケージの問題

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サーバーを再起動しましたが、うまくいきませんでした。同じエラーが発生します。だから、ここで誰かが親切に私にここの問題は何であるか教えてもらえますか?そして、これを解決する方法は?

2
newuser

エラーは 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
2
Radu Rădeanu

ディレクトリ/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フォルダーを除く)。

0
Cubiq