我在Ubuntu 11.10上设置了基本的LAMP服务器,并且有一些关于网络托管的目录结构的问题。我的“要求”是我想主持两个网站(即:www.site1.com和www.site2.com)以及我想使用Zend框架。
目前,公用文件夹是/ var / www /。在某个地方包含所有Web应用程序代码的“Projects”文件夹是否常见,这些代码通常包含Zend项目文件夹(公共,测试,库等)?
你在哪里“正常”存储Zend框架文件夹?我只想存储在我的〜/目录中,并从每个项目的库文件夹创建一个符号链接到Zend库文件夹。这是推荐/不赞成的吗?
我是新手,只是进行设置,但这是我到目前为止的想法:
在主目录中创建一个项目文件夹(〜/)。在那里,有你不同的网络应用程序(〜/ Projects / site1和〜/ Projects / site2)。从/ var / www / site1创建一个指向〜/ Projects / site1 / Public的符号链接,对于site2也是如此。设置虚拟主机文件,DocumentRoot设置为/ var / www / site1,对于site2也是如此。
任何人都可以了解这可能存在的陷阱吗?这样做会好吗?有什么建议?我知道有很多版本的应该如何在SO上设置目录,但找不到具体解决这些问题的任何答案,所以如果这是重复,我会道歉。
感谢任何帮助。
答案 0 :(得分:3)
是的,有很多方法可以做到这一点,请记住以下几点:
我通常会做一些像使用常规/家庭/网站目录的“网站”用户。这使站点文件与您的个人文件分开,并且更容易支持可能需要登录的多个管理员/开发人员。您也可以将它放在/ opt / site或/ usr / local / site或任何地方。我喜欢/ home因为shell骨架文件已经存在,我可以轻松添加我想要访问的人的SSH密钥。我会有类似的东西:
/home/site/
library/
fuel/
geshi/
sencha-touch-2.0.0-gpl/
ZendFramework/
ZendFramework-1.11.10/
ZendFramework-1.11.11/
latest -> ZendFramework-1.11.11
site/
domain1.com/
application/
library/
MyApp/
Zend -> /home/site/library/ZendFramework/latest/library/Zend
public/
scripts/
domain2.com/
application/
library/
MyApp/
Zend -> /home/site/library/ZendFramework/latest/library/Zend
public/
scripts/
然后,您的vhost文档根设置将指向/home/site/site/domain1.com/public和/home/site/site/domain2.com/public
答案 1 :(得分:1)
目录结构不是有正确或错误的方法,许多人以不同的方式做,这是我的Ubuntu和一些CakePHP应用程序
/srv
/site1/
/app
/webroot
/cache
/tmp
/site2/
/app
/webroot
/cache
/tmp
/share/
/CakePHP
/1.3/
/2.0/
配置的两个主要部分是在apache中完成的,我将vhost的Document Root设置为webroot到/srv/site1/webroot/
的确切位置,然后我将CakePHP放入include路径(你可以做到与Zend相同)使用vhost配置中的php_value include_path ".:/share/cakephp/2.0/lib"
。
我这样做是因为它允许我将CakePHP的维护版本轻松升级到所有站点(即不会破坏任何内容的站点),新版本将保证新文件夹(即2.1),并将站点升级到使用它只是编辑apache配置(或.htaccess)并重新启动服务器的情况。
这也使我不必在我的应用程序中包含任何类型的包含路径(因此版本控制),因此它可以在不同的开发/暂存设置中尽可能地移植。
当然,正如我所说,没有一种“正确”的方式。