20

Laravel 4.2がインストールされ、サービスを実行するLumenがインストールされexample.com/z/ているexample.com.example.comexample.com/z/

これは私の元の vhost です。

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /data/user/public_html/public
 <Directory /data/user/public_html/public>
  Options +FollowSymlinks
  AllowOverride All
 </Directory>
</VirtualHost>

そして、これは/z/エイリアスが追加された vhost です。

 <VirtualHost *:80>
  ServerName example.com
  DocumentRoot /data/user/public_html/public
  Alias /z/ /data/user/service/public
  <Directory /data/user/service/public>
   Options +FollowSymlinks
   AllowOverride All
  </Directory>
  <Directory /data/user/public_html/public>
   Options +FollowSymlinks
   AllowOverride All
  </Directory>
 </VirtualHost>

に移動するexmaple.com/z/と、403 ページが表示され、ログに次のエラーが記録されます。

 Directory index forbidden by Options directive: /data/user/service/public

/z/また、 (例: )の下にある他の場所に移動すると/z/abcd、404 ページが表示されますが、Lumen 404 ページではなく、Laravel 404 ページのように見えます。

これを機能させる方法についてのアイデアはありますか?

4

3 に答える 3

15

メッセージは、オプションを追加しなかったことを示していますIndexes

<Directory /data/user/service/public>
   Options +FollowSymlinks +Indexes
   AllowOverride All
</Directory>

あなたのエイリアスはおそらく

Alias /z /data/user/service/public

また

Alias /z/ /data/user/service/public/
于 2015-04-29T17:05:28.853 に答える
1

未テストですが、追加Require all grantedすると共有制限の一部が削除されるはずです。

考慮すべきもう1つのことは、フォルダーが実際にApacheの所有者(www-data、apache、またはインストールに応じてユーザー名またはその他のもの)によって所有されていることを確認することです。フォルダーが Apache で読み取れない場合は、エラーがトリガーされます。

また、ファイル パスではなくエイリアスを参照するようにディレクトリを切り替えました。

 <VirtualHost *:80>
  ServerName example.com
  DocumentRoot /data/user/public_html/public
  Alias /z /data/user/service/public
  <Directory /z>
   Options +FollowSymlinks +Indexes
   AllowOverride All
   Require all granted
  </Directory>
  <Directory /data/user/public_html/public>
   Options +FollowSymlinks
   AllowOverride All
  </Directory>
 </VirtualHost>
于 2015-05-05T18:40:00.373 に答える
1

Options ディレクティブによって禁止されているディレクトリ インデックス: /data/user/service/public

Apache has not found file specified by DirectoryIndex- default to index.php index.htmland cannot show indexesyou're configuration このファイルの 1 つが に存在し/data/user/service/publicますか?

これを確認して、パブリックディレクトリに追加し.htaccessてください

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

http://lumen.laravel.com/docs/installation#pretty-urlsから

またはディレクトリブロックを親レベルに追加します(シンボリックリンクがある場合)

  <Directory /data/user>
        Options -Indexes FollowSymLinks
        AllowOverride all
        Order Allow,Deny
        Allow from all
    </Directory>
于 2015-05-05T11:06:54.020 に答える