14

SilexBootstrapを使用してWebサイトをセットアップしようとしています。他のWebプロジェクトと一緒にフォルダーに入れ、Apache構成のDocumentRootを変更しました。

<Directory /folder/to/silex_projects/web>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride All
     Order allow,deny
      allow from all
</Directory>

しかし、フレームワークのインデックスページを開くことができません。Apacheは次のように提供します。

[Mon Dec 17 21:10:52 2012] [crit] [client 127.0.0.1](13)アクセスが拒否されました:/folder/to/silex_project/web/.htaccess pcfg_openfile:htaccessファイルを確認できません。読み取り可能であることを確認してください

プロジェクトフォルダ全体を。でchmodしましたchmod a+r -R。同じフォルダー内の他のプロジェクトは、.htaccessファイルで正常に機能しています。

.htaccessファイルは存在します。

4

4 に答える 4

30

chmod 755 -R /silex_project/私の問題を解決しました。Apacheが機能するために書き込み権限が必要な理由はまだわかりません。

于 2012-12-17T20:32:06.503 に答える
19

これは、Apacheを実行しているユーザーがディレクトリに対するeXecute権限を持っていないことが原因である可能性があります。また、その中のファイルを読み取る必要があります。chmod a+rx /folder/to/silex_projectsおそらくあなたのエラーを解決したでしょう。

chmod 755 -R書き込みアクセスも許可することでこれを解決することはできませんが、これはたまたまeXecuteも追加するためです。

于 2013-11-04T15:55:37.830 に答える
2

投稿された他の回答に加えて、ディストリビューションの「デフォルト」の場所からファイルにアクセスする可能性のある場所を変更する場合、この状況であなたを噛むことができる以外の何かがSELinux(有効になっている場合)です。

修正は、ディレクトリ/ファイルに対してselinuxに適切なポリシーを追加するか、selinuxセキュリティを実行したくない場合はそれを無効にすることです。

于 2013-12-18T01:27:38.340 に答える
1

私もこのエラーがあり、この良い参照を見つけました (13)アクセスが拒否されました:/home/username/.htaccess pcfg_openfile:htaccessファイルをチェックできません。読み取り可能であることを確認してください

ドメインを表示しているときに「禁止」というエラーが表示された場合は、Apacheログを確認してください:/var/log/httpd/error_log /var/log/httpd/domains/domain.com.error.log

エラーを確認してください。

[crit] [client 1.2.3.4] (13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

これは、apacheが/ home/usernameディレクトリへの読み取りアクセス権を持っていないことを意味します。

これの原因は、権限関連、構成関連、または所有権関連である可能性があります。

Apacheはユーザー「apache」として実行されるため、そのユーザーまたはグループのディレクトリは+xである必要があります。

1)DirectAdmin 1.38.0以降、secure_acccess_group機能を実装します。これにより、/ home / user(ユーザーの場合)がchmod 750に設定され、username:accessが変更されます。apacheユーザーは「アクセス」グループに属します。これを確認するには、次のように入力します。

[root@server]# grep ^access: /etc/group
access:x:506:apache,nobody,mail,majordomo,daemon

表示されている出力と同様の結果が得られるはずです。

ユーザーの空白のリストを取得した場合、アクセスグループは存在しますが、空です。(RedHat / CentOS / Debianシステムで)グループを正しく埋めるには、次のように入力します。

usermod -G access apache
usermod -G access nobody
usermod -G access mail
usermod -G access majordomo
usermod -G access daemon

FreeBSDシステムでは、グループを作成するコマンドは次のとおりです。

pw groupadd -n access -M apache,nobody,mail,majordomo,daemon

しかし、これはグループがまだ存在していないことを意味します。このケースはFreeBSDでは見られなかったので、おそらく必要ないでしょう。

于 2013-12-14T07:21:37.643 に答える