LAMP环境搭建图形界面配置MySQL数据库

来源:LinuxIDC.com 作者:LinuxIDC.com
  

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 就是该用户的密码。实际应用时当然不能设置这个了 ^_^。 

验证: 


由于日志写的很慢,中间出现问题,等到解决了问题再写,每一步都写的很清楚了。前前后后花了一周的时间。


时间:2011-10-22 23:55 来源:LinuxIDC.com 作者:LinuxIDC.com 原文链接

好文,顶一下
(3)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量