quixote学習ノートの1つ:apache 2およびscgiの構成


quixoteドキュメントの推奨に従って、SCGI方式とwebserverを使用して相互接続します.quixote: 2.7b2 mod-scgi: 1.14 Apache2 : 2.xx OS: ubuntu 10.04
 
一.apache 2の仮想ホストの設定(ドメイン名ベース)
www.web.com:quixoteアプリケーションstaticを処理する2つのドメイン名があると仮定する.web.com:処理アプリケーションに関する:ピクチャ、jsスクリプト、html、cssなどの静的コンテンツ192.168.5.81:ipアドレス
仮想ホストの設定については、「http://wiki.ubuntu.org.cn/Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97」を参照してください.
プロファイルは次のとおりです.
web:
 
NameVirtualHost 192.168.5.81

<VirtualHost 192.168.5.81>

        ServerName www.web.com
        

	ServerAdmin [email protected]

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>


	ErrorLog /var/log/apache2/error.log

	
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined


</VirtualHost>

 
static:
 
NameVirtualHost 192.168.5.81

<VirtualHost 192.168.5.81>

        ServerName static.web.com

	ServerAdmin [email protected]
	DocumentRoot /home/shone/Public/webroot/static
	<Directory />
		Options FollowSymLinks
		AllowOverride None

	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	
	ErrorLog /var/log/apache2/error.log

	
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    

</VirtualHost>

 
上の2つのプロファイルを:/etc/apache 2/sites-available/ディレクトリの下に置いて、名前はそれぞれ:webとstaticは以下のコマンドを使用します:
sudo a2ensite web sudo a2ensite static
対応する仮想ホストをインストールすると、/etc/apache 2/sites-enabled/ディレクトリに/etc/apache 2/sites-available/ディレクトリ対応ファイルへのソフトリンクが2つ以上発見される.
sudo/etc/init.d/apache 2 restartで仮想ホストを有効にする
 
二.apache 2にmod-scgiを追加するには:
mod-scgi 1.14:http://python.ca/scgi/releases/scgi-1.14.tar.gzをダウンロードしてファイルを解凍し、readmeを参照してください.txt,対応するpythonモジュールをインストールしmod-scgiをコンパイルする.so、あなたの環境によってはgccなどをインストールする必要があるかもしれません...
 
生成したmod-scgiをsoコピー先:/usr/lib/apache 2/modules/ディレクトリ
 
/etc/apache 2/ディレクトリのhttpd.confファイルに追加:
LoadModule scgi_module/usr/lib/apache2/modules/mod_scgi.so
 
/etc/apache 2/sites-available/webファイルを開きます.
servername行の後に、SCGIMount/127.0.0.1:4000を追加します.
編集したファイルは次のとおりです.
 
web:
 
NameVirtualHost 192.168.5.81

<VirtualHost 192.168.5.81>

        ServerName www.web.com
        SCGIMount / 127.0.0.1:4000
		
	ServerAdmin [email protected]

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>


	ErrorLog /var/log/apache2/error.log

	
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined


</VirtualHost>

 
詳細は、scgi圧縮パッケージのdocディレクトリのguideを参照してください.html..(quixoteドキュメントではserver.htmlが書いたscgiの構成は、もう推奨されていません)
構成を変更し、restart apache 2を忘れないでください.
 
この構成の過程で、カーブを曲がったことがあります.
最初は、SCGIMount/127.0.0.1:4000という文をhttpdに置きました.confファイル、すなわちvirtualhostの外に配置すると、ルート(すなわち:/)をマッピングすることができず、ディレクトリを1つ持たなければならず、次のように構成できません.
SCGIMount/somefolder/127.0.0.1:4000
アプリケーションにアクセスするには、somefolderなどのディレクトリを持たなければならないので、長い間気分が悪くなりました.
 
ここまで来たら、残りのタスクはquixoteアプリケーションを作成することです.