操作系统CentOS,服务器apache2.2.3,mysql5.0.18,php5.2.5

操作系统CentOS,服务器apache2.2.3,mysql5.0.18,php5.2.5.

apache的动态和静态 
(2.0和2.2一样)

1,解压apache:

参照php-5.2.5发行版中的安装说明文件进行安装(INSTALL文件)

关于apache的动态与静态编译的理解,引用某人的比喻如下:

tar -zvxf apache-2.2.3.tar.gz

1,解压:

    
好比有两个人a和m,a代表apache,m代表module,要想让a使用m的东西,一个方法是把m的东西都放到a那里去,a使用的时候就是现成的了,就是所谓的静态编译

2,进入解压的目录下:

tar -jvxf php-5.2.5.tar.bz2;

    
还有一个方法,就是告诉a,m的住址,当a要使用m的东西的时候,a去找m,然后使用,不过,这种方法要注意的一个问题就是:m必须要有实际的住址,否则a会找不到m而产生错误的,这种方法也就是apache
的动态(DSO)编译了。

cd ./apache-2.3.3

2,进入到php-5.2.5目录下:

下面说说在apache1.3和apache2.0动态与静态编译编译的区别

3,执行./configure编译apache:(使用./configure
–help参看具体参数的意义)

cd ./php-5.2.5

首先是apache1.3.29+php4.3.4+mysql4.0.13的静态编译

./configure –prefix=/usr/local/apache2 –enable-mods-shared=all
–enable-modules=rewrite –enable-modules=so –enable-http –enable-ssl

3,执行configure编译php源文件:(如果不知道
./configure后面的具体参数是什么意思的话,你可以这样做:在php源目录下执行./configure
–help)

apache第一次编译,并不要安装,因为php的编译需要apache至少已经编译过一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure –prefix=/usr/local/apache

4,安装apache:

./configure –prefix=/usr/local/php5
–with-apxs2=/usr/local/apache2/bin/apxs –enable-mod-charset
–with-config-file-path=/usr/local/php5 –with-layout=PHP
–with-curl=/usr/local/curl –with-zlib=/usr/local/zlib –enable-soap
–enable-ftp –with-mysql=/usr/local/mysql/
–with-mysqli=/usr/local/mysql/bin/mysql_config
–with-gd=/usr/local/gd2

编译php

make;make install

4,执行安装:

tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql
–with-apache=../apache_1.3.27
make
make install

5,启动apache

make;make install

第二次编译安装apache:
cd ../apache_1.3.29
./configure –prefi=/usr/local/apache
–activate-module=src/modules/php4/libphp4.a
make
make install

/usr/local/apache2/bin/apachectl start

5,
因为–with-config-file-path=/usr/local/php5这一设置,所以把php.ini-dist文件复制到/usr/local/php5下:(/usr/local/src/php-5.2.5)

cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini

或service httpd start

cp  ./pnp.ini-dist /usr/local/php5/php.ini

修改/usr/local/apache/conf/httpd.conf

6,在浏览器中输入:

6,因为–with-apxs2=/usr/local/apache2/bin/apxs这一设置,它会自动将apache与php关联,即/usr/local/src/php-5.2.5/libs/libphp5.so文件会自动加载到/usr/local/apache2/modules下,并在httpd.conf文件中自动加在LoadModule
php5_module modules/libphp5.so

查找<IfModule mod_mime.c>

图片 1

图片 2

在此范围添加

7,安装apache过程中遇到的问题以及解决方法:

7,添加AddType application/x-httpd-php .php到httpd.conf的AddType模块下。

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

1.[warn] module php5_module is already loaded, skipping 
-->是在apache安装目录conf下httpd.conf里重复了一行LoadModule
php5_module modules/libphp5.so,删除重复的行就行。

8,测试安装的php是否可以正常运行,在设置的根目录下,我的根目录是/usr/local/apache2/htdocs下建立一个phpinfo.php:

注意:apache和php的源码包在同一个目录,–with-apache=../apache_1.3.27是指向源码解压的目录

2.Cannot load /…/libphp5.so into server: /…/libphp5.so: undefined
symbol: _efree       
-->此错误是由于重装php时,没有关闭apache。解决方法:调转到php安装目录,执行“make
clean”,然后从新安装php,记得安装之前关闭apache。

图片 3

ok!静态编译完成。

3.从源码安装apache2,遇到错误:cannot install `libaprutil-1.la’  
-->由于configure过一次,没有清理干净,需要清理。可以删除掉源码目录,重新解压源码,重新安装,或者make
clean.

9,安装lamp过程中遇到的问题以及解决的方法:

再看DSO动态编译方法:

4.apache启动报错(98)Address already in use: make_sock: could not bind
to address [::]:80

1.[warn] module php5_module is already loaded, skipping 
-->是在apache安装目录conf下httpd.conf里重复了一行LoadModule
php5_module modules/libphp5.so,删除重复的行就行。

首先编译安装apache

-->     #netstat -lnp|grep 80

2.Cannot load /…/libphp5.so into server: /…/libphp5.so: undefined
symbol: _efree       
-->此错误是由于重装php时,没有关闭apache。解决方法:调转到php安装目录,执行“make
clean”,然后从新安装php,记得安装之前关闭apache。

tar zvxf apache_1.3.29
cd apache_1.3.29
./configure –prefix=/usr/local/apache –enable-module=so
–enable-module=rewrite –enable-shared=max
make
make install

#ps 端口号为80的进程

3.从源码安装apache2,遇到错误:cannot install `libaprutil-1.la’  
-->由于configure过一次,没有清理干净,需要清理。可以删除掉源码目录,重新解压源码,重新安装,或者make
clean.

so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。

#kill -9 端口号为80的进程(可能进程不止一个)

4.apache启动报错(98)Address already in use: make_sock: could not bind
to address [::]:80

然后编译php

图片 4

-->     #netstat -lnp|grep 80

tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql
–with-apxs=/usr/local/apache/bin/apxs
make
make install

#ps 端口号为80的进程

然后修改httpd.conf,方法同静态编译的方法

#kill -9 端口号为80的进程(可能进程不止一个)

OK,DSO动态编译就完成了!

5.Warning: Unknown: failed to open stream: Permission denied in Unknown
on line 0  -->问题的原因是 : 你的 filename.php文件
在这个用户下不具有 可读的权限 通过 ls -l 查看 文件的权限 然后更改权限 
chmod +r filename.php

接下来我们讲apache2.0.46+php4.3.2的动态编译方法

图片 5

一样先编译安装apache

tar zvxf httpd-2.0.46.tar.gz
cd httpd-2.0.46
./configure –prefix=/usr/local/apache2 –enable-so
–enable-mods-shared=most
make
make install
大家注意了–enable-so相当与1.3.27的–enable-module=so,而–enable-mods-shared=most又等同与以前的–enable-shared=max

然后还是编译PHP

tar zvxf php4.3.2.tar.gz
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql
–with-apxs2=/usr/local/apache2/bin/apxs
make
make install

注意这里是apxs2!!

修改httpd.conf与1.3.27也有所不同,大家寻找Add Type application/x-tar
.tgz 在下面添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

另外要显示中文的话,请修改:
AddDefaultCharset gb2312

相关文章