当我通过从配置中取消注释来启用 mod_session_crypto 时,apache 服务器无法启动。我从 journalctl 中发现以下错误:
Jan 09 12:27:39 dbserver1 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jan 09 12:27:39 dbserver1 kill[18321]: kill: cannot find process ""
Jan 09 12:27:39 dbserver1 systemd[1]: httpd.service: control process exited, code=exited status=1
Jan 09 12:27:39 dbserver1 systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has failed.
--
-- The result is failed.
Jan 09 12:27:39 dbserver1 systemd[1]: Unit httpd.service entered failed state.
Jan 09 12:27:39 dbserver1 systemd[1]: httpd.service failed.
Jan 09 12:27:39 dbserver1 polkitd[1053]: Unregistered Authentication Agent for unix-process:18219:214619083 (system bus name :1
我不知道这到底是哪里出了问题。
当我禁用 时mod_session_crypto
,mod_auth_form
它不会创建 cookie - 似乎当我使用 时它拒绝使用未加密的用户名和密码创建 cookie AuthProvider ldap
。 使用 时效果很好AuthProvider basic
。
此设置在我用于开发的另一台计算机上运行良好。
开发电脑(可用):
CentOS 7.4.1708
Apache 2.4.6-67.el7
mod_session 2.4.6-67.el7
生产电脑(无法启动):
CentOS 7.5.1808
Apache 2.4.6-80.el7
mod_session 2.4.6-80.el7
如您所见,操作系统版本略有不同。除此之外,我找不到任何不同。
答案1
感谢symcbean的提示,我发现apache错误日志中记录了以下错误消息:
[Wed Jan 09 12:49:53.410386 2019] [session_crypto:error] [pid 30523] (20019)DSO load failed: AH01845: The crypto library 'openssl' could not be loaded: /usr/lib64/apr-util-1/apr_crypto_openssl-1.so: cannot open shared object file: No such file or directory (apr_crypto_openssl-1.so: 0)
根据错误报告这里,所需要做的就是安装apr-util-openssl
包,例如使用yum install apr-util-openssl
。