<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Django | hgrs&#039;s Blog</title>
	<atom:link href="/archives/tag/django/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>文字好きエンジニアの技術メモ</description>
	<lastBuildDate>Thu, 23 Jul 2020 10:21:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>/wp-content/uploads/2019/05/cropped-port_512-32x32.png</url>
	<title>Django | hgrs&#039;s Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>さくらのレンタルサーバ（スタンダード）で Django 3.0 を動かす方法</title>
		<link>/archives/444.html</link>
					<comments>/archives/444.html#comments</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Thu, 23 Jul 2020 10:21:38 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">/?p=444</guid>

					<description><![CDATA[はじめに 僕はサーバをさくらのレンタルサーバのスタンダードプランしか借りていないので、サーバサイドで...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>僕はサーバをさくらのレンタルサーバのスタンダードプランしか借りていないので、サーバサイドでガシガシプログラムを動かすことができないのですが、Django を使って API を作りたかったので、その設定方法を紹介します。</p>
<h2>紹介する範囲</h2>
<p>今回は Django の WSGI を CGI を通して利用する方法のみを紹介します。</p>
<p>さくらのレンタルサーバで Python 自体を利用する方法や Django の細かな設定自体は紹介しません。</p>
<h2>CGI の設定</h2>
<p>さくらのレンタルサーバでは <code>mod_wsgi</code> が設定されていないため、Python を実行するには CGI を通さなければいけません。</p>
<p>そこで、 Django のプロジェクトルートに <code>index.cgi</code> を作成し、以下の内容を書き加えます。<br />
この際、パーミッションを <code>755</code> に指定するのを忘れないようにします。</p>
<pre><code class="language-python">#!/path/to/python

import sys
sys.path.append(&#039;/path/to/djangoproject/&#039;)

import cgitb
cgitb.enable()

from wsgiref.handlers import CGIHandler
from projectname.wsgi import application

CGIHandler().run(application)</code></pre>
<p>まず、1行目は使用している Python の環境をしてします。<br />
pyenv と pyenv-virtualenv などを使用している場合は <code>#!/home/username/.pyenv/versions/envname/python</code> などですね。</p>
<p>4行目は今使用している Django のプロジェクトへのパスを指定します。<br />
ここは <code>pwd</code> で表示される値をそのまま持ってくれば大丈夫です。</p>
<p>10行目の projectname は自分で設定しているプロジェクト名に変更します。</p>
<p>内部でやっていることは Django が設定している WSGI を CGI ハンドラーに載せて実行しているだけです。</p>
<h2>アクセスしてみる</h2>
<p><code>index.cgi</code> を入り口としているので <code>https://example.com/index.cgi</code> がルートになります。<br />
デフォルトの管理画面だと <code>https://example.com/index.cgi/admin</code> になります。</p>
<p>アクセスする際には <code>settings.py</code> の <code>ALLOWED_HOSTS</code> にホストを追加するのを忘れないようにしましょう。</p>
<p>またこのままだと <code>index.cgi</code> が常に入っていてダサいので <code>.htaccess</code> を用いて <code>index.cgi</code> 無しで見れるようにします。</p>
<pre><code class="language-text">RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]</code></pre>
<h2>おわりに</h2>
<p>以上、簡単でしたがスタンダードのさくらのレンタルサーバで Django を動かす方法でした。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/444.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
