2013-05-30 74 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指令的重複。我想你可以玩去除重複的指令。 –