PHP 重启动 Apache 的示例命令
1. 在一些 Linux 和 SysV 的变种下:/etc/rc.d/init.d/httpd restart2. 使用 apachectl 脚本: /path/to/apachectl stop/path/to/apachectl start 3. httpdctl 和 httpsdctl(使用了 OpenSSL),类似 apachectl:/path/to/httpsdctl stop /path/to/httpsdctl start4. 使用了 mod_ssl,或其他 SSL 服务器,可能需要手工重启动: /path/to/apachectl stop/path/to/apachectl startssl
apachectl 和 http(s)dctl 程序所在的路径在不同系统中通常不一样。如果系统中有 locate或者 whereis或者 which命令,那么可以帮助找到这些控制程序。
编译 PHP 和 Apache 的不同例子还有:
./configure --with-apxs --with-pgsql
此配置将生成在 Apache 的 httpd.conf 文件中用 LoadModule 加载的 libphp5.so共享库(PHP 4 是 libphp4.so)。而 PostgreSQL 支持将嵌入到此共享库中。
./configure --with-apxs --with-pgsql=shared
此配置将生成 Apache 的 libphp5.so共享库,并且还生成 pgsql.so共享库,可以在 php.ini 文件中用 extension 指令加载,或者在 PHP 脚本中用 dl()函数明确地加载。
./configure --with-apache=/path/to/apache_source --with-pgsql
此配置将生成 libmodphp5.a库, mod_php5.c和一些相关的文件并且拷贝到 Apache 源程序目录中的 src/modules/php5目录下。然后用 --activate-module=src/modules/php5/libphp5.a编译 Apache,Apache 编译系统会生成 libphp5.a并且将其静态地连接到 httpd程序中(在 PHP 4 中把 php5替换成 php4)。PostgreSQL 支持也直接包括在这个 httpd程序中了,因此最终结果是单一的一个包括了所有 Apache 和 PHP 支持的 httpd可执行文件。
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
此配置和上面一样——除了没有在最后的 httpd可执行文件中包括 PostgreSQL 的支持以及生成了一个 pgsql.so共享库以外。该共享库可以在 php.ini 文件中或者用 dl()函数加载。
当选择不同的方法编译 PHP 时,需要考虑每种方法的优势和缺点。用共享对象方式编译 PHP 意味着可以单独编译 Apache,并且不用在添加或修改了 PHP 的时候重新编译所有程序。用内置方法编译 PHP(静态方式)意味着 PHP 可以加载和运行得更快。更多信息见 Apache 的 » DSO 支持页面。
Note:
Apache 默认的 httpd.conf 文件中目前包括类似如下的内容:
User nobody Group "#-1"
除非把它修改成“Group nogroup”或者其它类似的(“Group daemon”也很通用),PHP 将不能打开文件。
Note:
确认在使用 --with-apxs=/path/to/apxs 时指向 Apache 安装后的目录中的 apxs。绝对不能用 Apache 源程序中的 apxs 而要用安装后的 apxs。