努力让 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。