我在localhost中以生产模式参与了Symfony 3.3项目。我想
在远程服务器上以开发模式部署它。那么如何才能做到呢?
有人可以帮助我吗?
提前谢谢你!
答案 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)
部署Symfony应用程序可能是一项复杂多变的任务,具体取决于 您的应用程序的设置和要求。这篇文章不是一步 - 分步指南,但是最常见的要求和想法的一般列表 用于部署。
部署Symfony应用程序时采取的典型步骤包括:
部署还可能包括其他任务,例如:
public/
目录中删除任何不必要的文件以保留您的。{li>
生产环境干净; Memcached
_或Redis
_)。有几种方法可以部署Symfony应用程序。从几个开始 基本的部署策略并从那里建立起来。
基本文件传输
部署应用程序的最基本方法是手动复制文件
通过FTP / SCP(或类似方法)。由于缺乏控制,这有其缺点
在升级过程中通过系统。这个方法也需要你
在传输文件后执行一些手动步骤(请参阅Common Post-Deployment Tasks
_)
使用源代码管理
如果您正在使用源代码管理(例如Git或SVN),您可以通过简化来简化
您的实时安装也是存储库的副本。当你准备好了
升级就像从源代码管理中获取最新更新一样简单
系统。使用Git时,常见的方法是为每个版本创建一个标记
并在部署时查看相应的标记(请参阅Git Tagging
_)。
这样可以更轻松地更新文件 ,但您仍需要担心
手动执行其他步骤(请参阅Common Post-Deployment Tasks
_)。
将平台用作服务
使用平台即服务(PaaS)是部署Symfony应用程序的绝佳方式 快速轻松。有很多PaaS - 以下是一些与Symfony合作良好的:
使用构建脚本和其他工具
还有一些工具可以帮助减轻部署的痛苦。他们中的一些人已经 专门针对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
_或任何其他构建工具来编写脚本
部署你的项目。