安装phpmyadmin

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
614a
帖子: 42
注册时间: 2006-06-16 2:39

安装phpmyadmin

#1

帖子 614a » 2006-06-29 17:17

安装apache、mysql、php5、phpmyadmin

代码: 全选

sudo apt-get install apache2 mysql-server  php5 php5-mysql php5-gd phpmyadmin
mysql有客户端、服务器端,命令行下配置、管理mysql需要用到客户端,mysql-server包会自动安装客户端和服务器端。php5-gd包是和处理图形函数相关的。

装好后,mysql管理员是root,无密码,通过http://localhost/phpmyadmin就可以访问mysql了。

访问mysql的用户的权限被保存在mysql里一个叫mysql的数据库里,phpmyadmin通过controluser访问mysql数据库得到用户的权限信息,并根据用户权限显示相应等级的管理界面(在刚安装好,没有配置phpmyadmin之前,是默认用root、无密码来查询的)。controluser只需要简单的查询权限,在phpmyadmin的文档http://localhost/phpmyadmin/Documentation.html里有说明:

SELECT privilege on the mysql.user (all columns except "Password"), mysql.db (all columns), mysql.host (all columns) and mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables.

此用户需要有mysql.user(除了Password列)、mysql.db、mysql.host、mysql.tables_priv(除了Grantor、Timestamp)表的查询权限。上面mysql是数据库名,user、db等是他的数据表名,括号里是他的列。所以在登录phpmyadmin后,需要新建一个具有这些权限的controluser,给phpmyadmin查询mysql。这里不直接用root的原因是,controluser的密码必须以明文保存在/usr/share/phpmyadmin/config/config.inc.php中,所以新建一个只有查询所有用户权限的自身权限极小的用户,可以避免风险。

现在我们添加一个叫pma的controluser:在phpmyadmin(可以先在右边选择界面语言-中文)左边界面选权限-添加新用户,输入用户名、密码、主机(这里指phpmyadmin所在,为本地localhost,若phpmyadmin和mysql不在同一台机器,就填phpmyadmin的ip或域名),比如pma、pmapass,全局权限等不选,点执行。完成后再点权限,在用户pma行最右边点编辑,然后在按数据库添加权限选mysql数据库,再在按数据表添加权限选user数据表,选择select权限里除了password的其他所有列,点执行。用同样的方法添加上面提到的权限,就完成了用户pma的权限设置。以上也可以用SQL语言来完成,点权限-SQL,输入(把下面的用户名pma、密码pmapass等改成你自己的设定)

代码: 全选

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';
现在进行phpmyadmin的配置:用phpmyadmin的脚本来配置http://localhost/phpmyadmin/scripts/setup.php,在server项点add(若是修改原有配置就点下面configuration的load),主机(mysql所在)localhost、端口,认证方式Authentication type选http(指浏览器弹出一个窗口让你填登录mysql的用户、密码,config方式为保存明文到文件,不推荐),下面的config用户、密码为空(因为选了http方式),control user用户pma,密码pmapass,点add。在configuration点display就可以看到你设置的全部内容了,点save保存,保存到/usr/share/phpmyadmin/config/config.inc.php,选download则下载配置文件。配置时不要选安全连接ssl,因为那需要进一步安装openssl、apache2的ssl模块,现在只能普通连接。

将phpmyadmin文件夹在web下的访问权限配置文件复制到apache目录

代码: 全选

sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
这个默认权限是禁止访问/phpmyadmin/config/config.inc.php文件(保存密码等),访问/phpmyadmin/scripts/setup.php文件(配置phpmyadmin的)需要认证,除非URL中指定访问的文件,否则不列举出目录下的文件。
修改setup.php文件的认证用户、密码

代码: 全选

sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup username
username为用户名,接着输入密码。-c参数是新建一个配置文件,如果只是新添用户就不加参数。
需要重启apache服务设置才能生效

代码: 全选

sudo /usr/sbin/apache2ctl restart
有时候要先stop、再start才生效。可能要重启firefox断开原来连接才能见到效果。

下面修改mysql管理员密码:可以在进入phpmyadmin后直接修改root的密码。或在命令行修改

代码: 全选

sudo mysql -u root
若root已经有密码则

代码: 全选

sudo mysql -u root -p
输入原密码。接着设置新密码

代码: 全选

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
若你想新建一个具有所有权限的新用户

代码: 全选

GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; 
刷新权限表信息

代码: 全选

mysql> FLUSH PRIVILEGES;
退出

代码: 全选

mysql> \q
sql语法,即上面大写的部分(可以不用大写)需用;号结束。

若忘了管理员密码,先在菜单-系统-管理-系统监视,把mysql相关进程杀掉,以无认证方式启动mysql

代码: 全选

sudo mysqld --skip-grant-tables
设置新密码

代码: 全选

mysqladmin -h hostname -u username password yournewpassword
刷新权限表

代码: 全选

mysqladmin -u root -p flush-privileges
输入密码

注意mysql中管理员root(或其他名称)和系统管理员root不相关。

若因用户权限原因phpmyadmin进不了mysql,试着修改config.inc.php文件或mysql管理员密码。

若/etc/phpmyadmin下的一些配置文件误删了,重装phpmyadmin也没用,只会说not replace deleted file...。这些在/usr/share/ucf/phpmyadmin/etc/phpmyadmin下有备份,复制过来即可。
614a
帖子: 42
注册时间: 2006-06-16 2:39

#2

帖子 614a » 2006-07-03 15:46

在上面的基础上开启ssl。

生成一个简单的证书文件(在/etc/apache2/ssl/apache.pem,一个月后过期,不影响使用。详细设置用openssl)

代码: 全选

sudo apache2-ssl-certificate
将原有默认站点配置复制一份为default.ssl

代码: 全选

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.ssl
做一个软连接到sites-enabled,以启用新站点

代码: 全选

sudo ln -s /etc/apache2/sites-available/default.ssl /etc/apache2/sites-enabled/000-default.ssl
修改原配置为80端口

代码: 全选

sudo gedit /etc/apache2/sites-available/default

代码: 全选

NameVirtualHost *
<VirtualHost *>
改为

代码: 全选

NameVirtualHost *:80
<VirtualHost *:80>
修改新配置为443端口,并开启ssl

代码: 全选

NameVirtualHost *
<VirtualHost *>
改为

代码: 全选

NameVirtualHost *:443
<VirtualHost *:443>
并加上

代码: 全选

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
添加apache监听端口443

代码: 全选

sudo gedit /etc/apache2/ports.conf
加上

代码: 全选

Listen 443
启用ssl模块

代码: 全选

sudo a2enmod ssl
重启apache

代码: 全选

sudo /usr/sbin/apache2ctl restart
头像
callia
帖子: 171
注册时间: 2006-04-10 19:25
来自: 北京
联系:

#3

帖子 callia » 2006-07-03 22:45

正在安装。。。嘎嘎,谢谢楼主
蓝-蜗牛
帖子: 29
注册时间: 2006-06-29 15:38

#4

帖子 蓝-蜗牛 » 2006-07-06 14:27

提不错的 就上没有图形库的支持
shx
帖子: 10
注册时间: 2009-03-06 13:32

Re: 安装phpmyadmin

#5

帖子 shx » 2009-03-25 15:16

新手问:
我访问http://localhost/phpmyadmin/scripts/setup.php的时候输入root和设置的密码后,总是提示输入用户名和密码,为什么?访问http://localhost/phpmyadmin/能用root帐户正常登录。
头像
xtay573269555
帖子: 217
注册时间: 2008-09-24 23:56

Re: 安装phpmyadmin

#6

帖子 xtay573269555 » 2009-05-19 18:28

顶lz,正在学习LAMP……
回复