其实,配置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加固的方案吧。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。