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(配置文件),這個在前面第五點“配置”中,已經介紹的很清楚,這裡不再重復介紹。