安装apache-2.2.6, php-5.2.5, mysql-5.0.2的过程

在linux下,centos5
1。我最先安排apache-2.2.6
安装过程如下
[root@localhost Install]#tar -xvzf  httpd-2.2.6.tar.gz   //解压tar.gz包
[root@localhost Install]#cd  httpd-2.2.6   //转到解压目录下
[root@localhost httpd-2.2.6]# ./configure   //检测安装平台的目标特征,根据系统环境及某些自定义工程脚步生产Makefile
.......
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
configure failed for srclib/apr
提示没有安装C组件和解释器gcc

我用安装光盘安装好gcc后重新./configure通过,configure提示缺少包就从安装光盘上找其rpm包安装,也可以从网上下载。继续
[root@localhost httpd-2.2.6]# make //根据configure的结果开始编译,它从Makefile中读取指令,然后编译.configure不通过的话,make也会不通过
[root@localhost httpd-2.2.6]# make install //安装
[root@localhost httpd-2.2.6]# make clean  //消除临时文件
apache安装成功,测试一下
启动apache
[root@localhost httpd-2.2.6]# /usr/local/apache2/bin/apachectl start    //默认安装,apache安装在/usr/local/apache2
重启apache的命令是:/usr/local/apache2/bin/apachectl restart
关闭的是:/usr/local/apache2/bin/apachectl stop

如果希望系统每次启动时自动启动httpd 服务器,则还要做如下工作。

  首先,拷贝apachectl 到/etc/rc.d/init.d/,并更名为httpd ,相应的命令是:

  cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

  然后,修改/etc/rc.d/init.d/httpd中的ARGV 行,改成:

  ARGV="start"

  最后,在/etc/rc.d/rc5.d目录下,创建一个指向httpd 的硬链接。相应的命令是:

  ln /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd

  为了保证在字符模式下启动红旗也能提供Web服务,还要在/etc/rc.d/rc3.d目录下,创建一个指向httpd的硬链接。相应的命令是:

  ln /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S85httpd
启动后,有错误会有提示,没有的直接跳入下一行。
在window系统下访问http://ip可以出现测试页面。

据网友提示最好的安装顺序是apache->mysql->php,我是先装了php,然后再装mysql。导致php不能导入mysql的扩展包。我想在php.ini中可以设置的,但尝试会还是不能支持mysql,

我只好重装php。不知哪位网友可以提供这样的方法。我在网上找了资料都没找着。呵.我还是先介绍先装mysql,再装php吧。省得初装的网友走点弯路。
2.安排mysql
[root@localhost Install]# tar zxvf mysql-5.0.16.tar.gz
[root@localhost Install]# cd mysql-5.0.16
[root@localhost mysql-5.0.16]# groupadd mysql    //增加用户组mysql
[root@localhost mysql-5.0.16]# useradd mysql -g mysql -M -s /bin/false  //增加用户
[root@localhost mysql-5.0.16]# ./configure --prefix=/usr/local/mysql //没有装全gcc的网友,需装上c++预处理程序gcc-c++-**.rpm;prefix=/usr/local/mysql指定mysql

的安装目录

......出现错误
configure: error: No curses/termcap library found
说明 curses/termcap 库没有发现

查看系统已安装的加上--with-named-curses-libs所需库的位置
[root@localhost mysql-5.0.16#./configure --prefix=/usr/local/mysql \ 指定安装目录
--without-debug \去除debug模式
--with-extra-charsets=gbk \添加中文字符支持
--with-extra-charsets=all \添加其他字符支持
--enable-assembler \使用一些字符函数的汇编版本
--without-isam \去掉isam表类型支持 现在很少用了 isam表是一种依赖平台的表
--without-innodb \去掉innodb表支持 innodb是一种支持事务处理的表,适合企业级应用
--with-pthread \强制使用pthread库(posix线程库)
--enable-thread-safe-client \以线程方式编译客户端
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \以纯静态方式编译服务端和客户端 --with-raid \激活raid支持
--with-named-curses-libs=/usr/lib/libncursesw.so.5

OK,编译通过
或者没有安装好ncurses-5.2.tar.gz之后把安装路径设置到PATH中(未尝试过)
[root@localhost mysql-5.0.16]# make
[root@localhost mysql-5.0.16]# make install
[root@localhost mysql-5.0.16]# scripts/mysql_install_db  \生成mysql用户数据库和表文件
[root@localhost mysql-5.0.16]# cp support-files/mysql.server /etc/init.d/mysqld  \copy启动的mysqld文件
[root@localhost mysql-5.0.16]# chmod 700 /etc/init.d/mysqld  //修改启动mysql服务的权限
[root@localhost mysql-5.0.16]# cd /usr/local
[root@localhost local]# chmod 750 mysql -R   //修改mysql的目录权限
[root@localhost local]# chgrp mysql mysql -R    //修改目录所有组
[root@localhost local]# chown mysql mysql/var -R  //修改目录所有者
[root@localhost local]# cd mysql/libexec
[root@localhost libexec]# cp mysqld mysqld.old
[root@localhost libexec]# strip mysqld
[root@localhost libexec]# chkconfig --add mysqld      //增加mysql服务启动
[root@localhost libexec]# chkconfig --level 345 mysqld on   //设置mysql服务启动级别345
[root@localhost libexec]# service mysqld start    //启动mysql服务
Starting MySQL[  OK  ]
# netstat -atln
看看有没有3306的端口打开,如果mysqld不能启动,看看/web/mysql/var下的出错日志,一般都是目录权限没有设置好的问题
# ln -s /web/mysql/bin/mysql /sbin/mysql
# ln -s /web/mysql/bin/mysqladmin /sbin/mysqladmin //把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址
# mysqladmin -uroot password "youpassword" #设置root帐户的密码
# mysql -uroot -p
# 输入你设置的密码
mysql>use mysql;
mysql>delete from user where password=""; #删除用于本机匿名连接的空密码帐号
mysql>flush privileges;
mysql>quit

3.安排php-5.2.5
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql
make
make install
make clean
重启apache2
[root@localhost php]# /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 407 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server:

/usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
发现没有libphp5.so包的问题
可以先查找系统是否有libphp5.so,如果没有则重新编译php
发现/usr/local/apache2/modules没有libphp5.so包,我只好再次安php
Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission

denied

确认 apache中的httpd.conf 文件中有
LoadModule php5_module         modules/libphp5.so 这么一行。


最后,vi /etc/selinux/config 把selinux给disable掉了,reboot,Apache启动成功,其余的PHP什么的都正常了,但还是和网上说的一般,关掉了selinux,系统可能会不安全的

。或者使用 #chcon  /usr/local/apache2/modules/libphp5.so  -t shlib_t后模块不能加载的问题解决了,这个问题应该只在FC4上有.(未尝试过)

修改php.ini文件
register_globals = On


ok!重新启动一下apache服务器
/usr/local/apache/bin/apachectl restart

posted @ 2008-01-24 17:38  harry.guo  阅读(3455)  评论(1编辑  收藏  举报