我刚刚从Windows转换到Ubuntu,我已经安装了一个新的nginx,mysql,php7.0-fpm(包括Opcache / ApcCache),并从git(Yii2项目)中克隆了一个项目。
这个仓库在Windows上工作,但现在看来一些内置的function不再工作。 我已经检查了文档,而且似乎没有任何function被弃用。
这是我迄今发现的错误,代码片段和相应的错误消息:
curl_init()
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->getSlackPayloadUrl()); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch);
调用未定义的函数后端\ components \ curl_init()
函数utf8_encode()
$data = 'payload=' . json_encode(array_map("utf8_encode", [ 'channel' => $channel, 'text' => $message, ]));
array_map()期望参数1是一个有效的callback函数'utf8_encode'未find或无效的函数名称
为了彻底,nginxconfiguration:
nginxconfiguration
server { charset utf-8; client_max_body_size 128M; listen 80; ## listen for ipv4 #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 server_name project.dev; root /var/www/project/backend/web; index index.php; access_log /var/www/project/log/access.log; error_log /var/www/project/log/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ ^/assets/.*\.php$ { deny all; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.0-fpm.sock; try_files $uri =404; } location ~* /\. { deny all; } }
如果有任何其他相关的信息,请添加评论,我会更新。
根据我们的讨论讨论,下面的解决方案来: –
1.需要通过命令在你的系统上安装CURL
: –
sudo apt-get install php7.0-curl
2.关于第二个错误,我得到这个链接: – 从php7中删除的utf8_(en | de)代码?
它声明utf8_encode/decode
是与php xml extension
相关的函数,您必须通过以下命令安装您的系统: –
sudo apt-get install php7.0-xml
重要注意事项: –安装这些库软件包后,请重新启动 服务器,以便进行更改 。 谢谢。
utf8_encode()
是php xml extension
下的一个函数,在curl extension
下是curl extension
的当然。
解决
sudo apt-get install php7.0-curl
和
sudo apt-get install php7.0-xml