Apache、PHP和CGI的详细配置与使用
安装与配置步骤
1、安装Apache:
下载Apache源代码并解压:
wget http://apache.ziply.com//httpd/httpd-2.2.21.tar.gz tar xzf httpd-2.2.21.tar.gz cd httpd-2.2.21 ./configure --prefix=/usr/local/apache make && make install
启动Apache服务:
/usr/local/apache/bin/apachectl start
2、安装FastCGI:
下载mod_fastcgi并解压:
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz tar xzf mod_fastcgi-2.4.6.tar.gz cd mod_fastcgi-2.4.6 cp Makefile.AP2 Makefile make top_dir=/usr/local/apache make top_dir=/usr/local/apache install
将FastCGI模块加载到Apache中:
echo "LoadModule fastcgi_module modules/mod_fastcgi.so" >> /usr/local/apache/conf/httpd.conf
3、安装PHP:
下载PHP源代码并解压:
wget http://us2.php.net/get/php-5.2.17.tar.gz/from/am.php.net/mirror tar xzf php-5.2.17.tar.gz cd php-5.2.17 ./configure --prefix=/usr/local/php --enable-fastcgi --disable-cli make && make install
将PHP二进制文件复制到指定目录:
cp /usr/local/php/bin/php-cgi /usr/local/apache/bin/php-cgi
4、配置Apache支持PHP:
编辑Apache配置文件httpd.conf
,添加以下内容:
ScriptAlias /fcgi-bin/ "/usr/local/php/bin/" AddHandler php-fastcgi .php Action php-fastcgi /fcgi-bin/php-cgi AddType application/x-httpd-php .php Alias /fcgi-bin/ "/usr/local/php/bin/" <Directory "/usr/local/php/bin"> Order allow,deny Allow from all </Directory>
重启Apache服务使配置生效:
/usr/local/apache/bin/apachectl restart
表格:各模式对比
模式 | 稳定性 | 安全性 | 性能 | 扩展性 | 适用场景 |
CGI | 低 | 高 | 一般 | 强 | 开发调试阶段 |
FastCGI | 高 | 高 | 高 | 强 | 高并发访问的生产环境 |
mod_php | 中 | 低 | 高 | 弱 | 低资源消耗的小型网站 |
常见问题解答(FAQs)
Q1: PHP以CGI方式运行时,如何优化性能?
A1: 可以通过减少每次请求时重复加载配置和环境变量的开销来优化性能,建议使用FastCGI代替标准CGI,因为FastCGI会常驻内存,避免频繁的fork操作,调整PHP配置文件中的pm.max_children
和pm.start_servers
参数,可以优化进程管理,提高性能。
Q2: 如何更改PHP的运行模式从CGI到FastCGI?
A2: 要更改PHP的运行模式,首先确保已安装FastCGI模块,然后修改Apache配置文件httpd.conf
,注释掉原有的CGI相关配置,并添加FastCGI的配置,具体步骤包括设置ScriptAlias
、AddHandler
和Action
指令,最后重启Apache服务。
ScriptAlias /fcgi-bin/ "/usr/local/php/bin/" AddHandler php-fastcgi .php Action php-fastcgi /fcgi-bin/php-cgi AddType application/x-httpd-php .php
完成上述配置后,重启Apache服务即可切换到FastCGI模式。
到此,以上就是小编对于“apache php cgi”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/786702.html