AngularJSを使用して簡単なアプリを作成しました。私のウェブサイトでそのプロジェクトをホストしようとすると http://demo.gaurabdahal.com/recipefinder は次のエラーを表示します:
禁止
このサーバーの/ recipefinderにアクセスする権限がありません。サーバーがhtaccessファイルを読み取れないため、アクセスを安全に拒否しています
しかし、 http://demo.gaurabdahal.com/ にアクセスすると、期待どおり「access denied」メッセージが表示されます。しかし、AngularJSプロジェクトの「レシピ検索」を開くことができないのはなぜですか。そこに簡単なHTMLアプリを配置しようとすると、うまく開きます。
同じAngularJSプロジェクトは、githubでそれをホストするとうまく機能します( http://gaurabdahal.github.io/recipefinder )
何が悪いのか理解できません。
私もこの問題を抱えていました。私のアドバイスは、サーバーエラーログファイルを調べることです。私にとっては、プロジェクトの最上位ディレクトリが読めないということでした。エラーログにはこれが明確に記載されています。シンプルな
Sudo chmod -R 755 <site_top_folder>
私のためにそれを修正しました。
これは、新しいWebサイトを立ち上げる際のGoDaddy仮想サーバーホスティングの一般的な問題です。
サーバーへのSSHアクセスがあると仮定して(cPanelで有効にする必要があります)、アカウントにログインします。ログインに成功すると、アカウントのホームディレクトリに移動します。 WebサイトのDocumentRootは、public_htmlという名前のサブディレクトリにあります。 GoDaddyはこのディレクトリのアクセス許可をデフォルトで750に設定しますが、ApacheがWebサイトのファイルを読み取るにはこれらのアクセス許可では不十分です。このディレクトリの権限を755(chmod 755 public_html)に変更する必要があります。
Webサイトのファイルをpublic_htmlディレクトリにコピーします(scpとrsyncの両方がファイルをGoDaddy Linuxサーバーにコピーします)。
次に、public_htmlの下のすべてのファイルが誰でも読み取り可能であることを確認します。これを行うには、次のコマンドを使用します。
cd public_html
chmod -R o+r *
他のサブディレクトリ(css、js、imgなど)がある場合は、読み取りと実行の両方をワールドアクセスで有効にして、それらがワールドアクセス可能であることを確認します。
chmod o+rx css
chmod o+rx img
chmod o+rx js
最後に、public_htmlファイルに.htaccessファイルが必要です。 GoDaddyは、public_htmlディレクトリに.htaccessファイルがない場合、サイトの読み込みを禁止するルールを実施します。 viを使用してこのファイル(「vi .htaccess」)を作成できます。ファイルに次の行を入力します。
Order allow,deny
Allow from all
Require all granted
この設定は、Apache 2.2とApache 2.4の両方で機能します。ファイル(ZZ)を保存し、ファイルに644のアクセス許可があることを確認します。
chmod 644 .htaccess
魅力のように機能します。
パブリックディレクトリのグループをnobodyに設定します。
これらのコマンドは、/var/www/html/
またはプロジェクトが存在する他のディレクトリで実行する必要があります。
Sudo chgrp -R group ./
Sudo chown -R user:group ./
find ./ -type d -exec chmod 755 -R {} \;
find ./ -type f -exec chmod 644 {} \;
私の場合(Apache Webサーバー)user
およびgroup
にはwww-data
を使用します
GoDaddy共有サーバーソリューション
基本的に、サブドメインレベルで別のLaravelプロジェクトをデプロイしようとすると、同じ問題が発生しました。
ファイル構造
- public_html (where the main web app resides)
[works fine]
- booking.mydomain.com (folder for separate Laravel project)
[showing error 403 forbidden]
Solution
次のチェックボックスを選択します
a) user - read, write, execute
b) group - read, execute
c) world - read, execute
Permission code must display as 755
権限の変更をクリックします
仕事完了!
私の場合、Apacheは何らかの形で間違って構成されていたため、すべての親ディレクトリにもアクセス許可を設定する必要がありました。 .htaccess(およびその親ディレクトリ)に許可を設定するだけでは機能しませんでした。
ちょうど私のソリューション。ファイルを抽出し、いくつかの小さな変更を加え、上記のエラーが発生しました。すべてを削除し、再びアップロードして抽出し、通常の業務を行いました。