Εγκατάσταση Wordpress σε Debian 8 με NGINX και PHP 7.0

Στον οδηγό αυτόν θα σας δείξουμε αναλυτικά τα βήματα προκειμένου να εγκαταστήσετε το γνωστό Wordpress σε λειτουργικό Debian 8, κάνοντας χρήση του NGINX και της νέας PHP 7.0.

Ενημέρωση Λειτουργικού

Πρώτο βήμα, όπως πάντα είναι η ενημέρωση του λειτουργικού μας, με την παρακάτω εντολή:

apt-get update && apt-get upgrade  
Εγκατάσταση Ngnix

Επόμενο βήμα η εγκατάσταση του web server μας, όπου για λόγους ταχύτητας επιλέγουμε να είναι ο Nginx.

Αρχικά δίνουμε την παρακάτω εντολή:

apt-get install nginx-full  

Μόλις ολοκληρωθεί η εγκατάσταση, πληκτρολογούμε την παρακάτω εντολή για να δούμε τη διεύθυνση ip του διακομιστή μας

ifconfig  

Στο συγκεκριμένο παράδειγμα υποθέτουμε ότι η ip του διακομιστή μας είναι η 192.168.1.200

Για να δούμε ότι όλα έχουν πάει καλά, ανοίγουμε το πρόγραμμα περιήγησης μας και γράφουμε τη παρακάτω διεύθυνση αντίστοιχα

http://192.168.1.200  

Αν όλα έχουν πάει καλά θα δούμε παρόμοια σελίδα με την παρακάτω

Εγκατάσταση MariaDB

Για την βάση δεδομένων επιλέγουμε τη MariaDB, η οποία υπάρχει πλέον στα αποθετήρια του Debian. Κάνουμε την εγκατάσταση με την παρακάτω εντολή:

apt-get install mariadb-server  

Κατά την εγκατάσταση θα πρέπει να δώσουμε κωδικό, ο οποίος αφορά τον λογαριασμό διαχειριστή (root) της βάσης.

Δημιουργία βάσης δεδομένων

Επόμενο βήμα η δημιουργία μίας νέας βάσης δεδομένων και χρήστη, τα οποία θα χρησιμοποιεί το Wordpress μας.

Αρχικά δίνουμε την παρακάτω εντολή προκειμένου να μπούμε στην γραμμή εντολής της MariaDB:

mysql -u root -p  

Θα πρέπει να δώσουμε τον κωδικό του είχαμε επιλέξει κατά την εγκατάσταση της MariaDB στο προηγούμενο βήμα.

Μόλις εμφανιστεί το MariaDB [(none)]> γράφουμε τις παρακάτω εντολές, στις οποίες αλλάζουμε τον κωδικό password, το όνομα της βάσης newdb και τον χρήστη dbuser, σύμφωνα με τις προτιμήσεις μας:

create database newdb;  
grant usage on *.* to dbuser@localhost identified by 'password';  
grant all privileges on newdb.* to dbuser@localhost;  

Τέλος πληκτρολογούμε quit για να βγούμε.

Εγκατάσταση PHP 7.0

Συνεχίζουμε με την εγκατάσταση της php 7.0 και των απαιτούμενων βιβλιοθηκών.

Η php 7.0 δεν υπάρχει στα αποθετήρια του debian και έτσι θα χρησιμοποιήσουμε του dotweb.

Ανοίγουμε το αρχείο /etc/apt/sources.list και στο τέλος προσθέτουμε:

# dotweb repo for php 7.0
deb http://packages.dotdeb.org jessie all  
deb-src http://packages.dotdeb.org jessie all  

Στη συνέχεια περνάμε το κλειδί του νέου αποθετηρίου

wget https://www.dotdeb.org/dotdeb.gpg  
apt-key add dotdeb.gpg  

Τέλος ενημερώνουμε τα αποθετήρια μας και προχωράμε με την εγκατάσταση της php 7.0 και των απαραίτητων βιβλιοθηκών.

apt-get update  
apt-get install php7.0-fpm php7.0-mbstring php7.0-curl php7.0-zip php7.0-gd php7.0-mysql php7.0-mcrypt  

Κάνουμε μία επανεκκίνηση τον nginx ώστε να πάρει τις αλλαγές με την εντολή:

systemctl restart nginx  
Ρύθμιση NGINX

Για να λειτουργήσει σωστά το wordpress θα πρέπει να ρυθμίσουμε τον nginx μας.

Αρχικά ανοίγουμε το αρχείο /etc/nginx/nginx.conf και το αλλάζουμε σύμφωνα με το παρακάτω παράδειγμα

user www-data;  
worker_processes auto;  
pid /run/nginx.pid;

events {  
    worker_connections 512;
    multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 60;
    types_hash_max_size 2048;
    server_tokens off;

    client_body_buffer_size     128k;
    client_max_body_size        10M;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Στη συνέχεια ανοίγουμε το αρχείο /etc/nginx/sites-enabled/default και το αλλάζουμε σύμφωνα με το παρακάτω παράδειγμα αντικαθιστώντας το web path και το url με το δικό μας

# # # # # # # # # # # # # # #
# Nginx    Basic Vhost for WP  #
# Created by: toWeb.gr         #
# Release: 20161213-1          #
# # # # # # # # # # # # # # #

server {  
    server_name mydomain.gr;

    access_log   /var/log/nginx/mydomain.gr-access.log;
    error_log    /var/log/nginx/mydomain.gr-error.log;

    root /var/www/html/;
    index index.html index.php;


    location / {
    #try_files $uri $uri/ /index.php?$args; 
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_send_timeout 90;
        fastcgi_read_timeout 90;
           include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    }

    # Stop logging the above files
    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }

}

Κάνουμε επανεκκίνηση στον Nginx ώστε να πάρει τις νέες αλλαγές

systemctl restart nginx  
Εγκατάσταση Wordpress

Τελευταίο βήμα είναι η εγκατάσταση του wordpress.

Αρχικά κατεβάζουμε την πιο πρόσφατη έκδοση με την παρακάτω εντολή

cd /tmp  
wget https://wordpress.org/latest.tar.gz  

Αποσυμπιέζουμε τα αρχεία στο web root μας που στο συγκεκριμένο παράδειγμα είναι το /var/www/html

cd /var/www/html  
tar -xzvf /tmp/latest.tar.gz  

Μετακινούμε τα αρχεία εκτός του φακέλου wordpress

mv wordpress/* .  

Διαγράφουμε τον φάκελο αλλά το συμπιεσμένο αρχείο που κατεβάσαμε

rm /var/www/html/wordpress -rf  
rm /tmp/latest.tar.gz  

Διορθώνουμε τα δικαιώματα των αρχείων με την εντολή

chown -R www-data:www-data /var/www/html  

Ανοίγουμε την σελίδα mydomain.gr (ανάλογα πως την ονομάσαμε).

Στη συνέχεια προχωράμε με την εγκατάσταση του Wordpress όπως στις παρακάτω εικόνες.