quixote 学习笔记之一: apache2 及 scgi的配置

根据quixote 文档的推荐,使用SCGI方式和webserver 进行互联。
quixote: 2.7b2
mod-scgi: 1.14
Apache2 : 2.xx
OS: ubuntu 10.04

 

一. 设置apache2 的虚拟主机(基于域名)


假设有以下两个域名:
www.web.com : 处理quixote 应用
static.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>

 

把上面两个配置文件放在: /etc/apache2/sites-available/ 目录下,名字分别存为:web和static
使用以下命令:


sudo a2ensite web
sudo a2ensite static


安装好对应的虚拟主机,即可在 /etc/apache2/sites-enabled/ 目录中发现多了两个到 /etc/apache2/sites-available/ 目录对应文件的软链接.

sudo /etc/init.d/apache2 restart 即可使虚拟主机生效

 

二. 在apache2中添加 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/apache2/modules/ 目录

 

在/etc/apache2/ 目录的httpd.conf 文件中添加:

LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so

 

打开 /etc/apache2/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 apache2。

 

在这个配置这个过程中,曾经走过一段弯路:


一开始,把 
SCGIMount / 127.0.0.1:4000
这一句放到了 httpd.conf文件中,也就是说,放到了virtualhost的外面,
结果导致:不能把 根(也就是: /)  映射过去,必须要带一个目录,只能配置成如下形式:

SCGIMount /somefolder/ 127.0.0.1:4000

访问应用,必须要带个somefolder 之类的目录,不爽了很久。

 

到了这一步,剩下的任务就是编写quixote应用了,待续...

 

 

 

你可能感兴趣的:(Web,python,css,ubuntu,Access)