2013-04-30

CentOS 6.4 (64位元) 安裝 phpMyAdmin

延續先前的進度,我們已經安裝好 phpMyAdmin 所需的套件
包含:httpd、php、php-mysql、php-mbstring
先下載 phpMyAdmin 的壓縮檔
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.8.1/phpMyAdmin-3.5.8.1-all-languages.tar.gz
解壓縮
tar -zxvf phpMyAdmin-3.5.8.1-all-languages.tar.gz
搬移 phpMyAdmin-3.5.8.1-all-languages 目錄到 Apache 預設的網頁目錄下
並重新命名為 phpMyAdmin
mv phpMyAdmin-3.5.8.1-all-languages /var/www/html/phpMyAdmin
切換到剛搬移的目錄
cd /var/www/html/phpMyAdmin
複製範本設定檔 config.sample.inc.php 並重新命名為 config.inc.php
cp config.sample.inc.php config.inc.php

接著修改 phpMyAdmin 的認證方式,用文字編輯器開啟設定檔
vi config.inc.php
找到以下這行文字
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookies';

這裡有提供三種認證方式
config帳號跟密碼直接寫在 config.inc.php 裡,是最基本的認證方式,安全性也最低。只建議在本機測試環境,或者確認伺服器是在防火牆之後,或者使用之前提過的 .htaccess 網頁認證模式
cookies有比 config 模式更高的安全性,透過 MySQL 做認證,不需要儲存帳號密碼在設定檔中,是相當常使用的一種認證方式。在64位元的環境下,若有安裝 php-mcrypt 模組可加快存取的速度
http擁有最高的安全性,除了使用 MySQL 認帳外,還提供基本的 HTTP 認證模式
參考phpMyAdmin Wiki:Auth Type

這次要使用 http 模式,將 auth_type 修改成 http
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
重新啟動 Apache
service httpd restart
確認 MySQL 是否已啟動
service mysql status

在瀏覽器輸入『http://IP位址或伺服器名稱/phpMyAdmin』
跳出輸入帳號密碼的視窗,預設使用 root 帳號登入

*這是基於 http 的認證模式。若是使用 cookie 模式,則會直接顯示 phpMyAdmin 的登入畫面

成功開啟 phpMyAdmin
出現兩則警告訊息:高級功能未啟用、缺少 mcrypt 外掛


缺少 mcrypt 外掛,如果想要安裝請依序執行以下指令
rpm -ivh http://mirror01.idc.hinet.net/EPEL/6/x86_64/epel-release-6-8.noarch.rpm
//安裝epel 6,EPEL是Extra Packages for Enterprise Linux的縮寫
yum update
//更新軟體
yum install php-mcrypt -y
//安裝mcrypt
service httpd restart
//重啟Apache伺服器
接著重新登入 phpMyAdmin
有關 EPEL 的相關內容請參考:http://fedoraproject.org/wiki/EPEL
參考文章:肥佳洛的學習網:CentOS 6 PHP Mcrypt 支援問題


接著是 phpMyAdmin 高級功能啟用的部分,我是參考這篇文章:狐的窩:MySQL管理工具
首先授予使用者 pma 相關的權限
登入 mysql,依序執行下列指令
GRANT USAGE ON mysql.* TO pma@localhost IDENTIFIED BY 'pmapass';
GRANT SELECT (
 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
 Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
 Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO pma@localhost;
GRANT SELECT ON mysql.db TO pma@localhost;
GRANT SELECT ON mysql.host TO pma@localhost;
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO pma@localhost;

接著用 WinSCP 軟體抓取 create_tables.sql 這個檔案,目錄位於
/var/www/html/phpMyAdmin/examples/create_tables.sql

接著到 phpMyAdmin 的頁面匯入這個檔案創鍵所需要的資料表
『輸入』→『從計算機上傳:』→找到剛下載的檔案→『執行』

出現匯入成功,有 14 個語法被執行

接著回到伺服器
在 mysql 中授權 pma 使用者選擇、新增、更新、刪除 phpmyadmin 這個資料庫的權限
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO pma@localhost;

編輯 config.inc.php 設定檔
vi /var/www/html/phpMyAdmin/config.inc.php
找到下圖這幾行,將註解『//』刪掉,存檔離開

最後重新啟動 Apache 伺服器
service httpd restart
接著到 phpMyAdmin 的頁面重新整理應該高級功能未全部設定的訊息就會消失了。
如果沒有,試著重新登入 phpMyAdmin


沒有留言 :

張貼留言