LinuxサーバーへのMagentoのインストールが完了しました。
Magentoの「管理パネル」に移動すると、ページの上部に次のメッセージが表示されます。
Webサーバーが正しく構成されていません。その結果、機密情報を含む構成ファイルに外部からアクセスできます。ホスティングプロバイダーにお問い合わせください。
このエラーメッセージの最も可能性の高い原因は何ですか?
ありがとう、
ジョン・ゴッシュ
Magentoは、さまざまなディレクトリの.htaccessファイルを使用して、ディレクトリツリーへのアクセスを拒否します。それらは、アプリ、メディア、変数、およびMagentoがそれらを貼り付けるのに適していると思われる場所で見つけることができます。表示の拒否(app、var)、実行(media .htaccess)などのさまざまなことを行います。これらの.htaccessファイルが機能するためには、以下をdocroot.htaccessまたは仮想サーバー構成のいずれかに設定することが非常に重要です。
Options FollowSymLinks
AllowOverride All
おそらく、Magentoは、アプリディレクトリの.htaccessファイルがapp / etc / local.xmlファイルへのネットワークアクセスを拒否することを許可されていないことを検出します。そのため、すべてのデータベース資格情報と暗号化キーは、Webブラウザーを使用するすべてのユーザーに表示されます。
もう1つの問題は、ファイル/ディレクトリのアクセス許可が緩すぎることである可能性があります。
FastCGI、SuPHP、またはLSAPIで実行されているMagentoの場合
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 pear #for Magento pre 1.5
chmod 550 mage #for Magento 1.5 and up
chmod 550 cron.sh
DSO(mod_php)で実行されているMagentoの場合
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod o+w var var/.htaccess app/etc
chmod 550 pear #for Magento pre 1.5
chmod 550 mage #for Magento 1.5 and up
chmod 550 cron.sh
chmod -R o+w media
以下の質問では、app/etcフォルダーに次の.htaccessファイルが配置されているはずです。サーバーを介して何かを読み込もうとすると、403エラーがスローされます。次のステップは、Webホスティング業者に連絡して、そのファイルが尊重されない理由を確認することです。
Order deny,allow
Deny from all
注: nginxなどの代替httpサーバーを使用している場合は、Magentoのディレクトリツリーで作成されたすべての.htaccessファイルを検索し、nginxセットアップでMagentoが使用するすべての.htaccess関数を再作成して、同じファイル/ディレクトリ保護を使用する必要があります。標準のApacheDSOインストールとして。IISへのWindowsのインストールについても同じことが言えます。
私は上記のすべてを試しましたが、Webホスティングで機能したものはありませんでした。「AllowOverrideAll」はvhosts.confで機能せず、その結果、「Denyfromall」は無視されていました。
このコードを.htaccessに追加すると、魅力的に機能します...
##### Block access to local.xml #####
RewriteRule ^(.*)local.xml$ - [F,L]
1.httpd.confに以下を追加します。
<Directory "/var/www/html/app/etc">
Options FollowSymLinks
AllowOverride All
</Directory>
ftpからlocal.xmlに権限を設定=>600
sudo /etc/init.d/httpd restart
sudo /etc/init.d/httpd reload
Magentoはアクセス可能かどうかをチェック/app/etc/local.xml
します(curlを使用)。ブラウザで自分で試して確認できます。
これを修正するには、このファイルが表示されなくなっていることを確認してください。それをどのように行うかは、Webサーバーによって異なります。Magentoにはアクセスを防ぐためのが付属して.htaccess
いますが、隠しファイルなしでフォルダをコピーした可能性があります。cp
それらをコピーしません。または、apacheは.htaccess
チェックファイルのアクセス許可にアクセスできません。
次の手順に従って、この問題を解決しました。
Magentoインストールのappサブディレクトリに.htaccessファイルがあることを確認します。.htaccessファイルがない場合は、appサブディレクトリに次のディレクティブを含む新しい.htaccessファイルを作成します。
Order deny,allow
Deny from all
ファイルのアクセス許可が正しく設定されていることを確認してください。通常、ディレクトリのアクセス許可は755に設定する必要があります(ユーザーの読み取り、書き込み、実行のアクセス許可、およびグループとワールドの読み取りと実行のアクセス許可)。ファイルには、644に設定されたアクセス許可(ユーザーの読み取りと書き込みのアクセス許可、およびグループとワールドの読み取りアクセス許可)が必要です。
.htaccessファイルのアクセス許可を644に変更してから、magento管理ページを更新してください。
@Brijmohankaradiaと@Spudley
あなたの解決策はうまくいきました。MagentoのインストールにAWSLinuxを使用しています。
/etc/httpd/conf/httpd.confに移動します
httpd.confに以下を追加します。
オプションFollowSymLinksAllowOverrideAll
3.ファイルパス/app/etc/local.xmlでSSH/FTPからlocal.xml=>600へのアクセス許可を設定します
app / etc / local.xmlファイルを600に変更する必要があり、エラーはなくなります;)