我最近将系统更新到 18.04,它已禁用 cURL。18.04 安装了 PHP 7.2,但我的 nginx 安装使用的是 7.1 FPM。当我从 Web 服务器运行 phpinfo() 时,它显示系统正在读取 curl.ini,但下面未显示 cURL 模块,并且需要 cURL 的代码不起作用。
我读过这个**curl** 在 Ubuntu 18.04 LTS 上无法运行并且答案(卸载/重新安装 libcurl4)没有帮助。
我执行了“phpenmod -v 7.1 curl”,模块显示在“enabled_by_admin”目录中。没有 curl.so,但我将其从 7.2 目录中复制出来。重新启动,重启,一切正常。仍然没有 cURL。
当我执行“php -m”时,它显示 curl,但这当然适用于 v7.2,而不是我的 Web 服务器正在运行的 7.1 FPM。我一直在努力让它再次运行,任何帮助都将不胜感激。
答案1
好吧,我放弃了,只是将我运行的所有 12 个网站都转换为使用 7.2。事实证明,这比尝试使用 7.1 更容易。
我更新了默认的 7.2 安装以包含我需要的所有组件(包括 FPM 和许多其他组件),然后编辑每个站点的 nginx.conf 以引用 7.2,一切正常。
谢谢!
答案2
- 搜索 NGINX 配置。说明:https://devanswers.co/nginx-config-file-location/
- 在conf文件中找到“fastcgi_pass“哪个 php 版本用作 fpm。unix 套接字连接的示例
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
在这种情况下,您可以理解我们处理 php 7.2,当然还有安装在 php 7.2 中的模块。 - 看起来您的系统上安装了不同版本的 php。不同版本的 php 意味着不同的配置(php.ini)和不同的模块(包括卷曲)。选择要使用的 php。如果您继续使用 7.2,则需要为其安装 znd 配置 curl 模块。如果 php 7.1 已经具有并与 curl 配合使用,并且您不需要 7.2,则需要在 NGINX conf 中切换到 7.1。http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass
- 在 php conf(php.ini)中查找 php 7.1 的套接字路径。示例:
isten = /run/php/php7.1-fpm.sock
检查它是否存在:ls -lah /run/php/php7.1-fpm.sock
- 替换套接字路径fastcgi_pass在 NGINX conf 中。例如
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
(在某些情况下,可以使用 host:IP 进行设置。需要您选择,哪个更适合您:unix 套接字或主机。在本教程中,我讨论套接字) - 重新启动NGINX:
sudo service nginx restart