如何在CentOS 7服务器上利用Apache安装并hpMyAdmin
在CentOS上安装phpMyAdmin,你第一步需要架设一台Web服务器(如Apache或nginx),安装好MySQL/MariaDB数据库和PHP。根据你的偏好和需求,你可以从LAMP和LEMP中选择一种安装。
另一个要求是允许在你的CentOS上安装EPEL库。
在CentOS6或7上安装phpMyAdmin
一旦你设置了EPEL库,你就能轻松地用以下命令安装phpMyAdmin了。
在CentOS 7上:
$ sudo yum install phpmyadmin
在CentOS 7上:
$ sudo yum install phpmyadmin php-mcrypt
在CentOS 7上配置phpMyAdmin
默认情况下,CentOS 7上的phpMyAdmin只允许从回环地址(127001)访问。为了能远程连接,你需要改动它的配置。
用文本编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/confd/phpMyAdminconf),找出并注释掉带有"Require ip XXXX"字样的代码行。会有四处这样的代码行,用"Require all granted"取而代之。重新改动过的配置文件如下所示。
$ sudo vi /etc/httpd/confd/phpMyAdminconf
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_corec> # Apache 24 <RequireAny> #Require ip 127001 #Require ip ::1 Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_corec> # Apache 22 Order Deny,Allow Deny from All Allow from 127001 Allow from ::1 </IfModule></Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_corec> # Apache 24 <RequireAny> #Require ip 127001 #Require ip ::1 Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_corec> # Apache 22 Order Deny,Allow Deny from All Allow from 127001 Allow from ::1 </IfModule></Directory>
最后,重启httpd使改动生效。
$ sudo systemctl restart httpd
在CentOS 6上配置phpMyAdmin
默认情况下,CentOS 6上的phpMyAdmin是禁止从每个IP地址访问的。为了能远程连接,你需要改动它的配置。
用文本编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/confd/phpMyAdminconf),找出并注释掉"Deny from all"字样的代码行。然后把"Allow from 127001"字样的代码行改成"Allow from 0000"。重新改动过的配置文件如下所示。
$ sudo vi /etc/httpd/confd/phpmyadminconf
<Directory "/usr/share/phpmyadmin"> Order Deny,Allow# Deny from all Allow from 0000</Directory>
下一步是将phpMyAdmin的配置文件用blowfish加密工具加密。这一步需要加密cookie里的密码来作为基于cookie的部分认证。
用文本编辑器打开如下路径所示的文件并且用blowfish设置一个随机密码,如下所示。
$ sudo vi /usr/share/phpmyadmin/configincphp
$cfg['blowfish_secret'] = 'kd5G}d33aXDc50!'; / YOU MUST FILL IN THIS FOR COOKIE AUTH! /
最后,重启httpd使改动生效。
$ sudo service httpd restart
测试phpMyAdmin
测试phpMyAdmin是否设置成功,访问这个页面:http://<web-server-ip-addresss>/phpmyadmin
你应该能通过Web界面来记录下任何MySQL用户(比如root)和管理MySQL/MariaDB的数据库/表。
疑难解答
这里有一些在CentOS上安装phpMyAdmin的过程中遇到的一些问题解决方法。
当你在浏览器里尝试连接phpMyAdmin页面的时候,你看到"403 Forbidding"错误:
You don't have permission to access /phpMyAdmin on this server
发生这种错误是因为phpMyAdmin默认阻止了IP地址远程连接。要修复这种错误,你需要编辑它的配置文件来允许远程连接。具体操作见上。
当你连接phpMyAdmin页面时,你看见"The configuration file now needs a secret passphrase (blowfish_secret)"信息,并且你无法登录。
要修复这种错误,你需要编辑 /usr/share/phpmyadmin/configincphp 这个文件来添加一个随机的blowfish密码,然后重启httpd,如下所示。
$ sudo service httpd restart (CentOS 6)
$ sudo systemctl restart httpd (CentOS 7)
$cfg['blowfish_secret'] = 'kd5G}d33aXDc50!'; / YOU MUST FILL IN THIS FOR COOKIE AUTH! /
当你连接phpMyAdmin页面时,你看见"Cannot load mcrypt extension Please check your PHP configuration"错误信息。
要修复这种错误,要安装下面这个包:
然后重启httpd:
$ sudo service httpd restart (CentOS 6)
$ sudo systemctl restart httpd (CentOS 7)
$ sudo yum install php-mcrypt
/boot 20M
Swap 128M
/root 985G
建立一个20M的/boot分区是为了避免将系统内核文件放到1024磁道以外,如果将/boot做为root分区的一个子目录,内核文件就会安装在root分区的任何地方,因为硬盘的大小超过了8G,所以在启动时就有可能出现问题。建议将交换分区的大小设置为内存的两倍,在这里我们假设系统的内存为64M。最后我们将硬盘的剩余空间全部分给了root分区。 Red Hat Linux 62 及其早期版本上的基本服务器硬盘分区方案
这里的服务器我们假设只提供几种通用的服务,如WWW服务及FTP服务等几种服务,通过telnet登录的用户数很少。假设其硬盘大小为25G。
/boot 20M
Swap 128M
/ 10G
/home 13G
/var 2G
在硬盘的最前面创建20M大小的/boot分区,原因同上。 交换分区的大小也是128M,因为内存的大小为64M。
/ ,即root分区设为10G这么大是因为其中有一个/usr目录,这个目录可能会占用很多硬盘空间,特别是在安装了X Server,运行图形界面的应用程序的时候。
/home分区是硬盘中最大的分区,这似乎与我们假设系统用户数不多有些矛盾。实际上在/home目录下确实没有几个用户目录,但在Red Hat62及更早的版本中,Apache服务器和wu-ftpd FTP服务器被放在了/home/httpd及/home/ftp目录中。所以这个分区这么大也是有原因的。
最后,/var目录独自占用了一个分区,因为系统的所有日志都写到了/var/log目录下,这将会占用很大的硬盘空间。如果系统日志记录得非常详细,整个目录很快会被写满,导致系统工作呆滞。当然,可以通过系统日志后台守护程序syslogd来修改日志配置,避免发生这种情况。
Red Hat 7及以上版本的基本服务器分区方案 这种情况同前一个方案的情况相同,不同的是LINUX版本为Red Hat 70及其以上版本。
/boot 20M
Swap 128M
/ 10G
/var 15G 与RedHat6不同,在RedHat7中HTTP服务和FTP服务的目录现在位于 /var/www/和/var/ftp/,因此/var分区有15G之大也就不难理解了。
多用户服务器分区方案 在这种服务器系统中,同时有多个用户通过telnet, ssh, rlogin或其方式在远程访问系统。系统中有三个35G的硬盘驱动器,总共有105G的磁盘空间 。系统中用到了RAID 5技术做数据冗余。这种情况下,管理员必须为每个用户分配磁盘空间。 对RedHat 62及更早的版本,分区如下:
Disk 1: /boot 20M
/ 4G
/var 3GB
/home 2798G Disk 2: swap 20MB
/ 4GB
/var 3GB
/home 2798GB Disk 3: swap 20MB
/ 4GB
/var 3GB
/home 2798GB 这样分区的原因:首先,Disk1上的20M /boot分区不属于任何RAID阵列,否则如果你将/boot放至RAID阵列中,以后就不能系统内核升级了。
为了方便管理,在其它两个硬盘中建立了20M的交换分区。这种服务器一般配有1G以上的内存,因此交换分区的大小不成问题。如果增大交换分区,就会减少RAID分区空间,所以20M是足够的。RAID分区的分组如下: · 1-A, 2-A, and 3-A 一起组成一个8G的 RAID 5 驱动器,做为/根目录打开。
· 1-B, 2-B, and 3-B 组成 6GB的 RAID 5 驱动器,做为 /var目录。
· 1-C, 2-C, and 3-C 组成 5596GB RAID 5 驱动器, 做为 /home目录。
这种分配方案总共有5596G的空间分配给所有用户及Apache和FTP服务,在/var下用6G空间用做记录日志、邮件,这么大的空间是足够的。
如果安装Red Hat7或以上版本,应给/var分区更大的空间,因为它同时还存放着WEB和FTP服务的两个目录。
找个4G或8G的U盘,格式化为FAT32,并在磁盘管理中激活其分区,使其能可引导,再把server2008系统安装光盘中所有的文件复制进U盘根目录。拿这个U盘启动服务器进行安装即可,如果服务器上配置了阵列卡并启用了raid阵列,需要在hp网站上下载对应的阵列卡驱动放到U盘中,安装过程中选择加载这个阵列卡驱动即可!首先本着相互学习的原则,请尽可能的将问题描述的清晰易懂,条理清晰,可能的话请提供截图或照片以便分析问题所在,谢谢您的支持和理解!其次,无论您是本着什么样的心态在此提问,请在提问前先尝试百度搜索下可能问题早有过回答了,也不是说悬赏多少就一定有人答,而是用心提问才会有人答,大家并不是职业解答人,都有自己的工作和生活,都是利用零碎的时候在网络上为他人提供一点小小的帮助,日行一善,积善成德,请尊重回答者,如同自尊自爱一样!以上,有帮助到您的请采纳,若还有问题请追问,倘若回答得不到您的满意请见谅,毕竟一个人能力有限,感谢浏览至此。
PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS、Solaris、Tru64)、Windows OS。在这篇教程里,我们将学习如何在CentOS7/65/64 server 中建立PostgreSQL。
1安装PostgreSQL
首先根据你的服务器架构添加PostgreSQL库:
对CentOS 6x 32bit:
rpm -Uvh http://yumpostgresqlorg/93/RedHat/rhel-6-i386/pgdg-centos93-93- 1noarchrpm
对CentOS 6x 64bit:
rpm -Uvh http://yumpostgresqlorg/93/redhat/rhel-6-x86_64/pgdg-centos93-93-1noarchrpm
对CentOS 7 64bit:
rpm -Uvh http://yumpostgresqlorg/93/redhat/rhel-7-x86_64/pgdg-centos93-93-1noarchrpm
对于其它的发行版,可查看以下链接并建立库:
http://yumpostgresqlorg/repopackagesphp#pg93
使用以下命令来更新库:
yum update
使用以下命令来安装PostgreSQL:
yum install postgresql93-server postgresql93-contrib
使用以下命令来初始化PostgreSQL数据库:
在CentOS 6x 系统中:
service postgresql-93 initdb
在CentOS 7系统中:
/usr/pgsql-93/bin/postgresql93-setup initdb
然后启动PostgreSQL服务并使之开机自启:
在CentOS 6x 系统中:
service postgresql-93 start
chkconfig postgresql-93 on
在CentOS 7系统中:
systemctl enable postgresql-93
systemctl start postgresql-93
2调整Iptables/Firewall
接下来调整防火墙出站规则:
在CentOS 6x系统中:
vi /etc/sysconfig/iptables
并添加以下行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
退出并保存文件。重启iptables服务:
service iptables restart
在CentOS系统中:
firewall-cmd --permanent –add-port=5432/tcp
firewall-cmd --permanent –add-port=80/tcp
firewall-cmd --reload
3访问PostgreSQL常用的命令提示符
默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:
su – postgres
输入以下命令登陆:
psql
会有以下样例输出:
psql (935)
Type "help" for help
Postgres=#
可通过输入\q退出postgresql返回命令终端:
4设置用户密码
登陆至postgres命令提示符界面
su – postgres
psql
然后使用命令设置密码
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q
输入命令以建立PostgreSQL系统管理工具
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
5创建用户和数据库
例如:用户名:senthil 密码:centos 数据库名:mydb
转到postgres用户
su – postgres
创建用户senthil
$ createuser senthil
创建数据库
$ createdb mydb
现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:
$ psql
psql (935)
Type "help" for help
postgres=# alter user senthil with encrypted password 'centos';
ALTER ROLE
postgres=# grant all privileges on database mydb to senthil;
GRANT
postgres=#
6删除用户和数据库
首先转到postgres界面
su – postgres
输入命令
$ dropdb <database-name>
删除用户名可输入
$ dropuser <user-name>
7配置PostgreSQL-MD5认证
MD5认证需要客户端提供一个MD5-encrypted 密码以便身份验证。你需要编辑 /var/lib/pgsql/93/data/pg_hbaconf文件:
vi /var/lib/pgsql/93/data/pg_hbaconf
添加或修改的行如下:
[]
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127001/32 md5
host all all 19216810/24 md5
# IPv6 local connections:
host all all ::1/128 md5
[]
重启postgresql服务以应用更改
在CentOS 6x系统中
service postgresql-93 restart
在CentOS 7系统中
systemctl restart postgresql-93
8配置PostgreSQL-Configure TCP/IP
默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件 /var/lib/pgsql/93/data/postgresqlconf可以允许连接:
vi /var/lib/pgsql/93/data/postgresqlconf
找到下面的行:
[]
#listen_addresses = 'localhost’
[]
#port = 5432
[]
把两行都取消并设置为你的postgresql服务器IP地址或设置为“”监听所有客户端。如下所示:
listen_addresses = ''
port = 5432
重启以应用更改
在CentOS6x系统中:
/etc/initd/postgresql-93 restart
在CentOS7系统中:
systemctl restart postgresql-93
9使用phpPgAdmin管理PostgreSQL
phpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQL RPM库。
如果你没有添加PostgreSQL库,你可以添加EPEL库。
可根据下面的链接在CentOS 6x中建立EPEL库
http://wwwunixmencom/install-epel-repository-rhel-centos-scientific-linux-6/
CentOS 7的话参考下面的链接
http://wwwunixmencom/install-epel-repository-centos-rhel-7/
使用命令更新库
yum update
现在输入命令安装phpPgAdmin:
yum install phpPgAdmin httpd
注意phpPgAdmin区分大小写,要准确使用上面所示的大小写!
默认你可以使用http://localhost/phpPgAdmin访问phpPgAdmin。若要远程访问需要继续:
编辑文件/etc/httpd/confd/phpPgAdminconf
vi /etc/httpd/confd/phpPgAdminconf
修改如下加粗的部分:
[]
Alias /phpPgAdmin /usr/share/phpPgAdmin
<Location /phpPgAdmin>
<IfModule mod_authz_corec>
# Apache 24
Require all granted
#Require host examplecom
</IfModule>
<IfModule !mod_authz_corec>
# Apache 22
Order deny,allow
Allow from all
# Allow from examplecom
</IfModule>
</Location>
启动或重启Apache服务
在CentOS 6x系统中
service httpd start
chkconfig httpd on
在CentOS 7系统中
systemctl enable httpd
systemctl start httpd
现在打开浏览器并转到http://ip-address/phpPgAdmin。终于看到下面的界面了!
使用你之前创建的用户登录,我的是用户senthil密码CentOS。
你可能会遇到:Login failed。
这是因为SELLinux可能限制用户连接到PostgreSQL,只需输入以下命令更改即可:
setsebool -P httpd_can_network_connect_db 1
现在你应该能正常登录了。
0条评论