GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie mehrere WordPress mit Nginx unter Ubuntu 18.04

Stellen Sie sich vor, wenn Sie nur einen Server, aber 2 oder mehr WordPress-Sites haben, denken Sie, dass Sie mehr Server benötigen, um jede WordPress-Site darauf auszuführen. Es ist in Ordnung, aber wie wäre es, wenn Sie nicht viele Kosten für die Wartung vieler Server haben.

Dieser Artikel zeigt Ihnen, wie Sie mehrere WordPress-Websites auf einem Hostserver ausführen, indem Sie Nginx + Mariadb + php-fpm unter Ubuntu 18.04 LTS verwenden.

Voraussetzungen

1) Nginx für Webserver

2) Mariadb für MySQL-Datenbank

3) php-fpm für php FastCGI Process Manager

Der folgende Befehl aktualisiert Ihr System und fügt ein neues Repository für PHP-Pakete hinzu

# apt-get update
# apt-get install software-properties-common 
# add-apt-repository ppa:ondrej/php

Installieren Sie Nginx, Mariadb und php-fpm

Wir werden den Webserver Nginx, den MySQL-Server Mariadb und php7-fpm sowie die php7-Erweiterung installieren, die zum Ausführen der WordPress-Site benötigt wird

# apt-get install nginx mariadb-server mariadb-client \ 
php7.0-fpm php7.0-common php7.0-mbstring php7.0-xmlrpc \
php7.0-soap php7.0-gd php7.0-xml php7.0-intl php7.0-mysql \
php7.0-cli php7.0-mcrypt php7.0-ldap php7.0-zip php7.0-curl -y

Mariadb-Server konfigurieren

Für die Installation des Aktualisierungsdatenbankservers benötigen wir die Konfiguration für das mysql-Root-Passwort und andere Optionen

Dieser Befehl wird im Assistentenmodus ausgeführt, beantworten Sie einfach die Frage und übernehmen Sie sie mit 'Enter'

# mysql_secure_installation

...

Enter current password for root (enter for none): #< Enter
...

Change the root password? [Y/n] y #< type 'y' then Enter
New password: #< Type mysql root password
Re-enter new password: #< Retype mysql root password
Password updated successfully!
Reloading privilege tables..
... Success!

...

Remove anonymous users? [Y/n] y #< type 'y' then Enter
... Success!

...

Disallow root login remotely? [Y/n] y #< type 'y' then Enter
... Success!

...

Remove test database and access to it? [Y/n] y #< type 'y' then Enter
...

Reload privilege tables now? [Y/n] y #< type 'y' then Enter
...

Thanks for using MariaDB!

Mariadb-Dienst prüfen und Dienst beim Booten aktivieren

Stellen Sie sicher, dass der Mariadb-Server läuft, und bestätigen Sie alle Einstellungen, die Sie in den vorherigen Schritten vorgenommen haben.

Wenn keine Fehler vorhanden sind, ist der Mariadb-Server bereit, den Datenbankdienst bereitzustellen

# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-07-16 03:11:48 UTC; 4h 19min ago
Main PID: 10781 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2322)
CGroup: /system.slice/mariadb.service
└─10781 /usr/sbin/mysqld

Ersetzen Sie „Passwort“ durch Ihr Passwort, das Sie im vorherigen Schritt eingegeben haben

# mysql -uroot -p'password'

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.1.29-MariaDB-6 Ubuntu 18.04

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Sieht gut aus, aktivieren Sie jetzt den MySQL-Dienst beim Booten

# systemctl enable mariadb

php-fpm konfigurieren

Nginx unterstützt nicht die Ausführung von PHP wie mod_php in Apache.

Also müssen wir den php-fpm-Daemon installieren (wir haben es geschafft) und konfigurieren, der die Ausführung des PHP-Quellcodes unterstützt

Bearbeiten Sie die Datei /etc/php/7.0/fpm/php.ini mit einigen Parametern wie unten

# vim /etc/php/7.0/fpm/php.ini

upload_max_filesize = 100M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Asia/Ho_Chi_Minh

Überprüfen Sie die Konfigurationsdatei des php-fpm-Pools /etc/php/7.0/fpm/pool.d/www.conf

Stellen Sie sicher, dass Sie diese Konfiguration haben, lassen Sie andere Standardoptionen, wenn Sie überhaupt nicht gut sind:

user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data

Starten Sie jetzt einfach den php-fpm-Daemon neu und überprüfen Sie den Status. Aktivieren Sie dann den Dienst beim Booten

# systemctl restart php7.0-fpm
# systemctl status php7.0-fpm
# systemctl enable php7.0-fpm

Erstellen Sie mehrere WordPress-Sites

Beispiel:Wir haben 3 WordPress-Sites, Name:

- site1.beispiel.com
- site2.beispiel.com
- site3.example.com

Datenbank erstellen

Wir erstellen db für site1, site2, site3 und gewähren db user für diese Datenbanken

site1.example.com führt den Datenbanknamen „site1“ mit dem Datenbankbenutzer „site1“@„localhost“

aus
mysql -u root -p'password' -e "CREATE DATABASE site1;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site1.* TO 'site1'@'localhost' IDENTIFIED BY 'site1password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"

Führen Sie dieselbe Aktion für die Datenbank „site1, site2“ durch, ersetzen Sie „site1“ durch „site2, site3“. Ersetzen Sie das db-Benutzerpasswort, wenn Sie möchten

mysql -u root -p'password' -e "CREATE DATABASE site2;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site2.* TO 'site2'@'localhost' IDENTIFIED BY 'site2password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"
mysql -u root -p'password' -e "CREATE DATABASE site3;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site3.* TO 'site3'@'localhost' IDENTIFIED BY 'site3password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"

Nginx-Konfigurationsdatei für jede Site erstellen

Jedes Mal, wenn Sie eine neue Site hinzufügen möchten, fügen Sie einfach einen neuen Serverblock für diese Site hinzu

# cat > /etc/nginx/sites-available/site1.conf <<EOF
server {
listen 80;
root /var/www/site1;
index index.php index.html index.htm;
server_name site1.example.com www.site1.example.com;

client_max_body_size 100M;

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

location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
}
}
EOF

Führen Sie die gleiche Aktion für site2 durch und site3

Dann haben wir 3 neue Konfigurationsdateien in /etc/nginx/sites-available/. Sie können den Konfigurationsschacht cat überprüfen, um ihn zu überprüfen Befehl

#cat  /etc/nginx/sites-available/site2.conf
server {
listen 80;
root /var/www/site2;
index index.php index.html index.htm;
server_name site2.linoxide.com www.site2.linoxide.com;

client_max_body_size 100M;

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

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Dokumentstamm für jede Site erstellen

HINWEIS :Dokumentstammpfad muss in der Nginx-Konfiguration gleich sein (Parameter 'root' im server{}-Block) und besitzen den Besitzer www-data

Wenn Sie das Stammverzeichnis des Dokuments ändern möchten, ändern Sie einfach die Option „root“ in der Nginx-Konfiguration und erstellen Sie denselben Pfad.

# mkdir -p /var/www/site{1,2,3}
# chown -R www-data:www-data /var/www/site*

Aktiviere die nginx-Konfiguration für jede Seite und überprüfe die Konfiguration

Denn standardmäßig liest Nginx nur die Konfiguration in /etc/nginx/sites-enabled/

Wenn Sie also die Nginx-Konfiguration in /etc/nginx/sites-available/ lesen möchten

Erstellen Sie einfach einen Symlink wie diesen:

# ln -s /etc/nginx/sites-enabled/site1.conf /etc/nginx/sites-available/site1.conf
# ln -s /etc/nginx/sites-enabled/site2.conf /etc/nginx/sites-available/site2.conf
# ln -s /etc/nginx/sites-enabled/site3.conf /etc/nginx/sites-available/site3.conf

Überprüfen Sie dann die Nginx-Konfiguration, indem Sie diesen Befehl ausführen:

# nginx -t -c /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Konfiguration gut aussehen, Nginx-Daemon neu laden

# nginx -s reload -c /etc/nginx/nginx.conf

oder

# systemctl reload nginx

Wordpress-Quelle herunterladen und auf /var/www/site* platzieren

HINWEIS:Wenn Sie eine WordPress-Quelle haben, platzieren Sie sie einfach im Dokumentstammpfad, folgen Sie der Nginx-Konfiguration.

# cd /tmp
# wget http://wordpress.org/latest.tar.gz
# tar -xzvf latest.tar.gz
# cp -r wordpress/* /var/www/site1/
# cp -r wordpress/* /var/www/site2/
# cp -r wordpress/* /var/www/site3/
# chown -R www-data:www-data /var/www/site*

Initial für eine neue WordPress-Installation

Greifen Sie über den Browser auf jede Site zu, die Sie mit WordPress starten möchten. Nachdem Sie Ihre Sprache ausgewählt haben, klicken Sie auf "Weiter". '-Schaltfläche

Geben Sie dann den Datenbanknamen, den Datenbankbenutzer und das Datenbankpasswort ein, um die Konfiguration für jede Site auszuführen, wie unten

Senden Sie dann Ihre Konfiguration und führen Sie die Installation aus, indem Sie auf „Installation ausführen“ klicken ' Schaltfläche.

Lesen Sie auch:

  • So installieren Sie die WordPress-Befehlszeile mit WP-CLI
  • So installieren Sie LEMP auf Ubuntu 18.04

Mit Nginx, Mysql und php-fpm können Sie jetzt viele WordPress-Sites auf einem Server ausführen. Nicht nur WordPress, sondern Sie können die gleichen Schritte auch für andere CMS-Quellen ausführen.

Im nächsten Artikel erklären und führen wir, wie Sie die Konfiguration von Nginx und PHP-FPM für Webserver optimieren, auf denen Nginx und PHP-FPM ausgeführt werden


Ubuntu
  1. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  2. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  3. So installieren Sie Nextcloud mit Nginx auf Ubuntu 18.04 LTS

  4. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  5. So installieren Sie SuiteCRM mit Nginx unter Ubuntu 16.04

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie WordPress mit Nginx auf Ubuntu

So installieren Sie Nextcloud 13 auf Ubuntu 16.04 mit Nginx

So installieren Sie WordPress mit Nginx in Ubuntu 20.04

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04