在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