Command line 在共享主机上通过命令行SSH运行Symfony插件任务

Command line 在共享主机上通过命令行SSH运行Symfony插件任务,command-line,symfony1,ssh,Command Line,Symfony1,Ssh,我通常的托管环境是一个专用服务器,但是对于一个项目,我需要将Symfony部署到Linux共享托管帐户上 项目本身工作正常,但是,当我使用SSH连接到服务器时,命令行并没有按预期工作 例如,如果导航到data/symfony/bin,则键入: php symfony 这将返回symfony函数的列表,但不会返回与我的插件(如sfLucene)关联的任务 如何使CLI了解插件,以便运行重建sfLucene索引等任务?在要运行的脚本顶部初始化Symfony应用程序实例,并将要执行的操作粘贴到脚本

我通常的托管环境是一个专用服务器,但是对于一个项目,我需要将Symfony部署到Linux共享托管帐户上

项目本身工作正常,但是,当我使用SSH连接到服务器时,命令行并没有按预期工作

例如,如果导航到data/symfony/bin,则键入:

php symfony 
这将返回symfony函数的列表,但不会返回与我的插件(如sfLucene)关联的任务


如何使CLI了解插件,以便运行重建sfLucene索引等任务?在要运行的脚本顶部初始化Symfony应用程序实例,并将要执行的操作粘贴到脚本中:

require_once('/var/www/domains/yourdomain.com/www/htdocs/config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration);
(更改为您自己的项目路径)

这就是我用来运行Cron作业或通过CLI执行Symfony东西的方法


这有帮助吗?

最后,我要求我的主机改进我的访问权限,以便我的脚本能够运行

然后,我可以在项目目录的根目录中运行默认的symfony文件:

php symfony lucene-rebuild

共享主机是否在php include_路径上全局安装了symfony?如果是这样,它可能会妨碍您的项目。将数据/symfony/bin/symfony复制到项目的根目录如何?我不确定我是否喜欢使用的路径-检查使用了哪些symfony和哪些php命令,或者是显式的。还请记住,PHP的CLI版本可能与Apache的SO版本大不相同,并且可能使用不同的PHP.ini文件。这将解决从cronjob或CLI执行symfony的根本问题,但范围更广(也更优雅)将用户定义的任务提供给CLI的解决方案仍然存在。@Rise:我的想法是从该脚本中运行任务,使其能够访问所需的所有内容。我理解并同意,因为这将模仿symfony 1.0+中的旧批处理/脚本方法,但是,如果没有您的解决方法,CLI应该可以真正使用该任务。@Raise。。。公平地说,我想创建脚本只是为了执行其他脚本有点麻烦。