歡迎您光臨本站 註冊首頁

LAMP環境搭建圖形界面配置MySQL資料庫

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

MySQL 的 RPM 包或源碼包在默認情況下並沒有提供圖形界面的管理工具,在這類工具中最著名是 phpMyAdmin。

phpMyAdmin(官方網站:http://www.phpmyadmin.net)是一個以 PHP 為基礎的 MySQL 資料庫管理工具。phpMyAdmin 讓管理者通過 Web 的方式管理 MySQL 資料庫。phpMyAdmin 與其它 PHP 程序一樣在 Web 伺服器上執行。但可以在任何地方使用這些程序產生的 HTML 頁面,遠端管理 MySQL 資料庫,方便的建立、修改、刪除資料庫及表。

注意 phpMyAdmin 對 PHP 和 MySQL 的版本要求: 

1、下載 phpMyAdmin 並解壓

下載到 /data/software/ 目錄  

 2、把解壓出來的目錄移動到 Apache 網站所在目錄。

並複製 phpMyAdmin 配置文件模板。

修改 SELinux 狀態。  

 3、啟動 httpd、mysqld 服務

由於我之前配置了 LAMP 環境,所以 Apache、MySQL 服務已經成功運行。

 4、訪問 phpMyAdmin

上述配置完成後,可以使用 http://192.168.10.1/phpmyadmin 訪問到 phpMyAdmin。如下圖:

phpMyAdmin 可根據客戶端所使用的操作系統的語言自動調整所顯示的語言。

 可以發現少了一個 mcrypt 擴展,這是一個加密方式。後繼可以安裝,建議必須安裝。用來加密 Web 客戶端與伺服器端傳輸的數據,以保證 PHP 和資料庫的安全。

注意:默認情況下 phpMyAdmin 會認為和所管理的 MySQL 在同一台主機,如果不在同一台主機,可修改“/var/www/html/phpmyadmin/config.inc.php”文件,內容如下:

$cfgServers[1]['host']='localhost'; 

5、登錄 MySQL 資料庫

輸入 MySQL 資料庫的管理員用戶 root 和密碼。即可進入資料庫。如下圖: 

 下面是資料庫 mysql 下 user 表中的內容,可以看到目前資料庫中有那些用戶。 

 到這一步只能算服務架起來了。還有很的設置要做。最主要的當然是安全。牽扯到資料庫,當然要保證資料庫安全。

還需要安裝 mcrypt 和 mhash 模塊。否則會有以下問題,如下圖: 

 所以到這一步,我們只是初步的把服務搭建起來。後續還有很多的工作要做。

解決問題: 

問題1:配置文件現在需要一個短語密碼

 這是因為出於安全的考慮 phpMyAdmin 會啟用 Cookies,所以必須要設置一個密碼。在訪問 phpMyAdmin 首頁的時候下方也有提示。

為啟用 Cookies 設置一個密碼:

我把 phpMyAdmin 放到了 /var/www/html/phpmyadmin/ 目錄。所以到該目錄下,編輯 config.inc.php 和 libraries/config.default.php 兩個配置文件。找到如下這一行:

 $cfg['blowfish_secret'] = '';

 在後面的單引號中加入密碼,我設置的是:123456。如下圖:

 /var/www/html/phpmyadmin/config.inc.php

/var/www/html/phpmyadmin/libraries/config.default.php

 注意:

/var/www/html/phpmyadmin/config.inc.php 配置文件優先順序高於 /var/www/html/phpmyadmin/libraries/config.default.php 配置文件。只要設置 config.inc.php 即可。

問題2:缺少 mcrypt 擴展。

安裝三個軟體包:

libmcrypt

mhash

mcrypt

 注意:

其中 libmcrypt 是編譯 mcrypt 時所需要的依賴包,所以要在編譯 mcrypt 包前先編譯安裝 libmcrypt包。

mcrypt 擴展庫可用以實現加密解密功能。mcrypt庫支持20多種加密演算法和8種加密模式。

mhash 函數庫支持多種哈稀演演算法,例如最出名的 MD5、SHA1 或 GOST,還有其它多種的哈稀演演算法。

 我所下載的三個軟體包如下圖:

我下載的版本有點低。建議用高版本,但不建議用最新版。 

下圖是它們之間的依賴關係:

該圖來源於網路

注意:

由於在配置 mcrypt 時,會找不到 libmcrypt 的鏈接庫,導致無法編譯,因為 libmcrypt 的鏈接庫在 /usr/local/lib/ 目錄下。因些在配置 mcrypt 時要加入 LD_LIBRARY_PATH=/usr/local/lib/ 導入鍵接庫。

:#./configure LD_LIBRARY_PATH=/usr/local/lib/ 

 (1)先安裝libmcrypt  (說明:libmcript 默認安裝在 /usr/local  )

#tar -xvzf libmcrypt-2.5.7.tar.gz 

#cd libmcrypt-2.5.7

#./configure 

#make 

#make install 

 (2)安裝mhash

#tar -zxjf mhash-0.9.9.9.tar.bz2

#cd mhash-0.9.9.9 

#./configure 

#make 

#make install

 (3)安裝mcrypt

#tar -xvzf mcrypt-2.6.7.tar.gz 

#cd mcrypt-2.6.8 

#./configure LD_LIBRARY_PATH=/usr/local/lib/

#make 

#make install

 注意:

指定 libmcrypt 鏈接庫,由於我上面按默認編譯安裝 libmcrypt,所以安裝路徑應該是 /usr/local/lib/ ,如果不知道,可以用命令 #find /usr/ -name libmcrypt.so 查找。

(4)安裝PHP擴展模塊:

 動態載入

 這一步分兩種情況,一種是通過源碼安裝的 LAMP 環境;一種是通過 RMP 包安裝 LAMP 環境。針對這兩種安裝方法安裝 mcrypt 擴展模塊。原每個步驟針對源碼安裝的 LAMP 環境,但是我會在每個步驟特別註明 RPM 包安裝的環境怎麼做。

 使用 PHP 的常見問題是:編譯 PHP 時忘記添加某擴展,後來想添加擴展,但是因為安裝 PHP 后又裝了一些東西,不想刪除目錄重裝,於是可以採用 phpize。來針對特定模塊編譯安裝。

 說明:

LAMP 源碼安裝環境

Linux:

RHEL 6

Apache:

版本:httpd-2.2.15-5.el6.x86_64

安裝路徑:/usr/local/httpd/

MySQL:

版本:mysql-5.1.47-4.el6.x86_64

安裝路徑:/usr/local/mysql

PHP:

版本:php-5.3.2-6.el6.x86_64

安裝路徑:/usr/local/php/

 

LAMP RPM安裝環境

Linux:

RHEL 6

Apache:

版本:httpd-2.2.15-5.el6.x86_64

默認安裝路徑

MySQL:

版本:mysql-5.1.47-4.el6.x86_64

默認安裝路徑

PHP:

版本:php-5.3.2-6.el6.x86_64

默認安裝路徑

 

方法:

 1)、要有與現有 PHP 完全相同的 PHP 壓縮包 解壓後進入裡面的 ext/mcrypt目錄 (裡面是 mcrypt 的 PHP 擴展)

#cd /temp/php-5.3.2/ext/mcrypt

 注意:

如果是 RPM 包安裝的 PHP,建議下載同樣版本的源碼包做這個操作。源碼包與你安裝的 RMP 包的版本不一樣,也是可以的,我下載了一個 php-5.2.17 和 php-5.3.8 的源碼包測試過,編譯出來的 mcrypt.so 模塊可以使用。

RPM 包安裝的 LAMP 環境同樣做這一步。

 2)、執行 /usr/local/php/bin/phpize,執行完后,會發現當前目錄下多了一些 configure 文件,如果沒報錯,則根據提示運行。

#cd /temp/php-5.3.2/ext/mcrypt/ 

#/usr/local/php/bin/phpize  (針對源碼安裝的 PHP,執行 PHP 命令時使用絕對路徑。)

 執行完 phpize 命令後會生成 configure 配置文件和其它幾個文件。如下圖: 

 注意:

在執行 phpize 命令時,一定要在解壓開的源碼包 /temp/php-5.3.2/ext/mcrypt/ 這個目錄下執行 phpize 命令。所以要先切換到 /temp/php-5.3.2/ext/mcrypt/ 這個目錄。

如果是 RPM 包安裝的 PHP,就不需要使用絕對路徑執行命令了。這條命令在 php-devel 包中,所以你要安裝這個包。

RPM 包安裝的 LAMP 環境同樣做這一步。

 3)、編譯安裝

#./configure --with-php-config=/usr/local/php/bin/php-config

#make

#make install

 注意:

在 #make 完成後,會在當前目錄的 modules/ 目錄下生成 mcrypt.so 模塊。modules/ 目錄也是在執行 #make 命令后創建的。在執行 #make install 命令的時候會提示安裝 mcrypt.so 模塊的路徑。

 RPM 包安裝的 LAMP 環境下測試,如下圖:

  注意:

源碼安裝的 PHP:php-config 的位置是 /usr/local/php/bin/php-config 。不指定路徑會出現錯誤提示。

看到上圖會有點困惑,上圖是在 RPM 包安裝的 LAMP 環境中測試的。如果是源碼安裝的 LAMP 環境,安裝位位置就不一樣了,因為在源碼的環境中,要指定 php-config 的位置,即 #./configure --with-php-config=/usr/local/php/bin/php-config。安裝 mcrypt.so 模塊的位置受這個指定的 php-config 位置影響。

RPM 包安裝的 PHP:php-config 是默認路徑,/usr/bin/php-config。可以不指定路徑。mcrypt.so 模塊默認安裝路徑就是上圖中的位置。

如果不知道可以用命令 #find / -name php-config 查找。

RPM 包安裝的 LAMP 環境同樣做這一步。

4)、確定mcrypt.so文件在正確的位置

在源碼安裝的情況下,根據 php.ini 中指示的 extension_dir 指向的目錄中, 將 mcrypt.so 其複製過去。你也可以修改 extension_dir 的指向,例如指向 /usr/lib64/php/modules/ 這個目錄。這個 extension_dir 決定了 mcrypt.so 模塊要放在的目錄。

 注意:

如果是 RPM 包安裝的 LAMP 環境,一般就不需要做這一步。

 5)、配置php.ini

#vi /usr/local/php/php.ini

並添加 extension=mcrypt.so

 注意:

如果是 RPM 包安裝的 LAMP 環境:PHP 配置文件在 /etc/php.ini 。

RPM 包安裝的 LAMP 環境同樣做這一步。

 6)、重啟 httpd 服務

#/usr/local/httpd/bin/apachectl restart

 注意:

如果是 RPM 包安裝的 LAMP 環境:直接執行 #apachectl restart 命令,或者是執行:#service httpd restart

RPM 包安裝的 LAMP 環境同樣做這一步。

 下圖是 PHP 官方的安裝方法:

 驗證

現在來看一下訪問 phpMyAdmin 的結果,看看有沒有解決問題。如下圖:

訪問 http://192.168.10.1/phpmyadmin 並登錄。 

 可以看到,已級解決了 mcrypt 擴展問題和 Cookies 需要一個短語密碼的問題。

 問題3:沒有找到 PHP 擴展 mbstring 字符集。

 注意:

這個也需要單獨針對 mbstring.so 模塊編譯。方法和編譯 mcrypt.so 模塊用一樣。所需要注意的地方和修改的地方完全一樣。

 在編譯 mbstring 時,有可能會出現這個錯誤:

error: ‘PHP_FE_END’ undeclared here (not in a function)

make: *** [mbstring.lo] Error 1

 解決方法如下: 
剛開始以為是編譯器和版本的問題。又下載的 php-5.3.8.tar.bz2,還是出現同樣的問題。

執行下面兩行命即可解決問題。出現這個問題,我覺得是源碼被篡改了。當然是 hacker 所為了。

Apparently, the hack is to replace PHP_FE_FUNCTION by {NULL,NULL,NULL} so I added this in my code:

sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' /temp/php-5.3.8/ext/**/*.c

sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' /temp/php-5.3.8/ext/**/*.c

And this fixes the bug. But I am not a C expert so I know it works but I don't know why so it's kind of frustrating.

上面的方法摘自國外網路。如錯誤提示中有提到具體的錯誤文件,那就指定修改這個文件即可。

mbstring 編譯開始:

 #cd /temp/php-5.3.2/ext/mbstring/

#phpize

#./configure   --with-php-config=/usr/local/php/bin/php-config (同樣分兩種情況)

#make

#make install

確定mcrypt.so文件在正確的位置

#vi /usr/local/php/php.ini

並添加 extension=mbstring.so

重啟 httpd 服務

 驗證

如下圖: 

 問題4:解決 phpMyAdmin 高級功能未設置。

 1)、導入資料庫

 有一個SQL文件 phpmyadmin/script/create_tables.sql,通過 create_tables.sql 文件創建必需的數據表。在這一步,你也可以直接使用phpmyadmin導入功能完成這一步的操作。 

 注意:

這一步可以用 phpMyAdmin 的 Web 界面導入。資料庫相關操作都可以這樣通過 phpMyAdmin  操作。

訪問:http://192.168.10.1/phpmyadmin/setup/index.php,如下圖:

2,建立用戶

 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';

GRANT SELECT ON phpmyadmin.* TO 'pma'@'localhost';

 注意:

這一步也可以用 phpMyAdmin 的 Web 圖形界面操作。 

3)、修改配置文件

 修改 config_inc.php 配置文件如下圖: 

 注意:

第一行 pma 就是上面創建的用戶 , 第二行 pmapass 就是該用戶的密碼。實際應用時當然不能設置這個了 ^_^。 

驗證: 


由於日誌寫的很慢,中間出現問題,等到解決了問題再寫,每一步都寫的很清楚了。前前後後花了一周的時間。



[火星人 ] LAMP環境搭建圖形界面配置MySQL資料庫已經有835次圍觀

http://coctec.com/docs/linux/show-post-74062.html