我需要使用IIS在Windows Server上部署基于Symfony的API应用程序。我通常使用Nginx服务器,但需要在具有ASP.NET应用程序的计算机上使用netFramework dll。
我已经在Windows服务器上成功安装了PHP,并且phpinfo()可以正常工作。另外,我已经从Symfony上传了所有代码(已经使用Symfony Local Web Server进行了测试)。但是,当我尝试访问项目的主页(默认的Symfony页面)时,出现此错误:
Notice: fwrite(): write of 163 bytes failed with errno=9 Bad file descriptor
我发现例外来自vendor\symfony\http-kernel\Log\Logger.php
在第82行:
fwrite($this->handle, $formatter($level, $message, $context));
[调试后,我发现Symfony正在尝试写入php://stderr
数据流,因此我想我有一个权限问题。我试图写出不同的文件夹,以授予IIS用户对这些文件夹的写权限,并将PHP和IIS服务器的错误日志配置移到它们。
此外,我只能访问主页(获得500错误的页面,在任何其他途径中,我都获得404错误。
最后一条注释,当使用Postman向Symfony应用程序发出GET请求时,我获得了Symfony响应(仅在主页上,在其他页面中我获得了IIS服务器页面错误)
最后成功了!
如果有人遇到同样的问题,我会回答自己。
似乎是PHP 7.4的一个错误,我尝试使用PHP 7.3并像一个魅力一样工作