【问题标题】:Run Symfony command on server在服务器上运行 Symfony 命令
【发布时间】:2012-08-03 19:21:17
【问题描述】:

我现在在服务器上的 Symfony 1.4 上有我的应用程序。我使用 FileZilla 上传文件,但我现在如何使用命令行,例如plugin:publish-assets

FileZilla 可以做到这一点吗?

【问题讨论】:

  • 你想在这里完成什么?您想将代码上传到生产服务器吗?如果是这种情况,您可能需要考虑某种类型的revision control/versioning 系统。
  • 我上传了我的代码,但我必须使用 Symfony 命令,例如 plugin:publish-assets 或 symfony clear:cache
  • 您将不得不通过 SSH 或其他方式访问生产服务器的 CLI。有关如何执行此操作的更多信息,请联系您的房东。
  • 解决方法:cc 只是删除缓存文件夹的内容,publish-assets 只是复制(或符号链接)web 目录下插件的 web 目录的内容(您可以将本地 web 复制到服务器的web来达到同样的效果)。

标签: php symfony1 symfony-1.4


【解决方案1】:

要在生产环境中使用 symfony 的 CLI,您需要对托管应用程序的服务器进行 SSH 访问。您不能通过 FileZille 运行 shell 命令(如symfony; FileZilla 是 FTP 软件,仅此而已。

由于涉及固有的安全风险,许多共享主机提供商不提供 SSH 访问。您需要确定您的主机是否提供 SSH 访问权限,如果没有则启用它,或者如果拥有 shell 访问权限至关重要,请移至新主机。

symfony 的 CLI 访问使许多常见任务在生产环境中更易于管理,但是您所要求的(将资产部署到 web 目录)只能通过 FTP 访问来完成。

There is a whole chapter written on deploying a Symfony 1.4 application

在您的情况下,只需在本地运行 php symfony plugin:publish-assets然后通过 FTP 推送您的代码。

我强烈建议您研究提供 SSH 访问的托管环境。将 symfony 与 git 之类的 VCS 相结合,并将服务器设置为直接从存储库中提取标签,以简单地使用 symfony 的 project:deploy CLI 任务进行部署,这使得在生产环境中管理代码非常容易。

【讨论】: