Symfony 2无需SSH访问

14

我使用Symfony 2和Doctrine 2开发了一个小型Web应用程序。

如果我的web-hosting没有提供SSH访问权限,我能否部署它?

我问这个问题是因为我发现有很多任务需要在终端完成,比如更新数据库模式、创建资产的符号链接、清除缓存等等...

3个回答

15

不应该成为问题:

  • 在某个地方创建系统的副本,最好具有与生产系统相同的数据库连接参数。
  • 如果您的数据库设置允许,使用--env=prod参数运行所有必要的任务。
  • 使用phpMyAdmin将创建的生产数据库克隆到生产系统中。您可以从生产数据库克隆架构,在本地运行app/console doctrine:schema:update --dump-sql,然后在生产服务器上运行生成的SQL。
  • 复制所有文件,不包括app/cacheapp/log目录。

2
排除缓存和日志目录会导致异常...只需排除app/cache/*和app/log/*,这样在部署的站点上这些文件夹将保持为空。 - Flask
7
是的,这就是为令我将目录写在app/cache和app/log中的原因。 - chiborg

3

我已经用SF 1.4做过很多次,使用SF 2也应该同样容易。

一些低端主机会出现限制,这会导致symfony出现问题,因此运行symfony兼容性检查脚本很重要(您可以上传它,然后在浏览器中输入其URL以获取输出)。完成后,请遵循以下简单步骤:

  1. 复制项目的所有文件。我通常会将项目文件夹压缩/打包,并上传和解压缩。
  2. 从开发环境导出数据库,并将其上传到新服务器。
  3. 编辑配置并更新数据库设置。如果您的代码中有硬编码路径,现在是修复这些问题的时候。
  4. 确保apache用户(或您的主机使用的任何服务器软件)对缓存和日志目录具有完全访问权限。在某些主机上,这可能会很棘手,我过去不得不联系支持来登录并更改权限。
  5. 在您的Web主机配置工具中,将站点的Web根目录设置为项目中的Web文件夹。

0
也许有一种方法(例如使用sftp),但这就像试图骑着方轮子的自行车一样困难;)

1
如果您的主机提供SFTP服务,他们通常也会包括一个Shell帐户。将其比作方轮自行车可能有点太过苛刻了...它可以工作,但您在Shell环境中不会像那样快速。 - Flask

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接