5

せずに私のローカルマシンは、仮想CeontOS-7フラスコアプリケーションディレクトリを含むPythonの2.7 virtualenvのである構造は以下の通りです:403 SSL

/var 
    /www 
    /myAppenv 
     /myApp 
     /.ebextensions 
      myApp-env.config 
     /.elasticbeanstalk 
     application.py 
     requirements.txt 
     /flaskApp 
      /core 
      views.py 
      models.py 
      forms.py 
      /templates 
      /static 

と私はそれを展開/ myAppからEB CLIデプロイメントを使用して、myAppという名前のBeanstalkアプリケーションにmyAppという名前の環境をデプロイします。

私は、静的ファイルのパスが/.ebextensions/myApp-env.configに右設定されていると思う:

option_settings: 
    "aws:elasticbeanstalk:container:python:staticfiles": 
    "/static/": "flaskApp/static/" 

と私はAWSのWebコンソール - >環境に>設定 - >ソフトウェアの設定で見ることができます

StaticFiles: /static/=flaskApp/static/ 

ですので、パス設定が原因ではないようです。

私は自分のアプリケーションのためのWebページを開いたとき、すべてが静的ディレクトリから403禁断の応答を取得しますので、だから私は、ページの欠落しているCSSやJSを参照してください。

GET http://myApp-dev.elasticbeanstalk.com/ [HTTP/1.1 200 OK 174ms] 
GET http://myApp-dev.elasticbeanstalk.com/static/bootstrap-3.3.5-dist/js/bootstrap.min.js [HTTP/1.1 403 Forbidden 55ms] 
... 

それは以来、私の中で、権限について何か推測ローカルのdirファイルは私のlinuxアカウントに所有されています(sambaの理由で)、chown rootとchgrp root(静的ディレクトリとファイル権限は755です)が、何も変更されませんでした。私は実際にホームページが実際にロードされているという事実によってファイアウォール/ selinuxに関係するものはないと思う。

誰もこの問題を解決する方法を知っていますか?

答えて

0

rootである所有者/グループは、ファイルがすべてのユーザーに表示されない場合は関係がありません。すべての静的ファイルにchmod 664を実行して、すべてのユーザーがアクセスできることを確認します。

+0

申し訳ありません申し訳ありませんが静的ディレクトリとファイルのアクセス許可はまだ755です。私は質問を編集して追加します。 –

0

問題が見つかりました。私は何が起こっていたかを理解することEB SSHで検査していたと私は、ディレクトリ

/opt/python/current/app 

が、ec2-まで(cdコマンドを実行している)アクセスすることができ、「EC2-ユーザーは」私はAWSのマシンにログインしてしまったことに気づきましたユーザーはdirにアクセスできません

/opt/python/current/app/flaskApp 

権限のために、

flaskAppに含まれている静的ディレクトリとファイルに755の権限が設定されていましたが、flaskAppディレクトリ(静的ディレクトリを含む)が744(私はうまくいくと思います)に気付きました。だからflaskAppのdirパーミッションを755に変更しました。これで動作しました:今は静的ファイルがロードされます!

ところで、このアクセス許可セットは本番環境に適しているとは思えません。代わりに、dirsを構造化してstaticがflaskAppディレクトリのサブディレクトリでないようにすることができます.futureAppディレクトリをより慎重な権限に設定して静的ディレクトリを755に設定することができます。