PHP运行模式汇总

2019-05-02 16:26:59王旭

#加载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文件的请求。

相关文章 大家在看