In this article I will provide information how to install latest Drupal 8 version on Ubuntu 14.04 machine with Nginx.
Tools involved: Putty, Notepad++
I assume you have already configured Nginx on your machine, if not, here is a tutorial for LEMP Server Ubuntu 12.04 for serving Drupal on Nginx, don't be afraid of version 12.04, as in version 14.04 the only differences that might occur are in Ngnix config blocks, which I will cover in this article.
If you are looking for a great VPS server, try Linode, I have been using it for more than 4 years and can only highly recommend, their VPS starts $10/mo.
Now, once you have all set up, open Putty and login to your server with sudo privileges:
Add new virtual domain
sudo mkdir -p /srv/www/reinisfischer.com/{public_html,logs} sudo usermod -a -G www-data admin sudo chown -R www-data:www-data /srv/www sudo chmod -R 775 /srv/www/reinisfischer.com sudo
Make sure you change admin in second row to your username
Configure Nginx to serve Drupal 8
Add a new server_name
sudo nano /opt/etc/nginx/sites-available/reinisfischer.com
copy/paste code bellow (make sure you change reinisfischer.com to your actual domain name)
server { listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 # This is the full path to your index file root /srv/www/reinisfischer.com/public_html; access_log /srv/www/reinisfischer.com/logs/access.log; error_log /srv/www/reinisfischer.com/logs/error.log; # Make site accessible from http://localhost/ # This will be your domain name server_name progressus.lv; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # This matters if you use drush location = /backup { deny all; } # Very rarely should these ever be accessed outside of your lan location ~* \.(txt|log)$ { deny all; } rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1; location ~ \..*/.*\.php$ { return 403; } location / { # This is cool because no php is touched for static content try_files $uri @rewrite; } location @rewrite { # Some modules enforce no slash (/) at the end of the URL # Else this rewrite block wouldn't be needed (GlobalRedirect) rewrite ^/(.*)$ /index.php?q=$1; } location ~ \.php$|^/update.php { fastcgi_split_path_info ^(.+\.php)(/.+)$; #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; # Set cache key to include identifying components fastcgi_cache_valid 200 301 15s; fastcgi_cache_valid 302 1m; fastcgi_cache_valid 404 1s; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header updating http_500; fastcgi_ignore_headers Cache-Control Expires; fastcgi_pass_header Set-Cookie; fastcgi_pass_header Cookie; ## Add a cache miss/hit status header. add_header X-Micro-Cache $upstream_cache_status; ## To avoid any interaction with the cache control headers we expire ## everything on this location immediately. expires epoch; ## Cache locking mechanism for protecting the backend of too many ## simultaneous requests. fastcgi_cache_lock on; } location ~* ^(?!/system/files).*\.(js|css|png|jpg|jpeg|gif|ico|ttf|svg)$ { ## If the image does not exist, maybe it must be generated by drupal (imagecache) try_files $uri @rewrite; expires 7d; log_not_found off; } ## private files protection location ~ ^/sites/.*/private/ { access_log off; deny all; } }
CTRL+O and Enter CTRL+X to exit
Make a symlink
sudo ln -s /opt/etc/nginx/sites-available/reinisfischer.com /opt/etc/nginx/sites-enabled
Restart Nginx
sudo /etc/init.d/nginx restart
Download Drupal 8
I'm going to use wget to download latest Drupal 8 version (as of writing: 8.2.1)
cd /srv/www/reinisfischer.com sudo wget http://ftp.drupal.org/files/projects/drupal-8.2.1.tar.gz sudo tar -xvzf drupal-8.2.1.tar.gz sudo cp drupal-8.2.1/* public_html/ -R sudo chown www-data:www-data public_html -R
Now, open phpMyAdmin and create a new database (we will need latter)
Next, you should point your DNS entries, allow them to populate and visit your site via the browser (you can cheat this by entering your domain name and IP in Windows hosts file)
Open your domain name
You should see following screen:
Drupal 8 install screen
You can choose which language to set your Drupal installation, decide and click on Save and Continue
Choose Drupal version
You can choose to install Standard on Minimal. If you are new to Drupal and just exploring, Standard will be fine. If you will choose Minimal - that's fine too, but you will need later to define your content types et.c. Standard will suit in 90% cases. Once you have decided, click on Save and Continue.
Drupal database configuration
Enter details for your database (you created it via phpMyAdmin). Again, Save and Continue
It might take some time (about a minute) while Drupal will finish installation, and you will be prompted with the final window, asking to enter site maintenance and other details.
Drupal Site Configuration
Here you should give your site a name, enter administrator email address and choose Username (don't use admin, use something generic)
Congrats, you just finished Drupal 8 installation!
Default Drupal 8 homepage
Happy Drupalling!