3

最近Xamppサーバーを更新し(1.7 >> 1.8から)、それ以降、Symfony1.4.8で記述されたプロジェクトを実行できなくなりました。

それは言う:

要求されたディレクトリにアクセスする権限がありません。インデックスドキュメントがないか、ディレクトリが読み取り保護されています。

しかし、それは許可を持っています!

実際には、古いバージョンのXamppで正常に動作します。Symfony1.4.8がApache2.4またはPHP5.4と互換性がない可能性はありますか?私はWindows8Enterpriseを使用していますが、Windows 7 Ultimateでもテストされており、同じ問題が存在します。

任意の提案をいただければ幸いです。

これが私の設定です:

NameVirtualHost 127.0.0.1:1111
Listen 127.0.0.1:1111
<VirtualHost 127.0.0.1:1111>
  DocumentRoot "D:\AMir\PROJECTS\BarzinMehr\web"
  DirectoryIndex index.php
  <Directory "D:\AMir\PROJECTS\BarzinMehr\web">
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf C:\xampp\htdocs\symfony\data\web\sf
  <Directory "C:\xampp\htdocs\symfony\data\web\sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

そしてここに私の.htaccessがあります

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  #RewriteBase /

  # we skip all files with .something
  #RewriteCond %{REQUEST_URI} \..+$
  #RewriteCond %{REQUEST_URI} !\.html$
  #RewriteRule .* - [L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
4

2 に答える 2

7

この問題に何日も苦労した後、私は最終的に解決策を見つけました。この問題に直面する可能性のある他の人のためにここに取り上げます。この記事によると(ライターに感謝します!) 私がしなければならなかったのはこれだけでした:

各ディレクトリ ブロックを次のように変更します。

<Directory "your address">
    AllowOverride All
    Allow from All
</Directory>

<Directory "your address">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
</Directory>  

Apache 2.4の新しいディレクティブRequireを優先してAllowが削除されたようです(バージョン apache 2.4 のドキュメントによると) 。

于 2013-01-31T13:09:06.133 に答える
1

.htaccess ファイルを削除して、index.phpファイルに直接アクセスしてみてください。これが機能する場合 (または少なくとも apache エラーではなく PHP エラーが発生する場合)、おそらく mod_rewrite が有効になって.htaccessおらず、期待どおりに動作していないことを意味します。

以下を削除することをお勧めします。

<IfModule mod_rewrite.c>

モジュールがインストールされていない場合は、サイトが奇妙な方法で機能しないよりも、インストールされていないというエラーを取得する方がよいため、存在する場合は .htaccess ファイルからタグを閉じます。

上記で問題が解決しない場合は、apache のエラー ログを参照してください。多くの場合、手がかりが含まれています。

于 2012-12-19T22:09:49.580 に答える