1、我下載的是phpMyAdmin-3.2.3-all-languages版本,這個版本需要php 5.2或更高的版本,所以必須想辦法升級系統內建的php 5.1版本,具體操作就是利用系統yum“測試庫”更新php到5.2版本,可以參考http://blog.csdn.net/boyla/archive/2009/11/14/4811511.aspx 。
2、在Apache Http Server的主目錄/var/www/下建立目錄phpmyadmin,再在/etc/httpd/conf.d/目錄下建立一個設定檔phpmyadmin.conf,配置好虛擬目錄,內容如下:
Alias /phpmyadmin/ "/var/www/phpmyadmin/"
<Directory "/var/www/phpmyadmin/">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
3、把phpMyAdmin的壓縮包在本地解開(注意本地phpmyadmin/scripts/create_tables.sql 指令檔在後面還要用到),並上傳到/var/www/phpmyadmin/目錄裡,以後就可以通過http://192.168.0.33/phpmyadmin/這個URL訪問了,可是第一次訪問時介面還沒登入就顯示一個警告資訊,“無法載入 mcrypt 擴充,請檢查您的 PHP 配置”,不爽。初步判斷是缺少模組沒有安裝,通過在系統控制台執行:
yum search mcrypt
果然發現有一個模組叫“php-mcrypt”,再執行:
yum install php-mcrypt
提示安裝成功。再開啟http://192.168.0.33/phpmyadmin/可是警告資訊還是有。鬱悶。通過在系統控制台執行:
php -v
系統提示 PHP Warning: PHP Startup: mcrypt: Unable to initialize module
仔細想一想應該是版本不匹配,通過執行:
yum install php-mcrypt --disablerepo=/* --enablerepo=testing
果然發現測試庫裡有一個配套的5.9.2版本的同名模組,確認安裝後,再訪問http://192.168.0.33/phpmyadmin/警告資訊居然還是有,不解,通過php -v檢查,發現前面的錯誤提示已沒了,奇怪。再一想php是Apache Http Server通過模組形式調用的,可能是需要重起Apache Http Server,執行 service httpd restart,再訪問http://192.168.0.33/phpmyadmin/警告資訊果然沒了。爽。:)
4、在登入介面輸入MySQL管理使用者名root,再輸入密碼,居然登入成功了,本以為要進一步設定的,因為看文檔需要配置一個config.inc.php,即可以手工建立,也可以通過訪問http://192.168.0.33/phpmyadmin/setup/配置,現在看來預設配置很不錯;不過,登入進去發現系統介面提示“沒有找到 PHP 擴充 mbstring,而您現在好像在使用多位元組字元集。沒有 mbstring 擴充的 phpMyAdmin 不能正確分割字串,可能產生意想不到的結果”,更要命的是還有一個安全警告:“設定檔現在需要一個短語密碼”。很顯然,還需要更多的工作要做。
針對第一個警告,在控制台執行:
yum install php-mbstring --disablerepo=/* --enablerepo=testing
果然發現有一個和PHP版本號碼一致的php-mbstring模組,確認安裝後,並重起Apache Http Server,再重新進入系統,果然第一個警告沒了。:)
5、針對第二個警告,檢查phpMyAdmin安裝文檔,發現預設配置為Cookies認證方式,在HTTP協議訪問時需要對Cookie加密,所以要提供一個短語密碼,考慮到我的實際情況在本地編輯產生一個config.inc.php設定檔,上傳到/var/www/phpmyadmin/目錄,具體內容如下:
<?php
$i = 0;
/* Server: MySql */
$i++;
$cfg['Servers'][$i]['verbose'] = 'MySql';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
/* End of servers configuration */
$cfg['DefaultLang'] = 'zh-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['blowfish_secret'] = '8a995d909b9382.754a557b';
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['DefaultCharset'] = 'gbk';
/* User for advanced features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'myPass239';
/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
?>
值得注意的是上述設定檔中的localhost,不可以換成127.0.0.1,否則會有出錯提示:#2003 - Can't connect to MySQL server on '127.0.0.1' (13),不知道為什麼,雖然我已通過mysql用戶端操作符執行了:GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'myPassword#' WITH GRANT OPTION;以期允許root使用者通過127.0.0.1主機登入。結果很令人失望。在網上查了資料,後來在服務端的設定檔/etc/my.cnf的[mysqld]配置節加了skip-name-resolve重起了服務也還是不行。只能把localhost進行到底。:(
6、登入進去後,phpMyAdmin還是提示了兩個警告,一個是:連結資料表的額外特性尚未啟用。要查出原因,請點擊此處,另一個是:使用設定檔中定義的控制使用者串連失敗。這兩個警告的出現的根本原因是上述的設定檔中設定了phpMyAdmin進階特性的相關參數,見注釋/* User for advanced features */和/* Advanced phpMyAdmin features */下的設定。具體解決辦法如下:
進入phpMyAdmin管理介面後,利用匯入功能,匯入phpMyAdmin壓縮包在本地釋放出來的phpmyadmin/scripts/create_tables.sql 指令檔,執行後會產生一個phpmyadmin資料庫,同時會產生幾張表;然後,建立立一個使用者pma,密碼為myPass239,總之和上述設定檔設定一樣就可以,你可以根據你自己的實際情況設定相應的使用者名稱和密碼;建立使用者時允許pma通過localhost主機訪問phpmyadmin資料庫,使用者建立好好,授與其對phpmyadmin資料庫有select,update,insert,delete許可權。至此一切OK啦。關於phpMyAdmin這些進階特性的用法有待再研究;最後再附一圖供參考。:)