【发布时间】:2011-04-29 06:29:49
【问题描述】:
#!/bin/sh
exec /usr/local/cpanel/cgi-sys/php5
此命令位于名为 php.fcgi 的文件中。我不知道这是什么意思。
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php.fcgi
.htaccess文件中的上述命令,它们是什么意思。谢谢。
【问题讨论】:
#!/bin/sh
exec /usr/local/cpanel/cgi-sys/php5
此命令位于名为 php.fcgi 的文件中。我不知道这是什么意思。
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php.fcgi
.htaccess文件中的上述命令,它们是什么意思。谢谢。
【问题讨论】:
第一行定义该文件将由命令/bin/sh 执行,该命令是Unix shell。
下一行,shell 命令exec 是一个参数,执行它并用该进程替换当前shell(即shell 脚本将在该点停止)。
#!/bin/sh
exec /usr/local/cpanel/cgi-sys/php5
这意味着它是一个执行 PHP5 二进制文件的 shell 脚本包装器。
在 .htaccess 中,第一行为所有以 .php 结尾的文件定义了一个名为 php-fastcgi 的处理程序:
AddHandler php-fastcgi .php
第二行定义处理程序php-fastcgi可以在位置/cgi-bin/php.fcgi找到:
Action php-fastcgi /cgi-bin/php.fcgi
请注意,这不是文件系统位置,而是 URL 路径,Apache 会进一步解析它以找到实际的文件系统位置(ScriptAliases、Aliases 等)。
所有这一切意味着.php文件是用上面的shell脚本执行的,而后者又运行PHP5二进制文件。
【讨论】: