我正在尝试使用rpm安装的PHP(5.3.3)和Apache HTTPD在Centos 6.5上运行Solarium。
我已按照网站上的说明创建了一个文件夹/ var / www / php(位于php.ini中的include路径中)并下载了composer。然后我在composer.json中输入以下内容:
{
"require": {
"solarium/solarium": "3.*"
}
}
并运行“php composer.phar install”。
我现在正在尝试运行Solarium示例文件夹中的示例(特别是1.1 Solr Ping示例)。为此,我修改了init.php以包含以下行:
要求( '销售商/ autoload.php');
我已经确认通过向其添加print语句来运行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
所以似乎Solarium文件没有按预期加载。
不确定这是日光浴还是作曲家问题(我怀疑是后者)。任何人都可以建议一种调试方法吗?
发出命令“php composer.phar dump-autoload”只生成消息:
Generating autoload files
这是否正确(我假设不是基于命令的描述)?
运行:
php composer.phar diagnose
给出: 检查composer.json:失败 name:缺失,是必需的 描述:缺失并且是必需的 未指定许可证,建议这样做。对于闭源软件,您可以使用“专有”作为许可。 检查平台设置: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的空数组似乎很奇怪。这是对的吗?
由于
P
答案 0 :(得分:1)
问题是我使用了版本2.4.0(日光浴)的Examples文件夹,但是这些类来自版本3.
两个版本之间的类名已经改变
我最初从安装说明中复制了composer.json的日光浴条目,版本是2.4.0。然后我运行了作曲家安装并将示例复制到网站中,然后决定更新到日光浴室版本3。但是,我没有更新网站上的示例文件夹。
将示例文件夹更新到版本3修复了问题。
P