Linux服务器的升级
zidscen
|
1#
zidscen 发表于 2007-12-26 20:52
Linux服务器的升级
一. 检测MySQL、Apache、PHP的安装模式:
这部分的主要目的是了解MySQL、Apache、PHP的安装模式,从而选择以何种方式删除之前的旧版本。 1. MySQL: # rpm –q mysql package mysql is not installed. 显示结果表明,MySQL不是以RPM包来安装的,而是以二进制包安装。 2. Apache: # rpm –q apache apache-1.3.12-2 显示结果表明,Apache是以RPM包安装的,且版本是1.3.12-2。 3. PHP: # rpm –q php php-3.0.15-2 显示结果表明,PHP是以RPM包安装的,且版本是3.0.15-2。 二. 备份Linux服务器上的文件: 1. MySQL: Export库文件,将之前MySQL中的库全部导出。 2. PHP3: 将PHP的源文件备份。 3. Apache: 这次由于Linux版本的问题,新版本的Apache,无论是RPM(Redhat Package Management),还是二进制包,都无法安装成功。而未升级Apache,只是将其关键的httpd.conf文件做过修改(这部分,后面会有详细叙述)。 三. 删除之前旧版本的MySQL、PHP: 根据“二”中检测的安装模式,选择不同的删除方式。 1. MySQL: 已经检测是用二进制包安装,卸载的方法,先用“find –name”命令查到所有MySQL文件的路径,然后逐一使用“rm –rf 文件路径”的命令删除。 2. Apache: 前面提到过Apache由于Linux版本的问题,没有升级。 3. PHP: 由于在“二”中已经检测了PHP3是以RPM的方式安装的,则只需运行: # rpm –e php-3.0.15-2 error: removing these package would break dependencies: php is needed by php-imap-3.0.15-2 php is needed by php-ldap-3.0.15-2 php is needed by php-pqsql-3.0.15-2 php is needed by piranha-qui-0.4.12-1 运行后,显示上面所列错误。 解决方法: 先用find命令查到以上所显示每个package的路径,然后逐一删除,再次运行该命令就可以了。 当然也可以用rpm命令,逐一删除这些文件。 # rm –rf package的路径 四. 安装新版本: 新版本的MySQL和PHP,全部放在“/root”目录下分别为mysql-3.23.46.tar.gz和php-4.0.6.tar.gz的tar包。 1. MySQL: (1) # cd /root 进入root目录。 (2) # tar –zxvf mysql-3.23.46.tar.gz 将之前放在root目录下的mysql新版本的tar包,解包。 (3) # cd mysql-3.23.46 进入解包后,mysql的目录。 (4) # ./configure –prefix=/usr/local/mysql >--with-berkeley-db=./bdb >--with-tcp-port=3306 >--with-mysqld-user=mysql >--with-charset=gb2312 >--with-extra-charset=latinl 配置mysql: ①安装路径; ②支持bdb数据库类型,事务处理; ③设置端口为3306; (这部分要注意,如果配置时没写这句配置语句,或者写成了9999,都会导致MySQL无法正常进入。) ④设置用户; (5) # make 编译。 (6) # make install 安装。 (7) # scripts/mysql_install_db 建立初始数据库 (8) # chown –R root /usr/local/mysql # chown –R mysql /usr/local/mysql 设置权限 (9) # adduser mysql 增加mysql用户 (10) # cd /etc/rc.d/init.d # cp /root/mysql-3.23.46/support-files/mysql.server mysql # chmod +x mysql 增加执行权限 (11) # /sbin/chkconfig –del mysql # /sbin/chkconfig –add mysql 运行chkconfig,把mysql添加到系统的启动服务组里 (12) # reboot 重起Linux服务器服务器 (13) # cd /usr/local/mysql/bin #./mysql 进入MySQL (14) mysql>show databases; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.11 sec) 显示MySQL中存在的库 (15) mysql>use mysql 进入名为mysql的库 (16) mysql>grant all on *.* to admin@’%’ identified by ‘422817’; 设置用户、密码 (17) mysql>quit Bye 退出MySQL (18) # ./mysql –u root admin –p Enter password: 尝试按照刚刚设置的用户和密码进入MySQL 至此,MySQL安装和测试成功。接下来就是导入(Import)之前备份的库文件。同样也是使用MySQL-Front。 不过,有一点要注意,在Import之前的库文件时,要先create database,且一定要和之前同名。 2. Apache: 虽然这次Linux服务器整个的升级,最后的结果是Apache还是采用最初的版本。不过在这里,还是提一下Apache以RPM包的安装过程: 先找到之前Linux6.02的CD,在其中的“RedHat/RPM”目录下,有一个名为apache-1.3.12-2.i386.rpm的文件。 由于Linux服务器没有CDROM,采取的方法同前面提到的一样,现在Windows下将该目录下的文件拷贝出来,然后通过局域网,拷贝到Samba开启的目录。 (1) # cp /home/httpd/html/pos/bak/apache-1.3.12-2.i386.rpm /root 将RPM包的文件,拷贝至目录“/root” (2) # cd root 进入root目录 (3) # rpm –i apache-1.3.12-2.i386.rpm 将apache-1.3.12-2.i386.rpm套件安装到Linux服务器服务器,默认的安装路径为:./usr/lib/apache,如果是二进制包,则路径应为:/usr/local/apache。 (4) # /etc/rc.d/init.d/httpd start 运行Apache。如果结果如下,表示可以正常启动 Starting httpd: OK ] (5) # ps aux | grep httpd 查询整个系统中,所有包含httpd(Apache服务器),且正在执行的程序。 root 1368 0.0 3.4 4560 2196 ? S 16:31 0:00 httpd nobody 1371 0.0 3.6 4668 2280 ? S 16:31 0:00 httpd nobody 1372 0.0 3.6 4668 2280 ? S 16:31 0:00 httpd nobody 1373 0.0 3.6 4668 2280 ? S 16:31 0:00 httpd …… (6) 如果Apache运行正常,可以从其他机器的IE浏览到Apache的欢迎页面。 至此,Apache Web Server安装和测试成功。 3. PHP: (1) # /etc/rc.d/init.d/httpd stop 首先停掉Apache (2) # cd /root 进入root目录。 (3) # tar –zxvf php-4.0.6.tar.gz 将之前放在root目录下的PHP4的tar包,解包。 (4) # cd php-4.0.6 进入解包后,PHP4的目录。 (5) # ./configure –apxs=/usr/sbin/apxs >--with-config-file-path=/etc/httpd/conf >--with-mysql=/usr/local/mysql >--with-gd >--with-zlib >--with-system-regex >--enable-ftp 配置PHP: ①如果把apxs安装到了其他路径,必须更改“/usr/sbin/apxs”,以指向apxs脚本程序所在的路径。通常二进制包,路径为“/usr/local/apache/bin/apxs”;RPM包,路径为“/usr/sbin/apxs”。 ②将PHP配置成Apache的DSO模块。配置文件将保存在“/etc/httpd/conf”(和Apache的配置文件一起); ③ 如果是以RPM包安装MySQL,应该把“--with-mysql=/usr/local/mysql”改为“--with-mysql” ④ 如果没有GD库,请取消“--with-gd” ⑤ 如果要支持ftp上传功能,需要“--enable-ftp” (6) # make 编译。 (7) # make install 安装。 (8) # reboot 重起Faresever服务器 五. 配置: 配置这部分主要针对Apache的httpd.conf文件,我们要求原先没有升级的Apache,既可以解析PHP4,也可以解析PHP4。 由于Linux服务器的Apache服务器是以RPM包装的,所以httpd.conf文件放在“/etc/httpd/conf/httpd.conf”。 以下是对该配置文件所做的编辑修改: 1. 找到该文件中 # LoadModule php3_module modules/libphp3.so 将其改为: # LoadModule php4_module /usr/lib/apache/libphp4.so 作用:将之前Apache所Load的PHP3的Module,改为PHP4的Module,后面是Module文件的路径。 2. 找到该文件中] # AddModule mod_php3.c 将其改为: # AddModule mod_php4.c 作用:将之前Apache所添加的Module由PHP3改为PHP4。 3. 找到该文件中:Port 80,所在位置,在下面增加如下语句: DirectoryIndex index.html index.shtml index.cgi index.phtml index.php3 index.php AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps 作用:可以是未升级的Apache,既能解析PHP3,也能解析PHP4。 至此,1.3.12版本的Apache配置文件“/etc/httpd/conf/httpd.conf”修改完毕。 六. 安装中可能出现的错误: 1. MySQL: (1) 如果MySQL的安装进入到前面(13)时,出现错误无法正常进入。 错误原因:端口设置错误。 用“netstat -t -l -p”命令查看网络状态,发现根本没有mysql,只有一个9999的端口在运行。 修改方法: ① 看/usr/local/mysql/bin/safe_mysqld,是否有一行为MYSQL_TCP_PORT=${MYSQL_TCP_PORT:-9999},将其改为MYSQL_TCP_PORT=${MYSQL_TCP_PORT:-3306} ② 用VI编辑器进入查看,并修改。 # vi /usr/local/mysql/bin/safe_mysqld ③ 重启mysql # /etc/rc.d/init.d/mysql.server stop # /etc/rc.d/init.d/mysql.server start (2) 连接MySQL出现错误,只要把opendatabase.php的文件改成127.0.0.1,就可以正常连接。 错误原因:权限问题。 修改方法:删除mysql库的user表中,一条Host为fareserve.fareexpress.com,而User为空的记录。 2. Apache: 之前想安装新版本,也就是1.3.22的Apache,但是,不论是RPM包,还是二进制包都无法安装成功。考虑为不过由于Linux版本的原因。最后还是采用了之前版本的Apache,还是用RPM包安装,未出现什么问题。 3. PHP: 安装很顺利。只是安装完后,无法在IE中浏览FareExpress(PHP3),和Power POS Management(PHP4),后来修改了Apache的httpd.conf(配置文件),这个在前面第五点“配置”中,已经介绍的很清楚,这里不再重复介绍。 |