RedHat9 下 LAMP 环境的架设记录
在夜里的时候,总是会做一些 电动车没电的梦! 已经好几次了,总是因为没电,然后要用脚踩回去,时空的切换,还又回到了在学校那会的时间和地点! 并且在学校宿舍外面寻找着可以快速充电的地方!
可能也只有在梦中才有着这样时空交错的可能!
-------题记
经过几个晚上的努力总算是把LAMP 环境弄好了!
这几天,总感觉睡眠不是很好,睡觉不好,还容易上火,上火就快要感冒了! 发现,这些都是一连串的反应! 呵呵,所以决定今天,不在学习了,写了这边记录,就洗澡,睡觉,补充下睡眠!题外话!下面可能会有许多废话,主要是我也不想复制一下安装过程,及解决之道就了事!最主要是想记录下这个过程,学习的过程其实大同小异! 有着异曲同工之妙!
好了,下面言归正转
先说下运行环境!
RedHat 9 +httpd-2.2.17(apache)+ mysql-5.1.56-linux-i686-glibc23 + php-5.2.17.tar.gz
以上文件,除了RedHat 没有之外,其余的组件,我会在文章最后,放出下载地址! 是在115U 盘上!均是在官网下载,包括在安装过程中需要更新的一些额外的组件!比如“libxml2” 等等!
反正基本上,我就是在一个纯净的Redhat 9 下,依靠下面的组件架设好了LAMP! 当然,有些组件还是没有装的!比如GD ,在假设好之后,我还安装了DIscuz 7.0 来验证了,是否可行,当然,貌似没有GD 库下,至少DIscuz 7.0 还是可以正常运行的!
下面先上张截图!
!
在安装过程,也是遇到了一些列的问题,虽说教程都是一样,也写的很详细! 但是由于个人的操作环境不一样,当然,对计算机的熟练程度等都不同! 通过这个过程,总是还会有点个人的认识,该文纯属记录和归档!
在这其中也Baidu,google了很多的问题! 参考了很多前辈的解决方法! 总算把问题解决了,在搜到的帖子中,可能其中的问题还没有解决,但是,我解决了,只是,我没有去回复他们我的解决方法,其中原因一是因为ie,搜了很多的帖子,等到问题解决了,都不知道帖子地址在哪了,其次,也是没有时间! 昨天,晚上解决完了这个问题的时候,已是将近凌晨,实在太困了!就去睡了,知道今天才来总结!请原谅!
首先安装顺序按照手册上来,Mysql-》Apache-》PHP
先复制下别人的安装过程
“
一般安装步骤是:mysql,apache,php
1.mysql install
//下载安装包并解压缩
tar zxvf mysql*
cd mysql*
//添加用户
# groupadd mysql
# useradd -g mysql mysql
//开始编译
#./configure --prefix=/usr/local/mysql
#cp my-medium.cnf /etc/my.cnf
#./scripts/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql data
#chgrp -R mysql .
//启动mysql server在后台运行
#./bin/mysqld_safe --user=mysql &
设置密码
# ./bin/mysqladmin -u root password 'passwd'
//进入mysql
# ./bin/mysql -u root -p
2.install apache2.0.50
检查原先是否有安装,如果要安装新版本,可将原来删除
#rpm -qa httpd
#httpd-2.0.40-21
# rpm -e --nodeps httpd-2.0.40-21
//下载安装包并解压缩
#tar zxvf httpd*
#cd httpd*
#./configure --prefix=/usr/local/apache2 --enable-module=so
把apache和mysql加到启动启动文件中
vi /etc/rc.d/rc.local
/usr/local/apache2/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe --user=mysql &
安装时的问题:
Q:httpd: could not open document config file /usr/local/apache/conf/httpd.conf
A:Try manually starting your server with the -f option pointing to the location of your
httpd.conf.
httpd -f <directory>/httpd.conf.
If that works then you need to change your .rc files to include the -f option.
Q:# ./httpd -f /usr/local/apache2/conf/httpd.conf
./httpd: error while loading shared libraries: libaprutil-0.so.0: cannot open shared object
file: No such file or directory
A: vi /etc/ld.so.conf,增加/usr/local/apache2/lib 或者
# cp libaprutil-0.so.0 /usr/kerberos/lib
或者创建/usr/local/apache/conf目录,ln -s /usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
vi /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
#/usr/local/apache2/bin/apachectl restart
3.php install
下载并解压安装包
#bunzip2 -d php*
#tar xvf php*
#cd php*
#cp php.ini-dist /usr/local/lib/php.ini
#./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
//编译后不能运行make可能是由于configure出了问题
#make && make install
# vi /usr/local/lib/php.ini
mysql.default_port = 3306
mysql.default_host = localhost
mysql.default_user = root
//启动apache
#/usr/local/apache2/bin/apachectl start
测试php:
vi /usr/loacl/apache2/conf/httpd.conf
默认把php文件放在/var/www下
更改DocumentRoot "/var/www"
<Diecrtory "/var/www">
安装时碰到的问题:
Q:configure: error: Cannot find MySQL header files under yes.
A:编译的时候指定mysql的路径 /usr/local/mysql
//重新编译
#make clean
#./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
Q:# ./apachectl start
Syntax error on line 1070 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/libphp5.so into server:
/usr/local/apache2/modules/libphp5.so: undefined symbol: sqlite3SelectDelete
A:# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/mysql --with-zlib
Q:# /usr/local/apache2/bin/apachectl restart
Syntax error on line 1051 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache2/libexec/libphp5.so into server:
/usr/local/apache2/libexec/libphp5.so: cannot open shared object file: No such file or
directory
A:可以先查找系统是否有libphp5.so,如果没有则重新编译php
4.phpmyadmin install
4.install apache 2.0.55
# ./configure --prefix=/usr/local/apache2
#make && make install
#/usr/local/apache2/bin/apachectl start
5.phpmyadmin 2.8.0.2 install
#tar xvf php*
#cd php*
#mv php* /var/www/phpmyadmin
#cd /var/www/phpmyadmin
#cp ./libraries/config.default.php ./config.inc.php
#vi config.inc.php
$cfg['PmaAbsoluteUri']='http://localhost/phpmyadmin'
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['passwd'] = 'root passwd'
”
参考了这个过程,主要没什么大问题,而且上面遇到了问题,也都有解决之道!本人就不再赘述!
但是,有几点其中没有的,需要注意下!
其中mysql是第一个安装的,问题不大,下载了二进制包,已经编译好的,不需要编译,直接安装就可以了!然后,之后,的apache和php都是源码,需要编译,其中,就熟php的安装最麻烦了!
当然,网上说了很多的方法,比如redhat 下可以直接用rmp 安装,这个很简单,还有更简单,redhat 注册之后,可以直接用Yum 安装!轻松就可以搞定! 但是,本着学习加实践的原则,我还是选择了源码编译!之所以,没有用rpm 主要是因为,被他的依赖关系给弄的一点脾气都没有!
其中应该mysq 安装花了一个晚上,apache安装花了一个安装,都没什么大问题,当然说是一个晚上,其实还做了些别的乱七八糟的事情! 比如聊聊QQ,看看Cnblog和csdn 之类的!
最后是php的安装倒是正两个晚上,主要是问题多了,容易卡壳!
首先是php 编译过程中由于“libxml2”版本的问题报错,因为原来redhat上面可能是自带有libxml 组件,但由于版本的问题和php5 不兼容,只有先卸了原来用rpm 安装的libxml,再重新编译安装libxml2最新版本!
尤其是在php 安装好了之后,在restart apache 的时候,总是报错!
先就是php 都没有装好,但自己却不知道了,正如上面提到的 restart apache 的时候report this error:
Syntax error on line 1051 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache2/libexec/libphp5.so into server:
/usr/local/apache2/libexec/libphp5.so: cannot open shared object file: No such file or
directory
字面上理解就是 libphp5.so 这个组件不存在,我也是通过 locate,find 找了半天都没有找到!最终确定这个文件的确不存在,为什么不存在,这时候才知道,是php 没有安装好!
于是,就反复的再配置,编译,安装,花了好久,之后,没有效果,最后在发现配置命令写错,纯属笔误!
#./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
这个里面的apxs2 我因为经常用.net 的缘故,却偏偏写成了aspx2 自己检查了好几遍都没有发现! 哎不说什么了!
好了,有了modules目录下有了libphp5.so 这个组件之后,心想应该没有为问题了吧,restart 的时候,error:
Syntax error on line 1070 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/libphp5.so into server:
/usr/local/apache2/modules/libphp5.so: undefined symbol: sqlite3SelectDelete
这个问题以为是sqllite的问题,baidu 一下发现还没少解决方案!倒是发现php官网上有这样一个bug
http://bugs.php.net/bug.php?id=35737
但是没找到解决之道!
以上上面的步骤中的回答!
A:# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/mysql --with-zlib
按照这样的配置命令再在php环境下重新编译下!报错!
checking if the location of ZLIB install directory is defined... no
configure: error: Cannot find libz
这个问题于是就下载了libz 来安装,在确保安装了libz 之后,重新配置php 还是报错!
最后在这片帖子中找到了解决方法
http://ubuntuforums.org/showthread.php?t=257926
“
In my php install I added in the configuration command: --with-zlib-dir=/usr/local/lib
”
这是这个帖子里面比较关键的一句!然后编译,通过安装!
然后restart apache 问题解决!
当然,在这个过程中我也有多次,感觉redhat 9 这个版本现在来说已经太旧了,可能会有何最新的mysq,apache,或者php 不兼容等因素而增加了安装过程的出错率!还不如用ubantu 算了! 但是,抱着我 mysql,apache 都装好了,而且设置好了ssh,通过putty 链接! 因为我用的vmware 安装的!最后还就不行一个php 不能给你配置好了,这样的决定,最终解决了问题!
其实,本来不该说这些废话的,但是,由于最近,之前发生了一些不顺心的事情,所以,这次要记录下! 或许这个过程本身就是很简单的,很多高手不削一顾 ! 但是,简单一直以来都是我的最求! 我和她说过这样的话!只是,她不明白! 而我也只有只可意会,不能言传!
其实,在linux 下,有几点问题加强注意的话,是可以避免许多不必要的错误的! 首先是大小字母,然后就是文件路径不能敲错,一个字母都不行! 其实php 在win下编辑,在linux 下部署还是挺不错的!
最后是我已经上传到网盘的其中文件的地址!(顺便提下,maybe 要转行了!)
http://u.115.com/file/f3fcfb6862#
mysql-5.1.56-linux-i686-glibc23.tar.gz
http://u.115.com/file/f3ad5bd9ff#
httpd-2.2.17.tar.gz
http://u.115.com/file/f3d3644979#
zlib-1.2.5.tar.gz
http://u.115.com/file/f3391db610#
putty.zip
http://u.115.com/file/f3d465c452#
php-5.2.17.tar.gz
http://u.115.com/file/f32e92b262#
libxml2-git-snapshot.tar.gz
http://u.115.com/file/f3f44a7767#
gd-2.0.35.tar.gz