目前Apache2.x有2.4和2.2两个常用版本。选择版本的原因多种多样,如果可能的话,建议使用最新的Apache2.4版本。当然,以下介绍适用于Apache2.4和2.2。请注意,Apache2.2将不再正式支持,也不会发布新功能和补丁程序更新。
1、从上述位置获取Apache源包并解压缩:
tar -xzf httpd-2.x.NN.tar.gz
2、这里也获取PHP源包并解压缩:
tar -xzf php-NN.tar.gz
3、编译并安装Apache。有关编译Apache的详细信息,请参阅Apache安装文档。
cd httpd-2_x_NN ./configure --enable-so make make install
4、Apache2.x.NN已安装到/usr/local/apache2。此安装支持可加载模块和标准MPM前叉。然后,可以通过以下命令启动Apache服务器:
/usr/local/apache2/bin/apachectl start
5、接下来,您需要配置并编译PHP。您可以使用各种参数(如支持的扩展)自定义PHP。./使用configure--help命令列出当前可用的所有参数。此示例说明支持MySQL的Apache2配置示例。
如果Apache如上所述是从源编译的,则以下示例将正确匹配到apxs的路径:。如果使用其他方法安装了Apache,则必须相应调整apxs路径。请注意,某些分销商可能会将apxs重命名为apxs2。
cd ../php-NN ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql make make install
如果要在安装后更改配置选项,请重复configure、make和make install的最后三个步骤,然后重新启动Apache以启用新模块。不需要重新编译Apache。
请注意,除非明确显示提示,否则“make install”命令将安装各种PHP工具,如PEAR、phpize和PHP CLI。
6、配置 php.ini
cp php.ini-development /usr/local/lib/php.ini
php.可以编辑ini来设置PHP运行时选项。如果要将此文件放置在其他位置,则必须在步骤5中添加--with-config-file-path=/path选项。
php.如果选择了ini-production,请务必阅读影响PHP执行的更改列表。
7、httpd.编辑conf文件,调用PHP模块。LoadModule表达式右侧的路径必须指向系统上的PHP模块。上述make install命令可能正在执行此操作,但请务必确认。
PHP 8 版本:
LoadModule php_module modules/libphp.so
PHP 7 版本:
LoadModule php7_module modules/libphp7.so
8、指示Apache将特定扩展名解析为PHP。例如,让Apache将扩展名.php解析为PHP。埃克普洛伊特.php。不再使用Apache的AddType指令来设置,以避免上传或创建类似jpg的文件并将其作为PHP运行等潜在危险。参考以下示例,您可以将所需的扩展名简单地解释为PHP。为演示添加.php。
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
或者,.php、.php2、.php3、.php4、.php5、。如果将php6和.phtml文件作为PHP运行,则不需要进行其他设置。请执行以下操作:
<FilesMatch ".ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
接下来。使用PHP源代码过滤器处理phps文件,以便在显示时突出显示源代码。使用以下设置:
<FilesMatch ".phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
mod_rewrite也有助于突出显示.php文件的源代码,而无需将名称更改为.phps文件即可运行:
RewriteEngine On
RewriteRule (.*.php)s$ $1 [H=application/x-httpd-php-source]
由于系统敏感信息和嵌入代码敏感信息可能会被披露,因此在操作系统中不要启用PHP源代码过滤器。
9、以正常方式启动Apache服务:
/usr/local/apache2/bin/apachectl start
或者
service httpd restart
按照上述步骤,Apache2.x将PHP用作SAPI模块。当然,Apache和PHP还有更多配置选项。有关详细信息,可以在相应的源代码目录中使用./configure-help。
如果要编译Apache的多线程版本,可以选择在编译时将标准prefork MPM替换为工作人员MPM。只需在上述步骤3中使用。
--with-mpm=worker
如果您不太清楚执行此步骤的结果,并且通常理解它的含义,则建议您不要执行此步骤。
提示:
要编译Apache的多线程版本,系统必须支持多线程。这也意味着PHP还需要编译为实验阶段的Zend Thread Safety(ZTS),因此并非所有扩展都能发挥作用。建议使用标准prefork MPM-Module编译Apache。
我已经成功地将Apache2.2.11和PHP 5.2.8安装在一个具有32MB内存的奔腾166上的Red Hat 9.0下。
虽然我使用了RH9,这是最坏的情况,但这些注释可能也适用于基于RH的发行版(Red Hat Enterprise、Fedora、CentOS…)
如果您想安装MySQL,需要在PHP之前安装它,因为PHP需要一些可用的库。
在选择MySQL的二进制发行版时,一个重要的想法是下载所有四个包:MySQL server、MySQL devel、MySQL client和MySQL shared。注意:MySQL与PHP4捆绑,但在PHP5中不再。
然后您需要在PHP之前安装Apache,因为PHP同样需要一些可用的库。我从源代码安装了Apache2,使用了可用的最新版本,即2.2.11。
我从源代码安装了PHP5.2.8。在这里,我遇到了很多问题,但没有一个是我无法轻易解决的,其中一些问题是我通过谷歌找到的不同论坛提供的帮助。
Rembember:当它说您需要一个名为xyz的包,并且您注意到还有一个名称为xyz-devel的包时,抓住它。