- Debian 9.5
- Apache HTTP 服务器 2.4.34 (httpd)
从以下位置安装 Apache 后官方网站使用sudo make install
,我想检查安装是否可以启动服务器:
$ sudo /usr/local/apache2/bin/apachectl -k start
但我收到一个错误
/usr/local/apache2/bin/httpd:符号查找错误:/usr/local/apache2/bin/httpd:未定义符号:apr_crypto_init
该错误与库的主题有关吗?会是什么呢?
我在安装过程中所做的配置是:
$ sh configure --prefix /usr/local/apache2
如果您需要附加屏幕、日志或已安装的库,请更新帖子以获取更多详细信息。
解决方案
我用 /usr/local 前缀重建了 httpd
$ sh configure --prefix /usr/local
$ sudo make install
$ sudo /usr/local/bin/apachectl -k start
我建议返回到虚拟机的初始状态,这样就不会有残留的库和文件。
答案1
是的,该错误(可能)与库有关。我怀疑,由于您给出了configure
前缀/usr/local/apache2
,因此构建的库最终以httpd
结尾/usr/local/apache2/lib
,而动态链接器不知道这一点。
有多种方法可以解决此问题:
使用包裹相反,从长远来看,它会让你的生活更轻松:
sudo apt install apache2
或者
添加
/usr/local/apache2/lib
到动态链接器的配置;创建一个文件,/etc/ld.so.conf.d/apache2-local.conf
包含单行/usr/local/apache2/lib
并运行
sudo ldconfig
。
或者
httpd
使用前缀 进行重建/usr/local
,以便其二进制文件最终位于 中/usr/local/bin
,其库位于 中/usr/local/lib
。
(顺便说一句,您不需要configure
以 root 身份运行,也不应该以普通用户身份配置和构建,并且只能以 root 身份安装。)