linux php-cgi 如何启动

linux php-cgi 如何启动,第1张

用户可以参考如下php-cgi安装启动过程。

1、解包

tar zxvf php-5.2.6.tar.gz

2、安装

cd php-5.2.6/

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-zlib-dir --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-gd --enable-ftp --with-iconv --with-gettext --with-curl --enable-fastcgi --with-openssl

make &&make install

cd /usr/local/php/lib

cp php.ini-dist php.ini

cp /usr/local/php/bin/php /usr/bin/php-cgi

3、修改php.ini

nano php.ini 按f6然后输入extension_dir

查找/usr/local/php/etc/php.ini中的extension_dir = "./"

修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

4、启动php-cgi

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -f /usr/bin/php-cgi

nginx配置文件中的 fastcgi_pass 127.0.0.1:9000就是根据上面来的

5、查看一下

[zhangy@BlackGhost www]$ ps -e|grep php-cgi

3737 ?00:00:00 php-cgi

3738 ?00:00:03 php-cgi

3739 ?00:00:03 php-cgi

3740 ?00:00:04 php-cgi

3741 ?00:00:03 php-cgi

3742 ?00:00:03 php-cgi

首先要确定是否配置问题:

相关指令

AddHandler

Options

ScriptAlias

CGI(公共网关接口[Common Gateway Interface])定义了网站服务器与外部内容协商程序之间交互的方法,通常是指CGI程序或者CGI脚本,是在网站上实现动态页面的最简单而常用的方法。本文将对如何在Apache网站服务器上建立CGI以及如何编写CGI程序作介绍。

配置Apache以允许CGI

要让CGI程序能正常运作,必须配置Apache以允许CGI的执行,其方法有多种。

ScriptAlias

ScriptAlias指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中文件都是CGI程序并试图运行。

ScriptAlias指令形如:

ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/

如果Apache被安装到默认的位置,默认的配置文件httpd.conf中则会有上述配置。ScriptAlias指令定义了映射到一个特定目录的URL前缀,与Alias指令非常相似,两者一般都用于指定位于DocumentRoot目录以外的目录,其区别是ScriptAlias又多了一层含义,即其URL前缀中任何文件都被视为CGI程序。所以,上述例子会指示Apache,/cgi-bin/应该指向/usr/local/apache/cgi-bin/目录,且视之为CGI程序。

举例,如果有URL为http://www.example.com/cgi-bin/test.pl的请求,Apache会试图执行/usr/local/apache/cgi-bin/test.pl文件并返回其输出。当然,这个文件必须存在而且可执行,并以特定的方法产生输出,否则Apache返回一个出错消息。

ScriptAlias目录以外的CGI

由于安全原因,CGI程序通常被限制在ScriptAlias指定的目录中,如此,管理员就可以严格地控制谁可以使用CGI程序。但是,如果采取了恰当的安全方法措施,则没有理由不允许其他目录中的CGI程序运行。比如,你可能希望用户在UserDir指定的宿主目录中存放页面,而他们有自己的CGI程序,但无权存取cgi-bin目录,这样,就产生了运行其他目录中CGI程序的需求。

用Options显式地允许CGI的执行

可以在主服务器配置文件中,使用Options指令显式地允许特定目录中CGI的执行:

<Directory /usr/local/apache/htdocs/somedir>

Options +ExecCGI

</Directory>

上述指令使Apache允许CGI文件的执行。另外,还必须告诉服务器哪些文件是CGI文件。下面的AddHandler指令告诉服务器所有带有cgi或pl后缀的文件是CGI程序:

AddHandler cgi-script cgi pl

.htaccess文件

.htaccess文件是针对目录进行配置的一种方法。Apache在提供一个资源时,会在此资源所在目录中寻找.htaccess文件,如果有,则使其中的指令生效。AllowOverride 指令决定了.htaccess文件是否有效,它指定了哪些指令可以出现在其中,或者根本不允许使用。为此,需要在主服务器配置中如此配置:

AllowOverride Options

在.htaccess文件中,需要如此配置:

Options +ExecCGI

以使Apache允许此目录中CGI程序的执行。

另外要注意:

cgi程序一定要先输出

Content-type: text/html 这样一行

并且下面有一个空行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7234705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存