我正在尝试让Solarium在Centos 6.5上运行,并安装了PHP(5.3.3)和Apache HTTPD的rpm。
我已经按照网站上的说明,创建了一个文件夹 /var/www/php(在php.ini中的包含路径中)并下载了作曲家。然后我将以下内容输入composer.json:
{
"require": {
"solarium/solarium": "3.*"
}
}
并运行“php composer.phar安装”。
我现在尝试运行Solarium示例文件夹中的示例(特别是1.1 Solr Ping示例)。为此,我修改了init。php包含以下行:
要求('vendor/autoload.php');
我已确认供应商/自动加载。php是通过向其中添加一个print语句来运行的。
但是,当我运行该示例时,我得到:
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
因此,Solarium文件似乎没有按预期加载。
不确定这是日光浴室还是作曲家的问题(我怀疑是后者)。有人能提出一种调试方法吗?
发出命令“php composer.phar dump autoload”只会生成以下消息:
Generating autoload files
这是否正确(我假设不是基于命令的描述)?
跑步:
php composer.phar diagnose
给出:检查编写器。json:FAIL name:缺失,需要说明:缺失,需要说明:未指定许可证,建议这样做。对于封闭源代码软件,您可以使用“专有”作为许可证。检查平台设置:失败
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\u real。php提供:
($map由autoload_namespace.php创建)
Symfony\Component\EventDispatcher\ -
Array ( [0] => /var/www/php/vendor/symfony/event-dispatcher )
Solarium\ -
Array ( [0] => /var/www/php/vendor/solarium/solarium/library )
($classMap由autoload_classMap.php创建)
classMap -
Array ( )
类映射的空数组似乎很奇怪。对吗?
谢谢
P
问题是,我使用的示例文件夹从版本2.4.0(日光浴室),但类是从版本3。
两个版本之间的类名已更改
我最初是为作曲家复制日光浴室的条目。json来自安装说明,版本为2.4。0.然后我运行composer安装并将示例复制到网站中,然后决定更新到solarium版本3。但是,我没有更新网站上的示例文件夹。
将“示例”文件夹更新为版本3修复了该问题。
P