运行HTML :: Mason与nginx和FastCGI
本文是一个一步一步的指导,安装HTML :: Mason模块以使用ngingx Web服务器和FastCGI。 它已经在Debian(lenny)中进行了测试,但它应该与Ubuntu和其他基于debian的发行版非常相似。
安装运行最少的服务器
首先我们将使用nginx和FastCGI安装一个最小的服务器。 我做了基本的脚本来使其运行。 稍后我们可以自定义这些脚本。
安装nginx
现在我们安装nginx并让它工作。 假设主机中没有其他Web服务器。 一切都将默认安装。
apt-get install nginx
看看它是否可以远程登录到80端口。
/etc/init.d/nginx start
telnet locahost 80
Escape character is '^]'
GET /
<htm>
<head>
<title>Welcome to ngingx!<title>
...
安装FastCGI
apt-get install libcgi-fast-perl libio-all-perl
安装HTML :: Mason
HTML :: Mason被遗忘,需要apache2运行,所以它将下载并安装它。 稍后我们会摆脱它。
apt-get install libhtml-mason-perl
apt-get --purge remove apache2-mpm-worker apache2-utils
apt-get --purge autoremove
希望我们现在安装了HTML :: Mason,没有apache跟踪。 确保nginx仍在工作检查它仍然在端口80上的答案。
配置FastCGI
我们需要运行一个FastCGI服务器,因此可以执行HTML :: Mason代码。 该脚本将下载所有配置和init文件。 我们必须以root身份运行它。 运行前请先看看。 它从github下载并复制一些文件。 这可能对您的服务器有危害。
wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh
bash ./download.sh
将/ etc / nginx / sites-available / mason中的server_name选项更改为服务器的真实名称是非常重要的。 本地主机将无法正常工作。 然后修改/var/www/mason/mason_fcgi.pl中
的%SITES
变量。
运行梅森代码
最后我们来创建一个简单的Mason页面。
mkdir /var/www/site1
echo '<% 2 + 2 %>' > /var/www/site1/index.html
然后让我们开始服务。 如果您将网站与浏览器相连,则应出现4。
/etc/init.d/nginx restart
/etc/init.d/fcgi start
自定义服务器
现在我们有一个nginx + FastCGI供电的Mason服务器。 所有的配置文件和脚本都可以在我的github仓库中找到 。
nginx
nginx配置在/ etc / nginx / sites-available / mason中
。 该位置可以修改,以满足您的需要。 注意有两个重写行,因为Mason无法正确处理目录。 所以当请求看起来像一个目录时,会添加一个index.html
Postfix。
FastCGI
FastCGI启动脚本是/var/www/mason/mason_fcgi.pl
。 可以提供一堆参数。
/var/www/mason/mason_fcgi.pl --help
mason_fcgi.pl [--help] [--pid=/var/run/fcgi/fcgi.pid] [--log=/var/log/nginx/fcgi/fcgi.log] [--debug] [--socket=/var/run/fcgi/mason_fcgi.sock] [--basedir=/var/www] [--workspace=/var/www/mason/workspace] [--error-uri=/errors/503.html] [--listen-queue=100] [--default-host=debian.localdomain]
有一个部分来添加Perl模块和全局变量的加载。 这是默认代码:
{ package HTML::Mason::Commands; # use My::Own::Module; # use Data::Dumper; # anything you want available to components use vars(qw($DBH %stash)); }
运行多个FastCGI站点
FastCGI守护程序从/etc/init.d/fcgi
运行。 此脚本从/ etc / default / fcgi
加载配置。 如果您需要更多FastCGI服务器用于不同的站点。 只需将init脚本复制到另一个名称并调用config文件即可。 init脚本将在/ etc / default中加载与其本身相同的基本名称的文件。