Ubuntu搭建LDAP服务器
一、如何搭建服务器?
请参考这里搭建。
https://my.oschina.net/u/2496664/blog/801996
二、过程中有什么问题?
直接按照上面的教程搭建,并没有成功。
1、安装LDAP没有遇到问题。
2、安装phpldapadmin遇到了问题。
问题一、按照上面的博主说的安装了phpldapadmin之后,访问对应主机的页面返回404。
这是为什么呢?
原来安装phpldapadmin的时候,其实是失败了。错误信息是这个:
apache2_reload: [Thu Dec 26 17:56:58.872873 2019] [:crit] [pid 14863:tid 139918847014784] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.。
根据提示得知是因为PHP不是线程安全的,无法和正在运行的apache2配合。
随后了解了apache2 的工作模式。分为 worker,prefork,event模式三种。
简单理解三种模式:
prefork 模式,古老稳定兼容。多进程工作,效率低。因为是多进程,不需要考虑线程安全。
worker 模式,多线程 + 多进程混合工作,效率稍微高点,但是keep alive 的时候会一直占用资源,阻塞。
event 模式,多线程 + 多进程,非阻塞。
我们这里打印说PHP不是线程安全的,不能喝apache2 这个多线程的模式兼容,难道是因为工作模式的原因?
发现是使用的event模式,所以当前apache 是多线程工作模式。
问题二、如何启动apache2的prefork模式?
网上很多人说的都不好用。最后我自己发现一个方法。我使用的是linux mint 18.1,apache2.4,php 7.0.
方法:
1、cd /etc/apache2/mods-enabled
2、sudo rm mpm_event.conf
3、sudo rm mpm_event.load
4、ln -s ../mods-available/mpm_prefork.load mpm_prefork.load
5、ln -s ../mods-available/mpm_prefork.conf mpm_prefork.conf
6、sudo /etc/init.d/apache2 restart
这样就换成apache2 prefork工作方法了。
然后重新安装phpldapadmin.
sudo apt-get purge phpldapadmin
sudo apt-get install phpldapadmin
问题解决。
问题3:解决了前两个问题,访问web还是不正常,如图
If you are seeing this in your browser,
PHP is not installed on your web server!!!
根据提示得知php没有正常工作。
解决方法:
ln -s ../mods-available/php7.0.conf php7.0.conf
重启apach2:
sudo /etc/init.d/apache2 restart
问题解决,可以登录。
上一篇: HttpClient抓取图片
下一篇: JVM Benchmark - 严肃向