NGINX-logo
NGINX-logo
Om met Nginx een nieuwe server aan te maken, moet je het volgende doen.

Maak de directory aan waar de website komt:

$ mkdir -p /var/www/example.com

Als je ook www voor je domeinnaam in je url gebruikt, doe dan:

$ ln -s /var/www/example.com /var/www/www.example.com

Nu kun je om te testen evt een kleine webpagina erop zetten:

$ vi /var/www/example.com/index.html
<html>
 <head>
 <title>www.example.com</title>
 </head>
 <body>
 <h1>Success: This is example.com</h1>
 </body>
</html>

Maak een virtual host file aan:

$ cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

En pas deze als volgt aan:

$ vi /etc/nginx/sites-available/example.com
server {
  listen 80; ## listen for ipv4; this line is default and implied

  root /var/www/example.com;
  index index.html index.htm;

  # Make site accessible from http://localhost/
  server_name example.com;
}

$ forward van example.com naar www.example.com
server {
  listen 80;
  server_name example.com;
  return 301 http://www.example.com$request_uri;
}

Activeer de website als volgt:

$ ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

Verwijder evt. de default website om conflicten te voorkomen:

$ rm /etc/nginx/sites-enabled/default

Herstart nu Nginx:

$ service nginx restart

Pas ook de hosts file aan en vul hier het domein in:

$ vi /etc/hosts
127.0.0.1 localhost

#Virtual Hosts 
12.34.56.789 www.example.com

Nu kun je de website openen met: http://12.34.56.789

Nginx aanpassingen voor Wordpress

Voor Wordpress zijn er wat Nginx configuratie aanpassingen nodig in de virtual host file, voor Permalinks e.d.

$ vi /etc/nginx/sites-available/example.com
server {
  listen 80;

  root /var/www/example.com;
  index index.php index.html index.htm;

  server_name example.com *.example.com;

  location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
  }

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
    try_files $uri =404;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}

Herstart Nginx:

$ service nginx restart

Aparte logfiles per virtual host

Bron: wiki.nginx.org/SeparateErrorLoggingPerVirtualHost

$ vi /etc/nginx/sites-available/example.com
 server {
[..]
  server_name www.example.com;
  access_log example.com.access.log
  error_log example.com.error warn; # warn, error, crit, alert and emerg will be logged
 }

Wordpress installatie

Als Wordpress in de directory staat, vergeet dan niet alles nog de goede rechten te geven. Anders krijg je bij updaten van Wordpress de melding om via FTP te updaten.

Geef de directory’s www-data rechten en zet de rechten goed:

$ chown -R www-data:www-data /var/www/
$ find /var/www -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +

De gids “VPS opzetten” bestaat uit de volgende artikelen: