首页 > 代码库 > 部署phpmyadmin并配置apache通过ldap验证

部署phpmyadmin并配置apache通过ldap验证

其实,配置apache使用ldap验证的例子,之前的PLA和LAM就是典型案例了,只不过这次想单独的配置apache和ldap的整合,另外一点就是windows上搭建LAMP的话,一般都会使用比如xampp之类的集成软件,一键安装统一管理Apache/MySQL/PHP,虽然Linux上我们一般不会采用类似的方法(构建LAMP也有各种各样的方法),但是phpmyadmin也是一个管理MySQL简单快捷的选择,所以就在此配置一下。

1、准备工作

/etc/init.d/iptables stop
iptables -L -n
setenforce 0
getenforce
echo "192.168.49.134   phpmyadmin" >>/etc/hosts

2、安装并配置Apache

yum -y install httpd
/etc/init.d/httpd start

这时,一般apache启动会有如下提示:

Starting httpd: httpd: Could not reliably determine the server‘s fully qualified domain name, using 192.168.49.134 for ServerName

可以通过sed添加ServerName,然后重启httpd服务来解决。

sed -i ‘/#ServerName/aServerName 192.168.49.134:80‘ /etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
chkconfig httpd on

3、安装并配置MySQL

yum -y install mysql mysql-server
mv /etc/my.cnf /etc/my.cnf.bak$(date +%F)
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
/etc/init.d/mysqld start
chkconfig mysqld on
mysql_secure_installation
#使用mysql_secure_installation脚本来给MySQL的root用户设置密码,也可以进行其他设置
/etc/init.d/mysqld restart
mysql -uroot -p123456
#测试MySQL root账户登录

4、安装并配置PHP

yum -y install php php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
#这里把php以及其他和MySQL相关的模块一并安装了
[root@phpmyadmin ~]# php --version
PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
#查看PHP版本
[root@phpmyadmin ~]# mysql -V
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
#查看MySQL版本

5、下载phpmyadmin并配置目录权限

wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.17/phpMyAdmin-4.0.10.17-all-languages.zip --no-check-certificate
cp phpMyAdmin-4.0.10.17-all-languages.zip /var/www/html/
cd /var/www/html/
unzip phpMyAdmin-4.0.10.17-all-languages.zip 
mv phpMyAdmin-4.0.10.17-all-languages phpmyadmin
chown -R apache:apache phpmyadmin

6、浏览器测试phpmyadmin

浏览器中输入http://192.168.49.134/phpmyadmin/,出现phpmyadmin的登录界面,如下所示:

技术分享

输入MySQL的root账号密码,执行。

技术分享

登录成功,可以看到MySQL中的数据库、表、用户等信息,同时这里也显示出了服务器的相关信息。由于只是测试phpmyadmin的安装配置,并未对这些信息进行隐藏或者修改等配置,当然如果是生产环境,apache和MySQL都需要进行更详细的配置,这里就不多做说明了。

7、安装apahce的ldap模块mod_authz_ldap

yum -y install mod_authz_ldap

8、配置apache通过ldap进行认证

cp /etc/httpd/conf.d/authz_ldap.conf /etc/httpd/conf.d/authz_ldap.conf.bak$(date +%F)

先检查一下/etc/httpd/conf.d/authz_ldap.conf文件的内容

[root@phpmyadmin ~]# egrep -v "#|^$" /etc/httpd/conf.d/authz_ldap.conf

LoadModule authz_ldap_module modules/mod_authz_ldap.so

<IfModule mod_authz_ldap.c>

</IfModule>

然后编辑该文件,在<IfModule mod_authz_ldap.c>语句下面添加如下内容:

<Directory /var/www/html/phpmyadmin>  #这里定义那个目录需要使用ldap模块认证

      AuthzLDAPMethod ldap

    

      AuthzLDAPServer 192.168.49.138

      AuthzLDAPUserBase ou=People,dc=contoso,dc=com

      AuthzLDAPUserKey uid

      AuthzLDAPUserScope base


      AuthType Basic 

      AuthName "Test ldap auth"

      require valid-user


</Directory>

[root@phpmyadmin ~]# diff /etc/httpd/conf.d/authz_ldap.conf.bak2016-09-13 /etc/httpd/conf.d/authz_ldap.conf

9a10,23

>    <Directory /var/www/html/phpmyadmin>

>       AuthzLDAPMethod ldap

>     

>       AuthzLDAPServer 192.168.49.138

>       AuthzLDAPUserBase ou=People,dc=contoso,dc=com

>       AuthzLDAPUserKey uid

>       AuthzLDAPUserScope base

>       AuthType Basic 

>       AuthName "Test ldap auth"

>       require valid-user

>    </Directory>

/etc/init.d/httpd restart

#最后重启httpd服务

9、测试apache使用ldap认证

技术分享

打开浏览器,输入phpmyadmin的地址,发现这次并没有显示登陆界面,而是要求进行身份验证,输入ldap中的用户名和密码,登录。

技术分享

成功登录之后,才显示phpmyadmin的登录界面,这里就可以使用MySQL的root用户登录了。注意,本文是配置apache使用ldap进行登录,并不是MySQL使用ldap登录,所以这里还是要输入MySQL的用户名密码登录,而使用ldap用户名密码验证的只是浏览器打开连接时的身份认证,如果无法通过身份验证就无法登录MySQL,即使知道root密码也没有办法,这也算是一种phpmyadmin管理MySQL加固的方案吧。


本文出自 “IT小二郎” 博客,请务必保留此出处http://jerry12356.blog.51cto.com/4308715/1852711

部署phpmyadmin并配置apache通过ldap验证