Unix 系统下的安装
Unix 系统下的Apache 1.3.x
Example #1 PHP 的Apache共享模块版本安装说明
1.#gunzip apache_xxx.tar.gz
2.#tar -xvf apache_xxx.tar
3.#gunzip php-xxx.tar.gz
4.#tar -xvf php-xxx.tar
5.#cd apache_xxx
6.#./configure --prefix=/www --enable-module=so
7.#make
8.#make install
9.#cd ../php-xxx
10. 现在,配置PHP。这是定制PHP的不同选项的时候,例如要加载哪些扩展库。使用
#./configure --help
来列出可用的选项。在下面的示例中只是简单地配置 Apache 1和MySQL支持。
用户的 apxs的路径可能和此示例中的不同。
#./configure --with-mysql --with-apxs=/www/bin/apxs
11.#make
12.#make install
如果在安装之后决定修改配置选项,那么只需重复以上最后三步。只须重新启动
Apache 就可以使新模块生效。不需要重新编译Apache。注意除非特别指出,
“make install”总是会安装PEAR,各种PHP工具例如phpize,PHP CLI以及其它。
13. 建立php.ini文件。
cp php.ini-dist /usr/local/lib/php.ini
可以编辑 php.ini来设置PHP选项。如果想把php.ini放在其它目录,在第
10 步加上以下选项:
--with-config-file-path=/path
如果选择了 php.ini-recommended,确保阅读一下其中的变更说明,因为这些会
影响到 PHP的行为。
14. 编辑httpd.conf来加载PHP模块。在LoadModule语句右边的路径必须指向系统中
PHP 模块所在的路径。上面的make install步骤可能已经添加了,但还是检查确认一下。
对 PHP 4:
LoadModule php4_module libexec/libphp4.so
对 PHP 5:
LoadModule php5_module libexec/libphp5.so
15. 在httpd.conf中加入AddModule部分,在ClearModuleList下面的某处,加上这一句:
对 PHP 4:
AddModule mod_php4.c
对 PHP 5:
AddModule mod_php5.c
16. 告诉Apache将哪些后缀作为PHP解析。例如,让Apache把.php后缀的文件解析为
PHP。可以将任何后缀的文件解析为PHP,只要在以下语句中加入并用空格分开。这里以
添加一个 .phtml来示例。
AddType application/x-httpd-php .php .phtml
为了将 .phps作为PHP的源文件进行语法高亮显示,还可以加上:
AddType application/x-httpd-php-source .phps
17. 用通常的过程启动Apache(必须完全停止Apache再重新启动,而不是用HUP或者
USR1 信号使Apache重新加载)。
Example #2 PHP 的Apache静态模块版本安装说明
1. gunzip -c apache_1.3.x.tar.gz | tar xf -
2. cd apache_1.3.x
3. ./configure
4. cd ..
5. gunzip -c php-5.x.y.tar.gz | tar xf -
6. cd php-5.x.y
7. ./configure --with-mysql --with-apache=../apache_1.3.x
8. make
9. make install
10. cd ../apache_1.3.x
11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
(上面一行是正确的!是的,我们知道 libphp5.a尚不存在,还不到时候,
它会在之后被创建。)
12. make
(现在应该有一个 httpd二进制文件,可以将它复制到Apache bin目录。如果这是
第一次安装,还要“make install”。)
13. cd ../php-5.x.y
14. cp php.ini-dist /usr/local/lib/php.ini
15. 可以编辑/usr/local/lib/php.ini文件以设置PHP选项。编辑httpd.conf或
srm.conf 文件,添加:
AddType application/x-httpd-php .php
Example #3 重启动Apache的示例命令
1. 在一些Linux和SysV的变种下:
/etc/rc.d/init.d/httpd restart
2. 使用apachectl脚本:
/path/to/apachectl stop
/path/to/apachectl start
3. httpdctl 和httpsdctl(使用了OpenSSL),类似apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start
4. 使用了mod_ssl,或其他SSL服务器,可能需要手工重启动:
/path/to/apachectl stop
/path/to/apachectl startssl
编译 PHP和Apache的不同例子
编译 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()函数加载。
Unix 系统下的Apache 2.x
概述
# cd httpd-2_x_NN
# ./configure --enable-so
# make
# make install
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install
编辑 httpd.conf文件以调用PHP模块。LoadModule表达式右边的路径必须指向 系统中的PHP。以上的make install命令可能已经完成了这些,但务必要检查。
LoadModule php5_module modules/libphp5.so
告知 Apache将特定的扩展名解析成PHP,例如,让Apache将扩展名.php解析成PHP。为了避免潜在的危险,例如上传或者创建类似exploit.php.jpg的文件并被当做PHP执行,我们不再使用Apache的AddType指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为PHP。我们演示为增加.php。
SetHandler application/x-httpd-php
或者,你也想将 .php, .php2, .php3, .php4, .php5, .php6,以及.phtml文件都当做PHP来运行,我们无需额外的设置,仅需按照下面这样来:
SetHandler application/x-httpd-php
然后,可以将 .phps文件由PHP源码过滤器处理,使得其在显示时可以高亮源码,设置如下:
SetHandler application/x-httpd-php-source
软件升级到apache 2.2:
AddType application/x-httpd-php .php5
AddType application/x-httpd-php .php42
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .asp
上边配置就不起作用了,需要修改成:
SetHandler application/x-httpd-php
安装过程分享
installed Apache 2.2.11 and PHP 5.2.8
用这个方法确定需要的模块
模块列表
1$ php -m | grep -v -e Modules] -e ^$ >php-default-modules
$ php -m
创建配置脚本
2$ for i in $(catphp-default-modules); do echo -n "--with-$i ">>phpconfigure.sh;done
比如,报错显示位置选项,就使用“./configure --help”参考修改。生成的脚本,一直调试到正确运行;因为这个“for”循环,使用了的修改有可能应该是“--enable-”开头的;还可以添加额外的选项;
以下的选项可以供参考:
php-5.2.9]$ ./configure --with-mcrypt --with-mhash --with-bz2 --enable-calendar --with-curl --enable-dbase --enable-exif --enable-ftp --with-gd --with-gettext --with-gmp --with-iconv --enable-mbstring --with-mime_magic --with-mysql --with-mysqli --with-openssl --enable-pcntl --with-pdo_mysql --with-pdo_sqlite --with-pspell --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-zlib --enable-safe-mode
php-5.2.9]$ sudo yum install mcrypt libmcrypt mhash libmhash libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel gmp-devel mysql-devel aspell-devel zlib zlib-devel
配置脚本(configure)报错
3$ make
$ make test
自信自己能解决,而且能解决的很漂亮。所以我没有整理。(http://php.chinaunix.net/manual/zh/install.unix.apache2.php)
编译后最好做个测试