我有一个 Ubuntu LAMP,其中安装了 PHP 作为模块。由于它是默认的 LAMP 服务器,Apache 会获取 /usr/bin/php 来执行 PHP。我有一个内置在 /opt/php/5.3.8 中的 PHP,我喜欢使用此路径。我该如何告诉 Apache?在 localhost 的默认虚拟主机中,我尝试了以下标记<VirtualHost *:80></VirtualHost>
:
<IfModule alias_module>
ScriptAlias /cgi-bin-php/ "/opt/php/5.3.8/bin"
</IfModule>
<Directory "/opt/php/5.3.8/bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
# Set the environment var for PHP to look for php.ini's
SetEnv PHP_INI_SCAN_DIR "/opt/php/5.3.8/lib/conf.d/"
AddHandler php-script .php
Action php-script /cgi-bin-php/php-cgi
我已经这样做了a2enmod actions && /etc/init.d/apache2 restart
。但是没有任何反应...
=== 找到答案 ===
好吧,我明白了!如果 PHP 由 Apache 作为模块运行,那么您需要做的就是在虚拟主机中添加以下行:
LoadModule php5_module /my/php/distro/libs/libphp5.so
答案1
如果 PHP 由 Apache 作为模块运行,那么您要做的就是在虚拟主机中添加该行:
LoadModule php5_module /my/php/distro/libs/libphp5.so
答案2
如果您将 PHP 用作模块,则意味着“解释器”是通过静态编译或共享库加载的库(后者通过 Francois 的 LoadModule 示例进行了演示)。在这种情况下,解释器路径没有任何意义。如果您想使用自定义编译的 CGI,您首先(通常)需要停止加载模块版本。