Reputation: 535
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.
Upvotes: 3
Views: 3732
Reputation: 10312
For Plesk 12.0 and above there UI controls to specify domain's additional nginx/apache directives in "Web Server Settings":
For Plesk 11.5 you can add custom directive:
mkdir /usr/local/psa/admin/conf/templates/custom/domain
cp /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/
add in /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 ?>
/usr/local/psa/admin/bin/httpdmng --reconfigure-all # to apply new configuration for all domains
As result, if domain has conf/nginx.conf - it will be included into virtual host config.
Upvotes: 4