运行HTML :: Mason与nginx和FastCGI

运行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.htmlPostfix。

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中加载与其本身相同的基本名称的文件。

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏