Mat*_*ewH 5 php apache2 curl 18.04
所以现在,我正在尝试在 Ubuntu 18.04 上的 apache2 服务器中启用 php-curl,以允许 iframe 显示外部站点页面。我一直在使用方法来尝试这个,我发现在几个地方都有记录:
StackOverflow:如何使用 PHP 7 安装 ext-curl 扩展?
StackOverflow:在 php 7 (ubuntu14.04) 中安装 cURL
LinuxConfig.org:如何在 Ubuntu Linux 上使用 Apache 启用和禁用 PHP curl 模块
无论我似乎做什么,我都无法在 php 中使用任何与 curl 相关的命令,这非常令人沮丧。我确保我已经使用sudo apt-get install curl php7.2-curl了没有问题的安装,然后使用sudo service apache2 restart. 我尝试在 php.ini 中使用extension=php_curl.dll, 和启用扩展,但extension=curl没有成功。如果我尝试使用 linuxconfig.org 上给出的代码来检查 curl 模块状态,它会说它已禁用。
如果我尝试运行我的 php 代码,我会在我的日志中找到:
PHP 致命错误:未捕获的错误:调用 /var/www/html/inc.redirect.php:4 中未定义的函数 curl_init()\n堆栈跟踪:\n#0 {main}\n 抛出在 /var/www/html /inc.redirect.php 第 4 行
我的“inc.redirect.php”文件中的代码如下:
<?php
if (isset($_GET['url'])) {
$url = $_GET['url'];
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
}
?>
Run Code Online (Sandbox Code Playgroud)
我做错了什么/错过了什么?
更新:当我重新启动服务时查看 apache2 error.log,我看到以下内容:
PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20160303/curl.so' - /usr/lib/php/20160303/curl.so:无法打开共享对象文件:没有这样的文件或目录在未知的第 0 行
仍在尝试对此进行更多研究,它所寻找的 curl.so 文件似乎位于“/usr/lib/php/20170718”中。我该怎么做才能更改 php 配置以查看正确的目录?
发现问题。
发生的事情是我在 apache2 中同时启用了 php7.1 和 php7.2。必须运行sudo a2dismod php7.1,重新启动 apache,然后我才能加载我的 inc.redirect.php 页面而没有错误。
| 归档时间: |
|
| 查看次数: |
13435 次 |
| 最近记录: |