Jobeet - 23天:部署
以前在Jobeet
昨天和缓存系统的配置,Jobeet网站是随时可以部署在生产服务器上。
在22日,我们已经开发出Jobeet在开发机器上,对大多数人来说,这可能意味着你的本地机器;除非你直接开发在生产服务器上,这当然是一个非常糟糕的主意。现在,是时候把网站移到生产服务器。
今天,我们会看到之前需要做什么准备生产,您可以使用什么样的部署策略,以及所需要的工具对于一个成功的部署。
准备生产服务器
将项目部署到生产环境之前,我们需要确保生产服务器配置。你可以重读第一天,我们解释了如何配置web服务器。
在本节中,我们假设您已经安装了web服务器、数据库服务器和PHP 5.2.4或更高版本。
如果你没有一个SSH访问web服务器,跳过这部分,你需要访问命令行。
服务器配置
首先,您需要检查PHP安装所有需要的扩展和正确配置。第一天,我们将使用check_configuration.php
symfony提供的脚本。ob娱乐下载我们不会在生产服务器上安装symfonyob娱乐下载,下载该文件直接从symfony网站:
http://trac.ob娱乐下载symfony-project.org/browser/branches/1.2/data/bin/check_configuration.php?format=raw
将该文件复制到web根目录并运行它从您的浏览器和从命令行:
php check_configuration.php美元
修复任何致命错误脚本发现并重复这个过程,直到一切都没问题这两个环境。
PHP加速器
对于生产服务器,您可能想要最佳的性能成为可能。安装一个PHP加速器会给你最好的改善你的钱。
从维基百科:一个PHP加速器工作通过缓存PHP脚本的编译后的字节码,以避免的开销在每个请求解析和编译源代码。
APC是一个最受欢迎的一个,很简单的安装:
美元pecl安装APC
根据您的操作系统,你也可以用OS本地包管理器安装它。
花些时间来学习如何配置APC。
symfob娱乐下载ony库
嵌入symfonyob娱乐下载
symfony的最伟大的力量之一是一个项目是独立的。ob娱乐下载项目工作所需的所有文件在主要项目根目录下。你可以移动项目在另一个目录不更改任何设置在symfony项目本身只使用相对路径。ob娱乐下载这意味着生产服务器上的目录不需要一样的开发机器上。
唯一的绝对路径,可能是在被发现配置/ ProjectConfiguration.class.php
文件;但是我们在第一天照顾它。检查它实际上包含了一个相对路径的symfony核心自动装卸机:ob娱乐下载
/ /配置/ ProjectConfiguration.class.phprequire_once目录名(__FILE__)。“/ . . / lib /供应ob娱乐下载商/ symfony / lib /自动装载/ sfCoreAutoload.class.php”;
symfony升级ob娱乐下载
即使一切都是独立的在一个目录中,symfony升级到新版本还是疯狂的容易。ob娱乐下载
你要升级symfony最新小释放,随着我们不断修正ob娱乐下载错误,可能是安全问题。好消息是,所有sy欧宝平台是合法的吗mfony版本保持至少一年,在维修ob娱乐下载期间,我们从来没有添加新功能,即使是最小的一个。所以,总是快速,安全,安全的从一个小版本升级到另一个。
升级symfony一ob娱乐下载样简单的改变的内容lib /供应商/ sob娱乐下载ymfony /
目录中。如果你有安装symfony档案,删除当前文件ob娱乐下载,并将其替换为最新的。
如果你使用Subversion为您的项目,你也可以联系你的项目最新的symfony 1.2标记:ob娱乐下载
美元svn propedit svn: lib /外部供应商/ # symfony hob娱乐下载ttp://svn.symfony-project.com/tags/RELEASE_1_2_1/
升级symfony然ob娱乐下载后简单改变标签symfony的最新版本。
您还可以使用1.2分支在实时修正:
美元svn propedit svn: lib /外部供应商/ # symfony hob娱乐下载ttp://svn.symfony-project.com/branches/1.2/
现在,每当你做一个svn上
,您将拥有最新的symfony 1.2版本。ob娱乐下载
当升级到新版本,建议您总是清除缓存,尤其是在生产环境:
php syob娱乐下载mfony cc美元
如果你也有一个FTP访问生产服务器,你可以模拟
ob娱乐下载symfony cc
通过简单地删除所有的文件和目录下缓存/
目录中。
你甚至可以测试一个新的symfony版本没有取代ob娱乐下载现有的一个。如果你只是想测试新版本,并希望能够回滚,在另一个目录(安装symfonyob娱乐下载lib /供应商/ sob娱乐下载ymfony_test
例如),改变的路径ProjectConfiguration
类,清除缓存,你就完成了。可删除的目录一样简单,改变路径ProjectConfiguration
。
调整配置
数据库配置
大多数时候,有不同的证书比当地的生产数据库。由于symfony的环境中,ob娱乐下载很容易有不同的生产数据库的配置:
美元php ob娱乐下载symfony的配置:数据库mysql:主机= localhost; dbname = prod_dbname prod_user prod_pass
你也可以编辑databases.yml
直接配置文件。
资产
Jobeet使用插件嵌入资产,symfony创建相应的符号链接ob娱乐下载web /
目录中。的插件:发布资产
任务更新或创建它们,如果你没有安装插件插件:安装
任务:
美元php ob娱乐下载symfony插件:发布资产
自定义错误页面
要生产之前,最好是定制默认symfony页面,像“页面未找到”页面,或者默认异常页面。ob娱乐下载
我们已经配置的错误页面YAML
通过创建一个格式在白天16日error.yaml.php
和一个exception.yaml.php
文件配置/错误/
目录中。的error.yaml.php
当在文件使用symfonyob娱乐下载刺激
环境,而exception.yaml.php
用于dev
环境。
因此,自定义默认的异常页面HTML格式,创建两个文件:配置/错误/ error.html.php
和配置/错误/ exception.html.php
。
的404年
可以定制页面(页面不存在)通过改变error_404_module
和error_404_action
设置:
#应用/前端/ config /设置。yml: .actions: error_404_module:默认error_404_action:那么error404
自定义目录结构
为了更好的代码结构和规范,symfony与预定义的名称有一个默认的目录结构。ob娱乐下载但有时,你没有选择,只能改变结构,因为一些外部约束。
配置目录名可以在完成配置/ ProjectConfiguration.class.php
类。
Web根目录
一些web主机上,你不能改变web根目录的名称。假设你的网络主机,因此得名public_html /
而不是web /
:
/ /配置/ ProjectConfiguration.class.php类ProjectConfiguration扩展sfProjectConfiguration{公共函数设置(){这个美元- >setWebDir(这个美元- >getRootDir()。' / public_html ');}}
的setWebDir ()
方法使用web根目录的绝对路径。如果你也把这个目录在其他地方,不要忘记编辑控制器脚本检查的路径ProjectConfiguration
文件仍然有效:
require_once(目录名(__FILE__)。“/ . . / config / ProjectConfiguration.class.php”);
缓存和日志目录
symfob娱乐下载ony框架只写两个目录:缓存/
和日志/
。出于安全原因,一些网络主机不设置在主目录写权限。如果是这种情况,你可以移动这些目录在文件系统:
/ /配置/ ProjectConfiguration.class.php类ProjectConfiguration扩展sfProjectConfiguration{公共函数设置(){这个美元- >setCacheDir(“/ tmpob娱乐下载 / symfony_cache”);这个美元- >setLogDir(“/ tmpob娱乐下载 / symfony_logs”);}}
至于setWebDir ()
方法,setCacheDir ()
和setLogDir ()
以一个绝对路径缓存
和日志
目录分别。
工厂
在Jobeet教程中,我们谈到symfony的核心对象ob娱乐下载sfUser
,sfRequest
,sfResponse
,sfI18N
,sfRouting
,等等。这些对象自动创建、配置和管理的symfony框架。ob娱乐下载他们总是从访问sfContext
对象,和框架中的许多事情一样,他们都是可配置的通过一个配置文件:factories.yml
。这个文件是可配置的环境。
当sfContext
初始化的核心工厂,它读取factories.yml
文件类名(类
)和参数(参数
)传递给构造函数:
响应:类:sfWebResponse参数:send_http_headers:假的
在前面的代码片段,创建响应工厂,symfony实例化一个ob娱乐下载sfWebResponse
对象,并通过send_http_headers
选择作为一个参数。
开始能够定制工厂意味着您可以使用一个自定义类symfony核心对象而不是默认的一个。ob娱乐下载您还可以更改默认行为类通过改变参数发送给他们。
让我们看看一些经典定制你可能想做的事。
饼干的名字
处理用户会话,symfony使用cookie。ob娱乐下载这个饼干的缺省名称ob娱乐下载
,可以改变factories.yml
。下所有
键,添加以下配置改变cookie的名称jobeet
:
#应用/前端/ config /工厂。yml存储:类:sfSessionStorage参数:session_name: jobeet
会话存储
默认的会话存储类sfSessionStorage
。它使用文件系统来存储会话信息。如果你有几个web服务器,你想将会话存储在一个中央位置,就像一个数据库表:
#应用/前端/ config /工厂。yml存储:类:sfPDOSessionStorage参数:session_name: jobeet db_table:会话数据库:推动db_id_col: id db_data_col:数据db_time_col:时间
会话超时
默认情况下,如果用户会话超时1800年
秒。这可以通过编辑改变用户
条目:
#应用/前端/ config /工厂。yml用户:类:myUser参数:超时:1800
日志记录
默认情况下,没有登录刺激
环境因为logger类名sfNoLogger
:
#应用/前端/ config /工厂。yml刺激:记录器类:sfNoLogger参数:水平:呃伐木工:~
例如可以启用日志记录文件系统上通过改变logger类名sfFileLogger
:
#应用/前端/ config /工厂。yml logger类:sfFileLogger参数:级别:错误文件:% SF_LOG_DIR % / % SF_APP % _ % SF_ENVIRONMENT % . log
在
factories.yml
配置文件,% XXX %
字符串替换为相应的值sfConfig
对象。所以,% SF_APP %
相当于在一个配置文件sfConfig: get (“sf_app”)
在PHP代码。这个符号也可以使用的app.yml
配置文件。它是非常有用的,当你需要引用路径在一个没有硬编码的配置文件路径(SF_ROOT_DIR
,SF_WEB_DIR
,……)。
部署
部署什么?
当Jobeet网站部署到生产服务器,我们需要小心不要部署不必要的文件,或覆盖文件上传的用户,公司标志。
在symfob娱乐下载ony项目中,有三个目录排除转让:缓存/
,日志/
,web /上传/
。一切可以转移。
但出于安全原因,你也不想把“非生产”前端控制器,如frontend_dev.php
和frontend_cache.php
脚本。
部署策略
在本节中,我们将假设您已经完全控制生产服务器(年代)。如果你只能访问服务器和FTP帐户,唯一可能的部署解决方案是将所有文件每次部署。
部署你的网站最简单的方法是使用内置的项目:部署
的任务。它使用SSH
和rsync
连接和文件从一台服务器转移到另一个。
服务器中配置配置/ properties.ini
配置文件:
#配置/ properties.ini(生产]主机=www.ob娱乐下载symfony-project.com港口=22用户=jobeetdir=/var/www/jobeet/类型=rsync通过=
部署到新配置生产
服务器,使用项目:部署
任务:
美元php ob娱乐下载symfony项目:生产部署
如果你运行这个命令,symfony将只模拟传输。ob娱乐下载实际部署的网站,添加——去
选择:
美元php ob娱乐下载symfony项目:部署生产——走
即使你可以提供SSH密码的
properties.ini
文件,最好是使用允许无密码的SSH密钥配置您的服务器连接。
默认情况下,symfonob娱乐下载y不会转让目录前面我们已经讲过,也没有将转移dev
前端控制器脚本。这是因为项目:部署
排除文件和目录的配置任务配置/ rsync_exclude.txt
文件:
#配置/ rsync_exclude。txt . svn / web /上传/ / * /日志/ * / * /缓存web / * _dev.php
对于Jobeet,我们需要添加的frontend_cache.php
文件:
#配置/ rsync_exclude。txt . svn / web /上传/ / * /日志/ * / * /缓存web / * _dev.php/web/frontend_cache.php
您还可以创建一个
配置/ rsync_include.txt
文件来迫使一些文件或目录被转移。
即使项目:部署
任务是非常灵活的,您可能希望进一步定制它。部署可以非常不同的基于服务器的配置和拓扑,不要犹豫来扩展默认的任务。
每次你将网站部署到生产,别忘了至少明确的生产服务器上的配置缓存:
php syob娱乐下载mfony cc——美元=配置类型
如果你已经改变了一些路线,您还需要明确的路由缓存:
php syob娱乐下载mfony cc——美元type =路由
清理缓存部分选择性地允许保持缓存的模板。
明天见
项目的部署是一个symfony的最后一步开发生命周期。ob娱乐下载这并不意味着你做的。这是恰恰相反。一个网站有一个生活本身。你可能要修正错误,你也会想添加新特性。但由于symfony结构和工具,提升ob娱乐下载你的网站是简单、快速、安全。
明天已经Jobeet教程的最后一天。将时间往后站一点,和看看你学到了什么在Jobeet 23天。
不要错过Jobeet的最后一期。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
我认为这是发表了. .
问题执行命令
警告:永久增加的www.altrano.com, 209.239.114.12 (RSA)已知的主机列表。
rsync:连接意外关闭(0字节收到了到目前为止)(发送方)
rsync错误:错误rsync协议数据流(12)代码io.c(454)(发送方= 2.6.9)
到底是怎么回事? ?