CGI経由でWebアプリを公開する話

2年ほど前にDjangoで簡単なアプリケーションを作り、臨床でこっそり使っていた。

今回、ポートフォリオとしてサイトを作る際に、作ったものを載せたいなぁと思い、古のアプリをレンタルサーバー上に公開する作戦を実行した。

しかしあまりにも無知すぎて、

Webアプリを導入しづらいサーバーを選んでしまった。(ロリポップサーバー ハイスピードプラン)

結論から言うと、

可能だが、めんどい(1週間かかった)

詳しい人からしたらなんでそんな時間かかってんの、って話だが

素人が手を出すと大変なことになるということを皆様にお伝えするためにブログに遺す。

まず、ローカル環境とサーバーを繋ぎ、Webアプリ(とその他必要なもの諸々)をアップロードしなければいけない。

そのために必要なのがSSH接続

ssh -p ポート番号 username@サーバーアドレス

これでSSH接続をします。

次に、Djangoのファイルを諸々サーバーに上げます。

scp -P ポート番号 index.html usernamel@サーバーアドレス:レンタルサーバーのPATH

必要なものは各種サーバー内でインストールしていきます。

ものによっては、setup.pyがなくてinstallができない事案が発生

その際はローカル環境でインストールして、手動でコピー

ここで、利用中のサーバーではCGIを介さないとWebアプリを使えないことを知る。

サーバーにCGIと.htaccessを作成。

さらに、サーバーで別に環境構築をしないといけない。

その際、pipが使えない→opnsslとlibffiがどっかいったから。

原因:/libにあるはずの上記モジュールがlib64というディレクトリにすっ飛んでた。

そうして、諸々インストールしていざ起動!となったが、エラー。

原因はロリポップサーバーのpythonがver.3.7であること。

Django4.0以降はpython3.7じゃ動かないので、ダウングレード必要

環境再構成する時当たり前だけどバックアップ取らないと環境内のモジュール消滅するから注意。

私は全部消えてインストールし直しになった。

そのほか、typing_extensionsは4.50までじゃないとPython3.7に対応しない、などPython3.7ようにモジュールをダウングレードする必要がある。だるい。

sqlparseに至っては、SQLの関係で、ver >=0.2.2かつ <0.5じゃないといけないとかいう謎使用

こうして、なんとかWebアプリを公開することができたのだが、おかげでしばらくこのWebアプリをいじりたくなくなったのだった。

CSSくらいいじろうかな。

コメント

タイトルとURLをコピーしました