1. 程式人生 > >CentOS6.5在已有低版本環境下安裝升級Apache+MySQL+PHP

CentOS6.5在已有低版本環境下安裝升級Apache+MySQL+PHP

由於最近工作中遇到了一個在比較老舊RedHat系Linux發行版系統上升級安裝Apache+MySQL+PHP環境的事情,鼓弄了半天,發現和在比較新的作業系統如CentOS7上安裝配置還是有一定區別的,因此,在此記錄一下主要的方法和過程,希望能幫到有同樣需求的朋友。(注:有些檔案目錄可能和你的實際情況有出入,請按需調整)

CentOS6.5環境:
核心版本: 2.6.32-431.el6.x86_64
GLIBC版本:2.1.2

安裝升級AMP版本(均為目前最新的穩定版本)說明:

原有低版本:
(1)Apache2.2.15
(2)MySQL5.1
(3)PHP5.3.3

待升級版本:
(1)Apache2.4.23
(2)MySQL5.7
(3)PHP 5.6.28

Apache升級安裝

首先,說一下Apache的升級安裝,從低版本環境升級到高版本Apache環境可以採用兩種方法:

yum方法

升級安裝步驟:
(1)配置yum倉庫

cd /etc/yum.repos.d
wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo

如果無法下載倉庫檔案成功,可參考以下檔案內容自行構建:

# Place this file in your /etc/yum.repos.d/ directory

[epel-httpd24]
name=httpd-2.4 scl
baseurl
=http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-$releasever/$basearch/ enabled=1 skip_if_unavailable=1 gpgcheck=0 [epel-httpd24-source] name=httpd-2.4 scl - Source baseurl=http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-$releasever/SRPMS enabled=0 skip_if_unavailable=1 gpgcheck=0

(2)安裝

yum install
httpd24

yum方法可能遇到的坑:
1.httpd24安裝後會自動相容原有版本的Apache服務,安裝到哪裡去了?
你會發現通過yum安裝,httpd24服務被安裝到了/opt/rh/httpd24/root目錄下,並且按照Linux根目錄下的目錄形式將httpd24分別的檔案分別放置,比如主程式就在/opt/rh/httpd24/root/etc/httpd下,日誌就在/opt/rh/httpd24/root/var/log/httpd下。
另外,通過chkconfig | grep httpd你會發現保留了原版本的httpd服務,另外增加了httpd24-httpd服務。httpd24以這種方式單獨呈現,因此,所有的配置工作都需要在對應的目錄下展開。

2.仍然需要你手動安裝apxs 工具,用於在PHP編譯中生成擴充套件模組。

apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server.

需要支援PHP,就需要自己重新編譯生成libphp5.so作為Apache伺服器支援PHP的模組,因此,apxs 是必備條件,所以你仍然需要進行鍼對apxs 的原始碼包安裝,你可以通過http://httpd.apache.org/docs/current/programs/apxs.html單獨獲取原始碼包進行編譯安裝。

原始碼包方法

原始碼下載地址:http://apache.fayea.com/httpd/需要下載httpd原始碼包以及deps依賴包,你可以通過原始碼包編譯方式進行安裝,這裡就不多做介紹了。

MySQL升級安裝

在PHP安裝前,為了生成對MySQL的PDO連線模組,系統中需要首先安裝MySQL Client,當然,如果需要服務端,你就需要進行安裝,安裝方法可以多種方法,這裡可以參考MySQL的官網,以下以yum方法為例:
檢視http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/說明,通過Yum方式安裝MySQL5.7版本,通過http://dev.mysql.com/downloads/repo/yum/下載一個5.7版本的repo包,比如:

rpm -Uvh mysql57-community-release-el6-n.noarch.rpm

安裝社群版MySQL Server

yum install mysql-community-server

安裝後目錄為:
/usr/local/mysql
通過閱讀doc/INSTALL-BINARY進行使用者、使用者組、資料夾許可權的配置工作,由於MySQL5.7版本的安全策略發生了一些變化,之後的主要步驟如下:
(1)初始化資料庫

mysql_install_db --datadir=/var/lib/mysql –user=mysql

(2)忽略許可權啟動MySQL服務

mysqld_safe --skip-grant-tables &

(3)無密碼登入

mysql -p

(4)修改root密碼

update mysql.user set authentication_string=password('password') where user='root' and Host = 'localhost';
flush privileges;

(5)使用標準模式重新啟動MySQL,帶密碼登入MySQL,再次確認修改密碼:

alter user 'root'@'localhost' identified by 'password';
flush privileges;

PHP升級安裝

由於需要生成libphp5.so作為Apache伺服器支援PHP的模組,另外,考慮到指定編譯選項有助於你最終生成各類擴充套件,所以,採用原始碼包安裝。

為了支援MySQL我們需要編譯mysqlnd、pdo-mysql,並且編譯一些必要的模組以及libphp5.so:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
 --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with- \
pdo-mysql=/usr/local/mysql --with-mysql=mysqlnd  --with-libxml-dir \
 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir  \
--with-zlib-dir --with-mcrypt=/usr/local/libmcrypt--enable-soap --enable- \
gd-native-ttf --enable-ftp     --enable-mbstring --enable-exif --disable-ipv6 \
--with-pear --with-curl --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs

這裡需要注意兩點,一是pdo-mysql編譯依賴MySQL Client的庫,需要指明MySQL的安裝目錄,如–with-pdo-mysql=/usr/local/mysql。apxs2需要指明apxs程式的路徑,如–with-apxs2=/usr/local/apache2/bin/apxs以便利用apxs生成libphp5.so模組。

另外,你也可以在PHP安裝完成後,單獨編譯一些你所需要的模組,所有的擴充套件模組均在PHP原始碼包的ext目錄下,如pdo-mysql,就在php-5.6.28/ext/pdo_mysql下,編譯生成模組檔案後,再通過配置php.ini的擴充套件進行手動新增,主要參考:
首先在模組原始碼目錄下需要使用/usr/local/php/bin/phpize工具程式生成configure檔案;
之後,完成正常的編譯安裝:

./configure -with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install

完成後會安裝在/usr/local/php/lib/php/extensions/目錄下,最終通過配置php.in檔案開啟extension模組即可。

PDO模組編譯安裝中可能遇到的坑:
對於在系統安裝時就已經安裝好的MySQL由於遍佈在/usr目錄下,在pdo-mysql配置時就直接指明為/usr目錄即可,另外,有可能出現找不到libmysqlclient的情況出現,需要執行以下命令:

ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so

一些可能在升級安裝中需要的依賴包

pcrelib依賴

libmcrypt依賴