In this guide, we will show how to configure a virtual host on Nginx for EspoCRM on Ubuntu server.
Create a server block file
To create this file, open a terminal and run the command:
1 | sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/espocrm.conf |
Now, open this file (/etc/nginx/sites-available/espocrm.conf) and modify the code following the format printed below (some settings may be different based on your configuration):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | server { listen 80; listen [::]:80; server_name espocrm.local; # Replace espocrm.local to your domain name root /var/www/html/espocrm; # Specify your EspoCRM document root index index.php index.html index.htm; client_max_body_size 50M; # SSL configuration # # listen 443 ssl; # listen [::]:443 ssl; # include snippets/snakeoil.conf; # Specify your PHP (php-cgi or php-fpm) based on your configuration location ~ \.php$ { include snippets/fastcgi-php.conf; # With php7.0-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # Add rewrite rules location / { try_files $uri $uri/ =404; } location /api/v1/ { if (!-e $request_filename){ rewrite ^/api/v1/(.*)$ /api/v1/index.php last; break; } } location ~ /reset/?$ { try_files /reset.html =404; } location ^~ (data|api)/ { if (-e $request_filename){ return 403; } } location ^~ /data/logs/ { deny all; } location ^~ /data/\.backup/ { deny all; } location ^~ /data/config.php { deny all; } location ^~ /data/cache/ { deny all; } location ^~ /data/upload/ { deny all; } location ^~ /application/ { deny all; } location ^~ /custom/ { deny all; } location ^~ /vendor/ { deny all; } location ~ /\.ht { deny all; } } |
Enable this server block
Create a symbolic link:
1 | sudo ln -s /etc/nginx/sites-available/espocrm.conf /etc/nginx/sites-enabled/ |
Run this command to check if everything is fine:
1 | sudo nginx -t |
And restart Nginx server:
1 | sudo service nginx restart |
Configure your local hosts (optional, for a local domain only)
If you added a local domain, you have to configure it on your local computer (not on the server). For Ubuntu, open the file /etc/hosts and add the line:
1 | 192.168.1.1 espocrm.local # specify the IP address of your Nginx server |
For Windows, please follow these instructions.