特别值得一提的是Linux apache有很多值得学习的地方,这里我们主要介绍Linux apache,包括介绍Linux apache等方面。在Linux下,centos5
1。我最先安排Linux 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 //消除临时文件Linux apache安装成功,测试一下
启动Linux apache[root@localhost httpd-2.2.6]# /usr/local/apache2/bin/apachectl start //默认安装,Linux apache安装在/usr/local/apache2重启Linux 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包,我只好再次安phpCannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission
denied确认 Linux apache中的httpd.conf 文件中有LoadModule php5_module modules/libphp5.so 这么一行。 最后,vi /etc/selinux/config 把selinux给disable掉了,reboot,Linux apache启动成功,其余的PHP什么的都正常了,但还是和网上说的一般,关掉了selinux,系统可能会不安全的。或者使用 #chcon /usr/local/apache2/modules/libphp5.so -t shlib_t后模块不能加载的问题解决了,这个问题应该只在FC4上有.(未尝试过)
修改php.ini文件register_globals = Onok!重新启动一下Linux apache服务器 /usr/local/apache/bin/apachectl restart
【编辑推荐】