ロリポップでPythonのCGIスクリプトが動かない場合の対処法

レンタルサーバーのロリポップでPythonのCGIスクリプトが動かない場合の 対応方法をいくつか紹介します。

「500 Internal Server Error」が出る場合

Internalは「内部の」という意味なので、 CGIスクリプト側に何らかの問題がある可能性が高いです。

この場合は次の3点を確認してください。

  • スクリプトのパスが間違っていないかどうか
  • 実行権限の付与を忘れていないかどうか
  • スクリプトファイルの改行コードがLFかどうか

スクリプトのパス

パスはロリポップの次のページで確認してください。
CGI・SSI・PHP・SENDMAILについて - ロリポップ!レンタルサーバー

2022年の時点でPythonのバージョンは3.4、又は3.7が使えます。

# 3.4の場合
#!/usr/local/bin/python3.4

# 3.7の場合
#!/usr/local/bin/python3.7

実行権限の付与

CGIスクリプトファイルに実行権限が無い場合はエラーになります。 一番手っ取り早いのはFFFTPなどのGUIベースのFTPクライアントソフトを使うことです。
(関連記事: FFFTPでのパーミッションの変更方法と属性の見方

改行コードがLFかどうか

1番目のパスと2番目の実行権限はすぐに気づきやすいのですが、 3番目の改行コードは意外と盲点です。

特にWindows環境で開発している場合は、 改行コードがCR+LFになっている可能性があります。 その場合はLFに変更してからアップロードしてください。

スクリプトファイルの拡張子に関しては、 サーバーによっては「.cgi」に変更する必要がありますが、 ロリポップは「.py」で大丈夫です。

「502 Bad Gateway Error」が出る場合

502は通信状態に異常があることを示すエラーです。 502が出る場合は、少し待ってから再度CGIを実行してみてください。

私の場合は502エラーが出てから5分後に再度実行してみると、 正常に実行できました。

Python