OSX(El Capitan) - 自制语言Apache 2.4 + PHP-FPM + mongoDB - 服务不可用

时间:2017-04-23 18:16:54

标签: php mongodb macos apache

更新

我尝试过使用相同配置的PhpMyAdmin,我得到了同样的错误503服务不可用。 所以似乎它与mongodb 模块无关,但它是Apache或PHP-FPM配置错误。在我看来,它最有可能是fcgi代理,它不会以正确的方式调用php-fpm,但我不知道出了什么问题。

原始问题

我一直在试着找几个解决方案。

配置:

  • OSX(El Capitan)
  • homebrew Apache 2.4
  • php-fpm(5.5或7.0,我试过两个,同样的错误!)

这适用于index.php

<?php
echo phpinfo();

Php信息

  

PHP Version 7.0.18
  MongoDB扩展版本1.2.8

我已经尝试在子目录中调用php(我怀疑代理参数存在问题),但它正在运行。

到目前为止的结论:

  • apache正在运作
  • 文档根目录确定
  • 默认索引OK(我已经尝试过显式的index.php)
  • php-fpm正在运行
  • apache代理到php-fpm工作(参见上面的更新!)

现在奇怪的部分

我将index.php的内容更改为:

<?php
require 'vendor/autoload.php';
$client = new MongoDB\Client("mongodb://localhost:3001");

安装的唯一作曲家模块是mongodb / mongodb composer require mongodb/mongodb

结果很简单503 Service Unavailable

无关的参数(mongodb://localhost:3001)我有相同的错误,没有任何参数或故意错误的参数。 (但是如果你想知道我正在尝试连接到Meter应用程序的本地开发实例的mongodb,那就是端口3001的原因。并且连接正在使用外部程序/ Robomongo /)

目前我正在使用Apache ProxyPassMatch,但我也尝试了SetHandler方法(见下文)。我尝试过使用php-fpm 5.5php-fpm 7.0(都安装了自制软件)

Apache配置:

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9007/Users/myuser/Projects/test/$1

或者

<FilesMatch \.php$>
  SetHandler "proxy:fcgi://127.0.0.1:9007"
</FilesMatch>

Apache或php-fpm日志中没有错误消息(即使使用loglevel调试),尽管错误日志记录正在运行(我已经尝试过有意识的PHP语法错误,并在php-fpm错误日志文件中生成了正确的错误消息) e.g。

<?php
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB;

显示错误消息,因此错误记录正常

  

致命错误:未捕获错误:找不到类'MongoDB'   /Users/myuser/Projects/test/index.php:17堆栈跟踪:#0 {main}抛出   第17行/Users/myuser/Projects/test/index.php

我尝试使用以下代码连接到MySQL数据库:

$mysqli = new mysqli("localhost", "user", "password", "dbname");
$res = $mysqli->query("SELECT * FROM table");
print_r($res);

它就像一个魅力。

任何帮助都将不胜感激。

编辑: 作为评论请求的composer.json内容

{
    "require": {
        "mongodb/mongodb": "^1.1"
    }
}

0 个答案:

没有答案