2013-05-30 38 views
3

我使用Plesk和nginx作为代理,这很好。 我在子域上安装了laravel php框架。该框架提供了direcotry“公共”公共文件,所以我改变的document_root一个自定义文件vhost.conf这样:修改plesk下的nginx代理的文档根目录

DocumentRoot "/var/www/vhosts/example.com/laravel.example.com/public" 

现在Apache是​​意识到了这一点,PHP文件时没有任何问题,但不通过nginx处理的静态文件,我找不到404,因为我还必须重新配置nginx的document_root。

如果我复制静态文件,如css或js在相同的目录级别作为公共它的作品,但静态文件应在“公开”。

如何重新配置​​此nginx虚拟主机的文档根目录?我尝试添加

root /var/www/vhosts/example.com/laravel.example.com/public; 

到服务器{...和“再定位/”指令......

到自定义在“CONF” nginx.conf文件的Plesk的directroy为这个虚拟主机但不工作。

回答

4

对于的Plesk 12.0及以上有UI控件在 “Web服务器设置” 来指定域的额外的nginx/Apache指令:

plesk customize nginx config

对于的Plesk 11.5您可以添加自定义指令:

  1. mkdir/usr/local/psa/admin/conf/templates/custom/domain

  2. CP /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php 在/ usr /本地/ PSA /管理/ conf目录/模板/自定义/域/

  3. 加入/ USR /本地/ PSA /管理/ conf目录/模板/自定义/域/ nginxDomainVirtualHost.php:

    <?php if (file_exists($VAR->domain->physicalHosting->vhostDir . '/conf/nginx.conf')): ?> 
        include <?php echo $VAR->domain->physicalHosting->vhostDir;?>/conf/nginx.conf; 
    <?php endif ?> 
    
  4. 在/ usr /本地/ PSA /管理/斌/ httpdmng --reconfigure-所有#应用新配置适用于所有域名

因此,如果域名有conf/nginx.conf - 它将被包含在虚拟主机配置中。

+1

很好,thx和抱歉,迟到复出......重新启动nginx后,我有这个警告: nginx:[警告]冲突的服务器名称“laravel.example.com”118.xxx.104.xxx:80 ,忽略...但我现在工作 – Danzzz

+0

看起来像在conf/nginx.conf中的ServerName指令的重复。我想你可以玩去除重复的指令。 –