Symfony 3.3项目部署

时间:2018-02-28 08:41:28

标签: symfony

我在localhost中以生产模式参与了Symfony 3.3项目。我想

在远程服务器上以开发模式部署它。那么如何才能做到呢?

有人可以帮助我吗?

提前谢谢你!

2 个答案:

答案 0 :(得分:1)

首先警告,正如goto在评论中所说,使用远程服务器上的开发环境是一个安全问题。因此,在您的prod服务器上首次部署应用程序时,请确保它是测试服务器或非常临时的解决方案。

能够在远程服务器上获取Symfony工具栏有很多帮助,并且可以节省时间,特别是如果它是您第一次部署并且出现意外错误。

<强> 1。服务器配置

默认情况下,服务器上的所有请求都会重定向到app.php(位于项目的web /目录中的文件)。您必须更改此行为并告诉服务器重定向到app_dev.php

使用Nginx,您必须更改您的配置:

172.17.0.2:800

在您进行更改后,不要忘记测试并重新加载Nginx配置:

# Symfony fallback
location / {
    # try to serve file directly, fallback to app_dev.php
    try_files $uri /app_dev.php$is_args$args;
}

location ~ ^/app_dev\.php(/|$) {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    internal
}

我不了解Apache,但它应该是类似的东西(用app_dev.php替换app.php)。

<强> 2。作曲家

您必须在远程服务器上运行sudo nginx -t sudo nginx -s reload ,而不使用composer install选项。它将安装dev环境中所需的bundle,但通常不会安装在prod环境中。

第3。高速缓存

使用dev选项清除和预热缓存:

--no-dev --optimize-autoloader

你应该准备好去,打开你的浏览器并访问你的网站,你将处于开发模式。

注意:虽然我认为我的答案应该有效,但我已经在一年多前完成了这种操作,今天我无法测试。

答案 1 :(得分:0)

Just read the doc

部署Symfony应用程序可能是一项复杂多变的任务,具体取决于 您的应用程序的设置和要求。这篇文章不是一步 - 分步指南,但是最常见的要求和想法的一般列表 用于部署。

Symfony部署基础

部署Symfony应用程序时采取的典型步骤包括:

  • 将代码上传到生产服务器;
  • 安装您的供应商依赖项(通常通过Composer完成,可能已完成 在上传之前);
  • 运行数据库迁移或类似任务以更新任何已更改的数据结构;
  • 清除(并可选择预热)缓存。

部署还可能包括其他任务,例如:

  • 将特定版本的代码标记为源代码管理中的版本 储存库;
  • 创建临时暂存区域以“离线”构建更新的设置;
  • 运行任何可用的测试以确保代码和/或服务器稳定性;
  • public/目录中删除任何不必要的文件以保留您的。{li> 生产环境干净;
  • 清除外部缓存系统(例如Memcached _或Redis _)。

如何部署Symfony应用程序

有几种方法可以部署Symfony应用程序。从几个开始 基本的部署策略并从那里建立起来。

基本文件传输

部署应用程序的最基本方法是手动复制文件 通过FTP / SCP(或类似方法)。由于缺乏控制,这有其缺点 在升级过程中通过系统。这个方法也需要你 在传输文件后执行一些手动步骤(请参阅Common Post-Deployment Tasks _)

使用源代码管理

如果您正在使用源代码管理(例如Git或SVN),您可以通过简化来简化 您的实时安装也是存储库的副本。当你准备好了 升级就像从源代码管理中获取最新更新一样简单 系统。使用Git时,常见的方法是为每个版本创建一个标记 并在部署时查看相应的标记(请参阅Git Tagging _)。

这样可以更轻松地更新文件 ,但您仍需要担心 手动执行其他步骤(请参阅Common Post-Deployment Tasks _)。

将平台用作服务

使用平台即服务(PaaS)是部署Symfony应用程序的绝佳方式 快速轻松。有很多PaaS - 以下是一些与Symfony合作良好的:

  • 的Heroku
  • Platform.sh
  • 天青
  • fortrabbit

使用构建脚本和其他工具

还有一些工具可以帮助减轻部署的痛苦。他们中的一些人已经 专门针对Symfony的要求量身定制。

EasyDeployBundle
    一个Symfony软件包,可为您的应用程序添加简单的部署工具。

Deployer
    这是Capistrano的另一个原生PHP重写,有一些现成的食谱     symfony中。

Ansistrano
    一个Ansible角色,允许您通过YAML文件配置强大的部署。

Magallanes
    这个类似Capistrano的部署工具是用PHP构建的,可能更容易     为PHP开发人员提供扩展以满足他们的需求。

Fabric
    这个基于Python的库提供了一个基本的执行操作套件     本地或远程shell命令和上传/下载文件。

带有Capistrano

Symfony plugin
    Capistrano _是一个用Ruby编写的远程服务器自动化和部署工具。     Symfony plugin _是一个简化Symfony相关任务的插件,灵感来自Capifony _     (仅适用于Capistrano 2)。

sf2debpkg
    帮助您为Symfony项目构建本机Debian软件包。

基本脚本
    您当然可以使用shell,Ant _或任何其他构建工具来编写脚本     部署你的项目。