机器环境rhel3,在安装系统时安装了一些相关开发的rpm包,如gcc,make等
一、Apache安装
1.下载apache
2.解压
tar -xzvf httpd-2.0.63.tar.gz
3.进入目录
cd httpd-2.0.63
4.配置
一些选项
--prefix 安装目录
--enable-modules 开启dso(动态模块)配置(--enable-so相当于--enable-module=so)
--enable-rewrite 开启url重写
--enable-dav
svn需要此选项:否则报错
httpd: Syntax error on line 58 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
(--enable-dav --enable-so --prefix svn至少需要这几项)
--enable-maintainer-mode 开启扩展的倚赖性检查和编译警告
执行命令进入配置
./configure --prefix=/usr/local/apache --enable-rewrite --enable-dav --enable-so --enable-maintainer-mode
5.编译并安装
make
make install
6.相关目录
/usr/local/apache为基目录
bin/ 一些命令
cgi-bin/ cgi文件
htdocs/ 网页文件
conf/httpd.conf 配置文件
logs/ 日志文件
7.启动、停止
/usr/local/apache/bin/apachectl start/stop/restart
8.自动启动
vi /etc/rc.d/rc.local
加入
/usr/local/apache/bin/apachectl start
二、安装PHP
1.下载
2.解压
tar -xzvf php-5.2.8.tar.gz
cd php-5.2.8
3.配置
php除基本功能外,一些扩展功能是由分别独立的模块提供的,要使php支持这些功能,在编译时要加入相关选项(见http://cn.php.net/manual/en/funcref.php中相应模块的install页)
如:
mysql:访问mysql数据库的函数
curl: http访问库
ibxml2: xml解析库
zlib: 开源压缩库
pcntl:进程控制库
iconv:字符编码转换函数
shmop:共享内存操作函数
sysvsem:信号量相关函数
sysvmsg:消息交换函数
执行如下命令:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-curl=/usr/local/curl --enable-ftp --with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib --enable-soap --with-zlib-dir=/usr/lib --enable-mbstring --with-iconv=/usr/local/iconv --enable-shmop --enable-sysvsem --enable-sysvmsg
4.编译并安装
make
make install
5.拷贝配置文件
由于php.ini文件不会自动产生,所以应当拷贝过去
cd php-5.2.8
cp php.ini-dist /usr/local/php/lib/php.ini
6.配置httpd.conf
vi /usr/local/apache/conf/httpd.conf
php安装完后会自动在httpd.conf加上下面一行(若无,请手动添加):
LoadModule php5_module modules/libphp5.so
找到AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
重启apache
/usr/local/apache/bin/apachectl restart
7.安装过程中的一些问题
(1)configure: error: libxml2 version 2.6.11 or greater required.
libxml2的版本过低,下载更高的版本并更新
rpm -ivh --force libxml2-2.6.16-1.1.el3.rf.i386.rpm
libxml2-python-2.6.16-1.1.el3.rf.i386.rpm
libxml2-devel-2.6.16-1.1.el3.rf.i386.rpm
(2)无一些相关的库,如libiconv
下载,并安装,如:libiconv-1.12.tar.gz
./configure --prefix=/usr/local
make
make install
(3)/usr/lib/mysql/libmysqlclient.so: No such file or directory
是因为在/usr/lib/mysql下找不到libmysqlclient.so文件,可能原因是:
1.MySQL-shared-community(mysql共享库没装)
rpm -ivh MySQL-shared-community-5.1.35-0.rhel3.i386.rpm
2.如果装了后还找不到,则查找libmysqlclient.so文件,一般在/usr/lib下,建立符号链接
ln -s /usr/lib/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so,即可解决
8.测试
随便写一个test.php放到/usr/local/apache/htdocs中,在浏览器中访问