#加载fastcgi模块 LoadModule fastcgi_module modules/mod_fastcgi.so #//以静态方式执行fastcgi 启动了10进程 FastCgiServer /usr/local/php/bin/php-cgi -processes 10 -idle-timeout 150 -pass-header HTTP_AUTHORIZATION <VirtualHost *:80> # DocumentRoot /usr/local/httpd/fcgi-bin ServerName www.fastcgitest.com ScriptAlias /fcgi-bin/ /usr/local/php/bin/ #定义目录映射 /fcgi-bin/ 代替 /usr/local/php/bin/ Options +ExecCGI AddHandler fastcgi-script .php .fcgi #.php结尾的请求都要用php-fastcgi来处理 AddType application/x-httpd-php .php #增加MIME类型 Action application/x-httpd-php /fcgi-bin/php-cgi #设置php-fastcgi的处理器: /usr/local/php/bin/php-cgi <Directory /usr/local/httpd/fcgi-bin/> Options Indexes ExecCGI Order allow,deny allow from all </Directory> </VirtualHost>
4).restart 下apache,查看phpinfo,如果服务器信息是:
Apache/2.2.11 (Unix) mod_fastcgi/2.4.6之类的就说明安装成功了。
如果出现403的错误,查看下/usr/local/httpd/fcgi-bin/是否有足够的权限。
或者
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
就可以了。
ps -ef|grep php-cgi可以看见10个fastcgi进程在跑。
3. CLI模式
cli是php的命令行运行模式,大家经常会使用它,但是可能并没有注意到(例如:我们在linux下经常使用 "php -m"查找PHP安装了那些扩展就是PHP命令行运行模式;有兴趣的同学可以输入php -h去深入研究该运行模式)
1.让 PHP 运行指定文件。
php script.php php -f script.php
以上两种方法(使用或不使用 -f 参数)都能够运行脚本的script.php。您可以选择任何文件来运行,您指定的 PHP 脚本并非必须要以 .php 为扩展名,它们可以有任意的文件名和扩展名。
2.在命令行直接运行 PHP 代码。
php -r "print_r(get_defined_constants());"
在使用这种方法时,请您注意外壳变量的替代及引号的使用。
注: 请仔细阅读以上范例,在运行代码时没有开始和结束的标记符!加上 -r 参数后,这些标记符是不需要的,加上它们会导致语法错误。
3.通过标准输入(stdin)提供需要运行的 PHP 代码。
以上用法给我们提供了非常强大的功能,使得我们可以如下范例所示,动态地生成 PHP 代码并通过命令行运行这些代码:
$ some_application | some_filter | php | sort -u >final_output.txt
4. 模块模式
模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5), PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。







