<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>4's symfony blog &#187; 部署</title>
	<atom:link href="http://www.foolbirds.com/t/%e9%83%a8%e7%bd%b2/feed" rel="self" type="application/rss+xml" />
	<link>http://www.foolbirds.com</link>
	<description>all about symfony</description>
	<lastBuildDate>Fri, 14 Oct 2011 12:36:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>symfony目录结构及部署办法说明</title>
		<link>http://www.foolbirds.com/symfony-folder-and-deploy.html</link>
		<comments>http://www.foolbirds.com/symfony-folder-and-deploy.html#comments</comments>
		<pubDate>Tue, 23 Dec 2008 05:31:39 +0000</pubDate>
		<dc:creator>bobhero</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[部署]]></category>

		<guid isPermaLink="false">http://symfony.bobhero.net/?p=195</guid>
		<description><![CDATA[symfony 目录 结构 及部署说明 ]]></description>
			<content:encoded><![CDATA[<p>Symfony   实现了  MVC 结构 ，其目录结构 对于 初学者  或是 不习惯 MVC 结构 的人来说可以称得上 诡异，在这里简单说一下主要的目录 结构的作用。</p>
<p>通常 symfony  在初始化的时候建立 的 目录 结构是不用修改的 ，因为必竟经过了3年的精练 ，应该 比较 能适应大多数网站用户的 需要 。</p>
<p>默认目录结构如下</p>
<p>project/                                                                                                                                   项目文件夹</p>
<p>&#8211;apps/                                                                                                                                    多个入口 ，一般分前后台，或是多个用户等，主要用来区别大方向上的功能群变化</p>
<p>&#8212;-app1/                                                                                                                                 功能1，名字随便，代表一个功能 的集合，SYMFONY官方通常用frontend 来表示 前台</p>
<p>&#8212;&#8212;config/                                                                                                                            所有config 的目录 都是存放 与其最近的上级目录 代表的功能  的配置文件  如 app1/config 代表 是app1的配置文件</p>
<p>&#8212;&#8212;i18n/                                                                                                                                 i18n代表当前app的 多语言文件 存放位置</p>
<p>&#8212;&#8212;lib/                                                                                                                                    所有lib 目录 都是代表 库文件 目录  与config 一样 ，如果只作用于当前的最近的功能</p>
<p>&#8212;&#8212;modules/                                                                                                                          当前application 的模块存放文件</p>
<p>&#8212;&#8212;&#8211;module1/                                                                                                                        某一个功能模块 名字任意</p>
<p>&#8212;&#8212;&#8212;-actions/                                                                                                                       当前模块的动作一般只有一个文件 也就是最核心的部分，所有动作都最终会被 路由到这里的文件中</p>
<p>&#8212;&#8212;&#8212;-config/                                                                                                                         同上config</p>
<p>&#8212;&#8212;&#8212;-lib/                                                                                                                                同上lib</p>
<p>&#8212;&#8212;&#8212;-templates/                                                                                                                   所有叫templates的文件夹用来存放模板,工作机制同lib ,config</p>
<p>&#8212;&#8212;&#8211;module2/</p>
<p>&#8212;&#8212;templates/                                                                                                                         同上templates</p>
<p>&#8212;-app2/</p>
<p>&#8211;cache/                                                                                                                                     缓存文件夹 通常 用来被 清空  要注意保持此目录 可写</p>
<p>&#8211;config/                                                                                                                                    同上config</p>
<p>&#8211;data/                                                                                                                                        存放symfony项目的数据  ，如 sql 文件 ,测试数据等</p>
<p>&#8211;doc/                                                                                                                                         存放文档</p>
<p>&#8211;lib/                                                                                                                                            同上lib  ,这个是作用于全局的，一般不想被外面直接访问到的类库可以放到这里</p>
<p>&#8212;-filter/                                                                                                                                      过滤器类存放文件夹</p>
<p>&#8212;-form/                                                                                                                                      表单类存放文件夹</p>
<p>&#8212;-model/                                                                                                                                    数据模型存放文件夹</p>
<p>&#8212;-validator/                                                                                                                               验证器存放文件夹</p>
<p>&#8212;-vendor/</p>
<p>&#8212;-widget/                                                                                                                                   存放自定义表单元素类的文件夹</p>
<p>&#8211;log/                                                                                                                                             日志存放位置</p>
<p>&#8211;plugins/                                                                                                                                      插件存放位置</p>
<p>&#8211;test/                                                                                                                                             测试存放位置</p>
<p>&#8211;web/                                                                                                                                             网站的根目录  只允许外部访问 此目录  其它都没有办法 通过URL 直接访问 到 大大提高了网站代码的安全性</p>
<p>&#8211;symfony                                                                                                                                      symfony命令文件 ，方便快捷的操作SYMFONY项目的PHP 脚本。想使用时需要先加权限，并确保可以被php解析</p>
<p>程序开发好了 需要部署 ，部署方法如下：</p>
<blockquote>
<ol>
<li>首先冻结当前项目，即把当前项目做成沙盒  ,<em> </em>把symfony 的lib 放到当前的data下 和lib 下（个人感觉 这是一个BUG，不需要同时放在两个位置 ）
<ol>
<li>symfony freeze path/to/symfonylib</li>
</ol>
</li>
<li>先将文件上传(解压)</li>
<li>设置APACHE 配置虚拟机</li>
<li>设置对应文件权限，清缓存(如果有上传文件夹 同时也要设置相应的权限)
<ol>
<li>将cache 下的所有文件 清除</li>
<li>将web/uploads cache  log 目录 设置成为777 （递归）</li>
<li>对于有shell的网站管理 员可以直接  用 symfony cc                    symfony proj:permissions来实现上面效果</li>
</ol>
</li>
<li>调试
<ol>
<li> 如果网页不能正常 访问   则 在脚本文件 后加上DEV ，如frontend_dev.php ，实际上是切换到了开发模式 ，开发模式会报告出各种错误 来帮助调式，如权限不中，找不到文件等等。</li>
</ol>
</li>
</ol>
</blockquote>
<ul class="related_post"><li><a href="http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html" title="使用symfony filter 过滤URL">使用symfony filter 过滤URL</a></li><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html" title="如何在fixtures.yml写循环添加数据">如何在fixtures.yml写循环添加数据</a></li><li><a href="http://www.foolbirds.com/symfony-1-4-database-utf8.html" title="symfony 1.4 数据库 utf8设置">symfony 1.4 数据库 utf8设置</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/how-to-use-swift-to-send-mail-in-symfon.html" title="如何使用swift发送邮件">如何使用swift发送邮件</a></li><li><a href="http://www.foolbirds.com/batch-in-symfony12.html" title="symfony1.2下的命令行程序(batch)">symfony1.2下的命令行程序(batch)</a></li><li><a href="http://www.foolbirds.com/generate-admin-templates-structure.html" title="symfony1.2的后台(generate-admin)模板结构">symfony1.2的后台(generate-admin)模板结构</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/symfony-folder-and-deploy.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

