3

I use Plesk with nginx as proxy, which is working good. I installed laravel php framework on a subdomain. the framework provides a direcotry "public" for public files, so I changed document_root with a custom vhost.conf file this way:

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

Now apache is aware of this, PHP files working without any problems, but not the static files which are handeled via nginx, I get 404 not found because I must also reconfig the document_root for nginx.

If I copy the static files, like css or js on the same dir-level as public it works, but the static files should be in "public".

how to reconfig the document root for this nginx vhost now? I tried to add

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

into the server { ... and "then location /" directive ...

to a custom nginx.conf file in the "conf" directroy of plesk for this vhost but dont work.

4

1 回答 1

4

对于Plesk 12.0 及更高版本,有 UI 控件可在“Web 服务器设置”中指定域的附加 nginx/apache 指令:

plesk 自定义 nginx 配置

对于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/local/psa/admin/conf/templates/custom/domain/

  3. 添加/usr/local/psa/admin/conf/templates/custom/domain/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/local/psa/admin/bin/httpdmng --reconfigure-all # 为所有域应用新配置

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

于 2013-05-31T04:54:02.897 回答