【发布时间】:2016-11-02 03:17:41
【问题描述】:
我刚刚从 Windows 过渡到 Ubuntu,我已经安装了 nginx、mysql、php7.0-fpm(包括 Opcache/ApcCache)的全新安装并从 git 克隆了一个项目(Yii2 项目)。
此存储库在 Windows 上工作,但现在似乎某些内置功能不再工作。我检查了文档,似乎没有任何功能被弃用。
这是我目前发现的错误,code-sn-ps 及其对应的错误信息:
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);
调用未定义的函数 backend\components\curl_init()
utf8_encode()
$data = 'payload=' . json_encode(array_map("utf8_encode", [
'channel' => $channel,
'text' => $message,
]));
array_map() 期望参数 1 为有效回调,未找到函数 'utf8_encode' 或无效函数名
为了彻底,nginx 配置:
nginx 配置
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;
}
}
如果有任何其他相关信息,请添加评论,我会更新。
【问题讨论】:
-
我会检查一下,但是 utf8_encode() 函数是 php 标准,对吧?
-
嗯,php.net/manual/en/function.utf8-encode.php,是的。它确实适用于 Windows。
-
是的,我们解决了 curl 位 - 刚刚安装了包。但它确实是我坚持的内置功能。
-
已解决,感谢您的帮助
-
其实你的解决方案就在这里:-stackoverflow.com/questions/35701730/…