安装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