我应该去哪里研究这个错误信息?

我应该去哪里研究这个错误信息?

努力让 CentOS / Apache / PHP 堆栈运行起来...此时,我拥有 SSH 访问权限,并且在 Bash 中可以使用 php 进行简单的数学运算;所以我知道 php 在机器上并且正在工作(有点)。此外,Apache 一定没问题;我可以停止并启动它,而且我推断,我可以访问我的 ip 并使用 bash 就说明它已打开。终于到了这一刻。

当我通过互联网导航到服务器时,没有网站!但是在 php 错误日志中,我收到一条与此非常相似的错误消息,php 包中的每个模块都有一条错误消息:

[12-Aug-2012 18:34:53] PHP Warning: PHP Startup: Unable to load dynamic library '/etc/php.d/curl.so' - /etc/php.d/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0

当然,如果能得到下一步该看哪里的提示就好了。

答案1

在 CentOS 上,默认情况下,PHP 扩展目录设置为/usr/lib(64)/php/modules

# php -i | grep extension
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

并且 curl 扩展配置如下:

# cat /etc/php.d/curl.ini 
; Enable curl extension module
extension=curl.so

如果你的 PHP 是从源代码编译的,请确保已使用 启用了 cURL --with-curl[=DIR]。如果 PHP 是通过 安装的yum,我怀疑有人使用错误的绝对路径加载了 cURL /etc/php.d/curl.so。你可以使用以下命令查找:

# grep -lr curl /etc/php.ini /etc/php.d/

更改为相对路径并重新启动Apache,看看是否有效。

答案2

您应该确认文件 (/etc/php.d/curl.so) 不存在。然后,考虑重建提供该文件的包或需要该文件的包。或者,只需使用locate在机器上找到它,然后从错误中提到的路径创建到实际库的符号链接。

该消息本身相当不言自明 - PHP 需要 CURL 库,但在预期的位置没有找到它。

答案3

PHP curl 库是 php-common 通用包的一部分。正如 quanta 上面回复的那样,请按照以下步骤解决您的错误。

如果您从源代码进行编译,请确保已安装 curl-devel。

相关内容