lAMPのセットアップを完了してlaravel 4アプリケーションをインストールした後、問題が発生しました。IPアドレスURLにアクセスすると、アプリケーションの最初のページが表示されます。正しく、しかしページの残りのすべては私に404エラーを投げます要求されたURLはこのサーバーで見つかりませんでした。
だから私はhttpd.confに追加しました(私のプロジェクトの仮想ホストの下)-AllowOverride All Order allow、deny
<VirtualHost *:80>
ServerName VPS-IP-ADDRESS
DocumentRoot /var/www/html/nextmatch/public_html/public/
<Directory /var/www/html/nextmatch/public_html/public/>
AllowOverride all
Order allow,deny
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
そして今、代わりに404エラーをナビゲートしようとすると、禁止されましたこのサーバーにアクセスする権限がありません。 chmod 775 -R path/laravel/
と777のフォルダストレージを設定しましたが、それでも同じエラーが発生しました。私はこの問題を理解することができません。助けてくれてありがとう。
Webサーバーは、特定のユーザーのデーモン(サービス)として起動します。そのユーザーはhttpd.confで定義されています。デフォルトでは、そのユーザーはApacheです。 Apacheユーザーとhttpdプロセスを混同しないでください。後者はWebサーバーデーモンで、前者は実行するユーザーです。作成したフォルダーがルートまたはhttpd.confで定義されているユーザー以外のユーザーに属している場合、Apacheはそのフォルダーにアクセスできません。この問題を特定する方法は、フォルダーに移動してls -lを実行することです。 httpd.confで定義するユーザーがApacheである場合、フォルダーにアクセスするには、次のように表示されます。
drwxr-xr-x. 2 Apache apache 4096 Jan 8 2013 public_folder
「Apache apache」と書かれていることに注意してください。これは、Apacheユーザーとグループに属していることを意味します。ルート経由で作成した場合は、おそらく次のように表示されます。
drwxr-xr-x. 2 root root 4096 Jan 8 2013 public_folder
Apacheユーザーは、rootによって定義されたフォルダーにアクセスできません。この問題を解決するには、次のコマンドを実行します。
chown -R Apache:apache myfolder
-Rオプションは再帰的であるため、すべてのフォルダーとそのフォルダー内のファイルの所有権をApacheユーザーに更新します。
所有権に問題がなければ、「一時的に」selinuxをオフにしてみてください。 centosで行うこと:
setenforce 0
次の再起動までselinuxがオフになります。理想的には、セキュリティを強化するためにselinuxをオンにして、Apacheのファイルとフォルダーに有効なコンテキストを設定します。
Selinuxを無効にしても機能する場合は、ファイルとフォルダーのセキュリティコンテキストが間違っている可能性があります。次のコマンドを実行して、セキュリティコンテキストを復元します。
restorecon -R -v /var/www/
CentOSを使用している場合、selinuxに問題がある可能性があります。 selinuxが「sestatus」で有効になっているかどうかを確認します。有効になっている場合、「Sudo setenforce 0」を使用して、(一時的に)問題であるかどうかを確認できます。 Apacheがサイトを提供できる場合は、「Sudo chcon -R -t httpd_sys_content_t」を使用してファイルのコンテキストを再帰的に変更するだけです(「ls -Z」を使用して既存のコンテキストを確認できます)。
Selinuxは問題ではないかもしれませんが、確認する価値があります。
フォルダー内でこれを試してください:
chcon -R -t httpd_sys_content_t *
chcon -R -t httpd_sys_content_t *
私のためにトリックをしました。
/ etc/Apache2/mods-availableのphp5.confから
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>