GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat více WordPress s Nginx na Ubuntu 18.04

Představte si, že pokud máte pouze jeden server, ale 2 nebo více webů WordPress, myslíte si, že ke spuštění každého webu wordpress na něm potřebujete více serverů. To je v pořádku, ale co takhle, když nemáte velké náklady na údržbu mnoha serverů.

Tento článek vám ukáže, jak spustit více webových stránek WordPress na jednom hostitelském serveru pomocí Nginx + Mariadb + php-fpm na Ubuntu 18.04 LTS.

Předpoklady

1) Nginx pro webový server

2) Mariadb pro databázi mysql

3) php-fpm pro php FastCGI Process Manager

Níže uvedený příkaz aktualizuje váš systém a přidá nové úložiště pro balíčky php

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

Nainstalujte Nginx, Mariadb a php-fpm

Nainstalujeme Webserver Nginx, mysql server Mariadb a php7-fpm a také rozšíření php7 potřebné pro provoz webu WordPress

# 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

Konfigurace serveru Mariadb

Pro obnovení instalace databázového serveru potřebujeme konfiguraci pro heslo root mysql a další možnosti

Tento příkaz běží v režimu průvodce, stačí odpovědět na otázku a použít ji pomocí '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!

Zkontrolujte službu Mariadb a povolte službu při spouštění

Ujistěte se, že mariadb-server běží, a potvrďte všechna nastavení, která jste provedli v předchozích krocích.

Pokud nejsou žádné chyby, Mariadb-server je připraven sloužit databázové službě

# 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

Nahraďte „heslo“ svým heslem, které jste zadali v předchozím kroku

# 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)]>

Vypadá dobře, nyní povolte službu mysql při spouštění

# systemctl enable mariadb

Konfigurace php-fpm

Nginx nepodporuje spouštění php jako mod_php v Apache.

Potřebujeme tedy nainstalovat (udělali jsme to) a nakonfigurovat démona php-fpm, který podporuje spouštění zdrojového kódu php

Upravte soubor /etc/php/7.0/fpm/php.ini s některými parametry jako níže

# 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

Zkontrolujte konfigurační soubor fondu php-fpm /etc/php/7.0/fpm/pool.d/www.conf

Ujistěte se, že tato konfigurace má, ponechte výchozí ostatní možnosti, pokud vám to vůbec nejde:

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

Nyní stačí restartovat démona php-fpm a zkontrolovat stav, poté povolit službu při spouštění

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

Vytvořte více stránek wordpress

Máme například 3 weby wordpress, název:

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

Vytvořit databázi

Vytvoříme db pro web1, web2, web3 a přidělíme uživatelům db pro tyto databáze

site1.example.com spustí databázi s názvem 'site1' s uživatelem databáze 'site1'@'localhost'

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;"

Proveďte stejnou akci pro databázi site1, site2, nahraďte 'site1' za site2, site3. Pokud chcete, nahraďte uživatelské heslo db

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;"

Vytvořte konfigurační soubor nginx pro každý web

Pokaždé, když chcete přidat nový web, stačí přidat nový blok serveru pro daný web

# 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

Proveďte stejnou akci pro web2 a web3

Poté budeme mít 3 nové konfigurační soubory v /etc/nginx/sites-available/. Můžete zkontrolovat a ověřit konfigurační pozici cat příkaz

#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;
}
}

Vytvořte kořen dokumentu pro každý web

POZNÁMKA :Kořenová cesta dokumentu musí být stejná v konfiguraci Nginx (parametr 'root' v bloku serveru{}) a vlastníkem je www-data

Pokud chcete změnit kořenový adresář dokumentu, stačí změnit volbu 'root' v konfiguraci nginx a vytvořit stejnou cestu.

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

Povolte konfiguraci nginx pro každý web a zkontrolujte konfiguraci

Protože ve výchozím nastavení Nginx čte konfiguraci pouze v /etc/nginx/sites-enabled/

Pokud tedy chcete Nginx přečíst konfiguraci v /etc/nginx/sites-available/

Jednoduše vytvořte symbolický odkaz, jako je tento:

# 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

Poté ověřte konfiguraci Nginx spuštěním tohoto příkazu:

# 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

Konfigurace vypadá dobře, znovu načtěte démona Nginx

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

nebo

# systemctl reload nginx

Stáhněte si zdroj a umístění wordpressu do /var/www/site*

POZNÁMKA:Pokud máte zdroj wordpress, stačí jej umístit do kořenové cesty dokumentu podle konfigurace nginx.

# 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*

Iniciála pro novou instalaci wordpress

Ke každému webu, na kterém chcete spustit WordPress, přistupte pomocí prohlížeče. Po výběru jazyka klikněte na 'Pokračovat tlačítko '

Poté vyplňte název databáze, uživatele databáze, heslo databáze pro spuštění konfigurace pro každý web, jak je uvedeno níže

Poté odešlete konfiguraci a kliknutím na možnost Spustit instalaci spusťte instalaci '.

Přečtěte si také:

  • Jak nainstalovat příkazový řádek WordPress pomocí WP-CLI
  • Jak nainstalovat LEMP na Ubuntu 18.04

Nyní, s Nginx, Mysql a php-fpm, můžete provozovat mnoho stránek WordPress na jednom serveru. Nejen WordPress, ale také můžete udělat stejné kroky pro jiný zdroj cms.

V příštím článku vysvětlíme a provedeme optimalizaci nginx, konfigurace php-fpm pro webový server se systémem Nginx a php-fpm


Ubuntu
  1. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  2. Jak nainstalovat WordPress pomocí Nginx na Ubuntu 18.04

  3. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  1. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  2. Jak nainstalovat SuiteCRM s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  1. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Piwik s Nginx na Ubuntu 15.10