安装apache、mysql、php5、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 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目录
这 个默认权限是禁止访问/phpmyadmin/config/config.inc.php文件(保存密码等),访问/phpmyadmin /scripts/setup.php文件(配置phpmyadmin的)需要认证,除非URL中指定访问的文件,否则不列举出目录下的文件。
修改setup.php文件的认证用户、密码
username为用户名,接着输入密码。-c参数是新建一个配置文件,如果只是新添用户就不加参数。
需要重启apache服务设置才能生效
有时候要先stop、再start才生效。可能要重启firefox断开原来连接才能见到效果。
下面修改mysql管理员密码:可以在进入phpmyadmin后直接修改root的密码。或在命令行修改
若root已经有密码则
输入原密码。接着设置新密码
若你想新建一个具有所有权限的新用户
刷新权限表信息
退出
sql语法,即上面大写的部分(可以不用大写)需用;号结束。
若忘了管理员密码,先在菜单-系统-管理-系统监视,把mysql相关进程杀掉,以无认证方式启动mysql
设置新密码
刷新权限表
输入密码
注意mysql中管理员root(或其他名称)和系统管理员root不相关。
若因用户权限原因phpmyadmin进不了mysql,试着修改config.inc.php文件或mysql管理员密码。
若/etc/phpmyadmin下的一些配置文件误删了,重装phpmyadmin也没用,只会说not replace deleted file...。这些在/usr/share/ucf/phpmyadmin/etc/phpmyadmin下有备份,复制过来即可。
在上面的基础上开启ssl。
生成一个简单的证书文件(在/etc/apache2/ssl/apache.pem,一个月后过期,不影响使用。详细设置用openssl)
将原有默认站点配置复制一份为default.ssl
做一个软连接到sites-enabled,以启用新站点
修改原配置为80端口
将
<VirtualHost *>
改为
<VirtualHost *:80>
修改新配置为443端口,并开启ssl
将
<VirtualHost *>
改为
<VirtualHost *:443>
并加上
SSLCertificateFile /etc/apache2/ssl/apache.pem
添加apache监听端口443
加上
启用ssl模块
重启apache