ロロの空想

心に移りゆくよしなしごとを書いていくよ!

djangoをcgiでさくらレンタルサーバーで動かそうとして諦めた記録



2017/12/30

今まで、PythonのWebフレームワークのDjangoを使って開発をしていたアプリがあったんですが、いざ、デプロイしようと思ったら、契約しているさくらレンタルサーバーのスタンダードプランは共用サーバーでApacheの設定なんかをいじる権限がなかったということに気が付きました。

Djangoとしては、最近は、Apacheなどの設定を変えてmod_wsgiというのを使ってクライアントからのリクエストをDjangoへの橋渡しする方法をおすすめしているらしいですが、どうやらさくらレンタルサーバーではApacheをいじれないので、mod_wsgiが使えないらしい(涙)ということを、色々なサイトを見ているうちに知りました。

 自分もよくわかっていなかったので、CGIとかWSGIとかmod_wsgiとかどういう意味だよって感じだったのですが、どうやらさくらレンタルサーバーでも、CGIなら使えるということがわかり、「django.cgi#2407 (CGI Support for django) – Django)というのを使えば、djangoを動かせるらしい!」との情報を見つけたのですが、ネットの世界は広しといえ、DjangoCGIで動かそうとしている人はほんのひと握り、やっとの思いで見つけたサイトに従ってやってみても、動かない。。

参考:

例のあれ(仮題)- さくらのレンタルサーバでDjangoアプリを公開する。

 

 結論からいえばアプリをデプロイできなかったのですが、なぜdjango.cgiをつかってもうまく行かなかったのかはわかったのでここに記しておきたいと思います。

まず、djnago.cgiですが、これは、2017年の今から11年前、2016年にどうやら書かれているらしいです。
そして、このdjango.cgiは、djangoのバージョン1.1向けに作られています。
それに対して、私が今回開発に使っていたdjangoのバージョンは1.11。
試しに、django1.1を使ってさくらレンタルサーバーdjango.cgiを使えば、Django
「It works!」
画面が出てきたので、やっぱりdjango1.1なら動くみたいです。

とはいえ。
とはいえ、自分のパソコンにもdjango1.1をインストールして開発してみようと思いましたが、もうdjango1.11とはディレクトリ構成やらファイル構成が違っています。使えるライブラリも全然違うのだろうことは容易に想像できましたし、そもそもdjango1.1の説明は、ネットで探してももう全然出てきません。

ということで、今回のdjango1.11のアプリはもう使用を断念しました。

以上が、djngo1.11をさくらレンタルサーバースタンダードプランで動かそうとしてして断念するまでの経緯です。

今後、さくらレンタルサーバーでの稼働はCakePHP3を使って行っていこうと思いました。
(しかし、CakePHP3はまたこれはこれでErrorを連発してくれるのです。)