关于自我

时间:2017-08-29 14:14:46

标签: php apache file-get-contents wkhtmltopdf mod-fastcgi

我在自己的PHP请求中遇到问题。在示例中,我将使用file_get_contents(),但同样适用于exec('wkhtmltopdf [*SELF*]')curl()

  • 让我的服务器命名为example.com
  • 已安装apache2
  • FastCGI(多个PHP版本5.3,5.4,5.5,5.6,7.0)
  • 现在我有2个虚拟脚本


第一个脚本

//get-html.php  
file_get_contents('http://example.org/index.html')

第二个脚本

//get-php.php
file_get_contents('http://example.org/index.php')


测试
1)命令行:php get-html.php //成功
2)浏览器:example.org/get-html.php //成功

1)命令行:php get-php.php //成功
2)浏览器:example.org/get-php.php // 超时


我接下来尝试了什么

  • 创建类似subdomain.example.org/index.php的子域,以便为get-php.phpindex.php
  • 创建不同的PHP版本
  • 修改/ etc / hosts
  • 其他网站上的请求(例如google.com)//成功
  • session_write_close()之前的file_get_contents()和session_start()之后也不起作用

所以我的嫌疑人是mod_fastcgi。似乎apache无法运行2个实例来处理来自自身的PHP请求。从命令行运行脚本按预期工作。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

I did not set PHP_FCGI_CHILDREN what is in default 1.
When I called in PHP script another PHP script from my server over apache it failed as it was not able to create another PHP FCGI instance.

Proper settings of PHP_FCGI_CHILDREN