1

我试图让 Solarium 在 Centos 6.5 上运行,并安装 PHP (5.3.3) 和 Apache HTTPD 的 rpm 安装。

我按照网站上的说明创建了一个文件夹 /var/www/php(位于 php.ini 的包含路径中)并下载了 composer。然后我在composer.json中输入了以下内容:

{
      "require": {
          "solarium/solarium": "3.*"
      }
}

并运行“php composer.phar install”。

我现在正在尝试运行 Solarium 示例文件夹中的示例(特别是 1.1 Solr Ping 示例)。为此,我修改了 init.php 以包含以下行:

要求('供应商/autoload.php');

我已经确认 vendor/autoload.php 正在通过向其添加打印语句来运行。

但是,当我运行示例时,我得到:

Fatal error: Class 'Solarium_Version' not found in /var/www/html/test/1.1-check-solarium-and-ping.php on line 7

或者如果我注释掉第 7 行:

Fatal error: Class 'Solarium_Client' not found in /var/www/html/test/1.1-check-solarium-and-ping.php on line 10

因此,日光浴室文件似乎没有按预期加载。

不确定这是日光浴室还是作曲家的问题(我怀疑是后者)。任何人都可以提出一种调试方法吗?

发出命令“php composer.phar dump-autoload”只会生成消息:

Generating autoload files

这是正确的(我假设不是基于命令的描述)?

跑步:

php composer.phar diagnose

给出:检查 composer.json: FAIL 名称:缺失且需要 描述:缺失且需要 未指定许可证,建议这样做。对于闭源软件,您可以使用“专有”作为许可。检查平台设置:失败

Your PHP (5.3.3) is quite old, upgrading to PHP 5.3.4 or higher is recommended.
Composer works with 5.3.2+ for most people, but there might be edge case issues.
Checking git settings: OK
Checking http connectivity: OK
Checking disk free space: OK
Checking composer version: FAIL
Your are not running the latest version

没有一个看起来是致命的。那是对的吗?

非常感谢

保罗

更新:

更多信息。向 vendor/composer/autoload_real.php 添加一些打印语句给出:

(由 autoload_namespaces.php 创建的 $map)

Symfony\Component\EventDispatcher\ - 
Array ( [0] => /var/www/php/vendor/symfony/event-dispatcher ) 
Solarium\ - 
Array ( [0] => /var/www/php/vendor/solarium/solarium/library ) 

(由 autoload_classmap.php 创建的 $classMap)

classMap - 
Array ( )

classmap 的空数组似乎很奇怪。那是对的吗?

谢谢

4

1 回答 1

1

问题是我使用了 2.4.0 版(日光浴室)的示例文件夹,但这些类来自 3 版。

两个版本之间的类名已更改

我最初从安装说明中复制了 composer.json 的日光浴室条目,版本是 2.4.0。然后我运行 composer install 并将示例复制到网站中,然后决定更新到日光浴室的第 3 版。但是我没有更新网站上的示例文件夹。

将示例文件夹更新到版本 3 解决了该问题。

于 2014-06-10T20:45:53.347 回答