给每一个虚拟主机的子目录中创建 public_html 子目录

问答中心分类: OneinStack给每一个虚拟主机的子目录中创建 public_html 子目录
baijianpeng asked 9 年 ago
测试了一下在 Oneinstac 中创建多个网站(虚拟主机),操作过程很容易。这个功能非常好!
不过,我注意到,如果用 FTP 连接某个虚拟主机,直接就进入了该主机的根目录。网站内容也是直接上传到根目录。
我认为:给每一个虚拟主机创建一个 public_html 子目录,这个 public_html 才是 web 根目录。网站内容必须上传到这里。
这么做的好处是:站长可以在 public_html 目录之外,与它平行的级别,创建其它目录,例如 backup ,用来存储一些绝对无法通过 http 访问的路径。
根据以往的经验,很多其它虚拟主机购买回来之后,都会发现用户账号对应的文件夹里面有一个 public_html 子目录,这个才是网站内容需要上传的地方。
所以,我觉得这种模式也比较符合用户习惯。
如果您同意,请尽快增加这个功能。
谢谢!

3 Answers
oneinstack answered 9 年 ago
可以通过./vhost.sh 网站根目录处写: /data/wwwroot/www.oneinstack.com/public_html

匿名用户 answered 9 年 ago
哦,还有这种技巧,我以为是由脚本自动创建 /public_html 等目录。
这个办法也不错。谢谢!

baijianpeng answered 9 年 ago
按照上面说的方法,在创建虚拟主机时,直接多指定一级目录,比如域名指向:
 
/data/wwwroot/www.oneinstack.com/public_html
 
接下来,创建 FTP 账号时,允许 FTP 用户访问的目录是:
 
/data/wwwroot/www.oneinstack.com/
 
这样应该没错吧?因为我还想通过 FTP 访问 public_html 之外的、但仍然属于自己的目录。
 
好了,现在问题来了:
 
在 FTP 客户端连接 FTP 之后可以顺利进入  /data/wwwroot/www.oneinstack.com/ ,在这里也能看到 public_html 目录已经存在并且也能进入。但是,当我尝试给 public_html 目录旁边创建一个同一级别平行的文件夹,例如名叫 backup 时,FTP 客户端提示:
 
响应: 550 Can't create directory: Permission denied
 
看起来这个 FTP  账号并没有权限在自己的主机内部创建一个文件夹。
 
所以,我觉得博主在前面给出的方案还不够完美。最好还是直接在虚拟主机管理脚本里面,默认自动创建 public_html ,最好同时创建 logs 及 backup 等几个目录,最重要的是,允许 FTP 用户在 public_html 之外创建同级平行目录。
 
谢谢!