pyファイルをローカル・サーバーで実行できなくなったので、トラブルシューティング。
ブラウザから、cgi-binディレクトリにアクセスする際のエラーメッセージ。
Error code: 403
Message: CGI script is not a plain file ('/cgi-bin/').
Error code explanation: HTTPStatus.FORBIDDEN - Request forbidden -- authorization will not help.
1. Djangoを入れてから実行できなくなった?
PATHを確認していく。
確認方法)
左下バー・Windowsアイコン -> コンピュータ -> 右クリック -> プロパティー ->
左サイドバー・「システム詳細設定」 -> 「右下・環境変数」
現時点の設定)
C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37
ちなみに、IDLEからのパスは以下。
C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37
**Script以下の記述が不要なのでは?
ということで。
\Scripts\;C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37
を削除してみる。
挙動確認)
ローカル・サーバーにアクセスすると強制切断されるようになった。
これはWorse な事態になった。
-> いや、この強制切断は、上記の403 エラーメッセージが出たあとに、
他のフォルダにアクセスしようとすると、切断されるようだ。
最初から、cgi-bin以外のフォルダにアクセスしようとすると問題なく
あくせすできる。 pyファイルは実行されずに、コードがそのまま表示される。
2. コマンドラインから、ローカルサーバーを立ち上げてみる。
やり方は、ここ。
https://mycodingjp.blogspot.com/2018/05/pythonweb.html
ローカルサーバーは立ち上がるが、pyファイルは
やはり、コードがそのまま表示されてしまう。
強制切断された時のsocket...のエラーは、httpのコマンドラインに表示されなくなった。
(強制切断された時は出ていたが。。。)
3. フォルダを新規に作成してみる。
simpleserver.pyを使ったやり方。
コマンドラインからのやり方。の2通りでローカル・サーバーを立ち上げて
test.pyを実行してみるが、いずれも、コードがそのまま表示される。
本当に困った。
simpleserver.pyやcgiserver.py を実行して、ローカルサーバーは立ち上がるので、
.pyをPythonが認識できないという訳でもなさそう。
こんなのもあった。
① 起動コマンド: python -m http.server -- bind local.host --cgi 8000
そして
② コマンド: python -mwebbrowser http://local.host:8000/cgi-bin/000.py // 新しくbrowserを開くということ。
しかし、①のコマンドを実行すると、
socket.gaierror: [Errno 11004] getaddrinfo failed.
となってしまった。
結局、Pythonをアンインストール・再インストールをして、直ったよう!!!
1週間くらい時間がかかった!!
参考)
Python 2.x なので参考になるか不明?
http://d.hatena.ne.jp/uriyuri/20081024/1224839381
0 件のコメント:
コメントを投稿