WordPress je bezplatný a otevřený systém pro správu obsahu napsaný v PHP a spárovaný s databází MySQL nebo MariaDB. WordPress je dnes jedním z nejpopulárnějších CMS.
WordPress.com je hostovaná platforma software-as-a-service (SaaS), která vám umožňuje vytvářet webové stránky pomocí stavebních bloků WordPress. Hostování vašeho webu na webu WordPress vás bude stát.
Software WordPress je zdarma a má otevřený zdroj, ale k jeho zprovoznění je potřeba nastavit hosting. V této příručce se zabýváme touto možností, nastavením WordPressu v Ubuntu 20.04.
Předpoklady
Abychom mohli postupovat podle tohoto průvodce, potřebujeme následující:
- Aktuální server Ubuntu 20.04 s připojením k internetu
- Přístup root na serveru nebo uživatel s přístupem sudo
- Znalost používání terminálu Linux
Kroky potřebné k tomu, aby WordPress fungoval v Ubuntu 20.04
- Ujistěte se, že je systém aktuální
- Instalace databázového serveru mysql 8 a vytvoření uživatele WordPress
- Nainstalujte webový server Nginx
- Nainstalujte PHP se závislostmi
- Nakonfigurujte nastavení PHP a PHP FPM
- Stahování a konfigurace WordPress
- Nastavte Nginx pro poskytování obsahu wordpress
- Otestujte instalaci WordPress
1. Ujistěte se, že je systém aktuální
Než budete pokračovat, ujistěte se, že je náš server aktualizován. Tyto příkazy použijte k 1. aktualizaci úložišť serveru, 2. aktualizaci serverových balíčků na nejnovější verze:
# Update repos
sudo apt update
# Upgrade packages
sudo apt -y upgrade
2. Instalace databázového serveru mysql 8 a vytvoření uživatele WordPress
Požadovaný balíček mysql-server není přítomen ve výchozích úložištích Ubuntu. Takže to musíme nastavit.
Tým mysql poskytuje ke stažení .deb
soubor, který nakonfiguruje úložiště pro instalaci serveru mysql 8. Stáhněte si jej pomocí tohoto příkazu:
curl -LO https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb
Jakmile je stahování dokončeno, musíme nainstalovat stažený soubor deb. K instalaci použijte tento příkaz:
sudo dpkg -i ./mysql-apt-config_0.8.19-1_all.deb
Tím se otevře konfigurační okno s výzvou k výběru verze serveru mysql a dalších komponent, jako je cluster, sdílené klientské knihovny nebo pracovní plocha MySQL
Protože nás zajímá pouze instalace serveru Mysql, ponechte výchozí nastavení a klikněte na OK pokračovat.
Instalace serveru mysql
Nyní, když byly repozitáře přidány tak, aby zahrnovaly server mysql, můžeme nyní nainstalovat. Obnovte úložiště, abyste získali nejnovější informace z přidaného úložiště pomocí tohoto příkazu:
$ sudo apt update
Poté nainstalujte server Mysql 8 pomocí tohoto příkazu:
sudo apt install -y mysql-server
Zadejte přihlašovací údaje správce a systém nainstaluje serverový balíček MySQL, klientské balíčky a společné soubory databáze.
Instalace vás vyzve k zadání a potvrzení uživatele root a hesla pro databázi MySQL.
Poté budete vyzváni k výběru pluginu pro ověřování. Doporučuje se, abyste zvolili použití silného hesla:
Poté bude nastaveno nové heslo a služba znovu načtena.
Pomocí tohoto příkazu ověřte, že je mysql server spuštěn a běží:
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 13:08:22 UTC; 2min 23s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 45123 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 45173 (mysqld)
Status: "Server is operational"
Tasks: 37 (limit: 4710)
Memory: 353.0M
CGroup: /system.slice/mysql.service
└─45173 /usr/sbin/mysqld
Sep 28 13:08:21 ip-172-26-11-229 systemd[1]: Starting MySQL Community Server...
Sep 28 13:08:22 ip-172-26-11-229 systemd[1]: Started MySQL Community Server.
Active: active (running) since ...
část výše ukazuje, že aplikace je v provozu.
Připojte se k serveru a vytvořte uživatele
Po úspěšné instalaci mysql-serveru se připojte k serveru a vytvořte uživatele WordPress.
Připojte se k serveru mysql s heslem, které jsme poskytli dříve:
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Poté vytvořte databázi, uživatele a heslo:
mysql> create database wordpress_db;
Query OK, 1 row affected (0.01 sec)
mysql> create user 'wordpress_user'@'%' identified by 'S0mStrongPa$$word';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on wordpress_db.* to 'wordpress_user'@'%';
Query OK, 0 rows affected (0.00 sec)
3. Nainstalujte webový server Nginx
Nginx nebude fungovat, pokud je nainstalován a spuštěn Apache. Protože budeme používat Nginx, použijte tento příkaz k odstranění apache, pokud je nainstalován v našem systému:
$ sudo apt remove apache2 -y
Instalace Nginx:
sudo dnf -y install nginx
Po dokončení instalace spusťte Nginx a povolte jeho automatické spuštění po restartu
systemctl start nginx
systemctl enable nginx
Zkontrolujte stav Nginx:
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
Docs: man:nginx(8)
Main PID: 56990 (nginx)
Tasks: 3 (limit: 4710)
Memory: 3.7M
CGroup: /system.slice/nginx.service
├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─56991 nginx: worker process
└─56992 nginx: worker process
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>
Chcete-li potvrdit, že Nginx skutečně běží a je dosažitelný, použijte tento příkaz:
curl http://server_ip/
Kde server_ip
je ip vašeho serveru. Pokud z nějakého důvodu neznáte veřejnou IP svého serveru, použijte tuto kontrolu
curl -4 icanhazip.com
Měli byste vidět výchozí stránku Nginx.
4. Nainstalujte PHP se závislostmi
Protože výchozí úložiště obsahují php verze 7.4, nainstalujme jej pomocí tohoto příkazu:
sudo apt install php -y
Nainstalovanou verzi potvrďte příkazem php -v
:
~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Dále nainstalujeme závislosti php. Závislosti php jsou dostupné jako balíčky na úrovni operačního systému s předponou php-
. Umožňuje nainstalovat závislosti, které WordPress potřebuje, pomocí tohoto příkazu:
sudo apt install -y \
php-common \
php-mbstring \
php-gd \
php-intl \
php-xml \
php-json \
php-mysqlnd \
php-fpm
5. Nakonfigurujte nastavení PHP a PHP FPM
Globální nastavení php pro nainstalovanou verzi php jsou uložena v /etc/php/7.4/cli/php.ini
soubor. Pojďme aktualizovat tato nastavení.
Otevřete php.ini
s vaším oblíbeným textovým editorem použiji vim
sudo vim /etc/php/7.4/cli/php.ini
Poté vyhledejte následující proměnné a aktualizujte hodnoty, jak je uvedeno níže:
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 32M
date.timezone = Africa/Nairobi
6. Stažení a konfigurace WordPress
Nyní, když máme servery nastavené, stáhneme a nainstalujeme WordPress na server. Nejnovější verzi WordPress si můžete stáhnout z jejich oficiálních webových stránek.
Vytvořme adresář, kde se bude náš obsah WordPress zobrazovat na této cestě /var/www/example.citizix.com
.
sudo mkdir /var/www/example.citizix.com
Ujistěte se, že uživatel webu vlastní obsah:
sudo chown -R www-data.www-data /var/www/example.citizix.com
Stáhněte si nejnovější obsah WordPress:
cd /tmp
curl -LO https://wordpress.org/latest.zip
Ukázkový výstup:
$ curl -LO https://wordpress.org/latest.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15.7M 100 15.7M 0 0 6650k 0 0:00:02 0:00:02 --:--:-- 6647k
$ ls
latest.zip
Extrahujte a přesuňte obsah do adresáře našeho serveru. Ujistěte se, že máte unzip
příkaz nebo instalaci pomocí sudo apt install unzip
.
unzip latest.zip
sudo mv wordpress/* /var/www/example.citizix.com
# Confirm content with
ls /var/www/example.citizix.com
Konfigurace WordPress
Nyní, když byl obsah WordPress zkopírován do adresáře webu, můžeme aktualizovat konfiguraci db pomocí poskytnutého ukázkového souboru.
Přepnout do adresáře webu:
cd /var/www/example.citizix.com/
Zkopírujte wp-config-sample
soubor do wp-config.php
.
cp wp-config-sample.php wp-config.php
Otevřete konfigurační soubor v textovém editoru:
vim wp-config.php
Aktualizujte tyto proměnné:DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
:
<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'xxx' );
/** MySQL database username */
define( 'DB_USER', 'xxx' );
/** MySQL database password */
define( 'DB_PASSWORD', 'xxx' );
/** MySQL hostname */
define( 'DB_HOST', 'xxx' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
Po dokončení uložte textový soubor.
Udělejte z webového uživatele vlastníka adresáře WordPress, aby měl přístup a mohl soubory obsluhovat.
sudo chown -R www-data:www-data /var/www/example.citizix.com
7. Nastavte Nginx pro poskytování obsahu wordpress
Nyní, když je konfigurace na místě, pojďme nakonfigurovat virtuálního hostitele Nginx, aby obsluhoval obsah, který jsme právě přidali na /var/www/example.citizix.com
Pojďme vytvořit virtuální web v adresáři, kde Nginx poskytuje obsah zde /etc/nginx/conf.d
:
sudo vim /etc/nginx/conf.d/example.citizix.com.conf
Přidejte následující obsah:
server {
listen 80;
server_name example.citizix.com;
root /var/www/example.citizix.com;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Pomocí tohoto příkazu otestujte, zda je přidaná konfigurace v pořádku:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Jakmile potvrdíte, že je vše v pořádku, restartujte Nginx, aby se změny projevily:
sudo systemctl restart nginx
8. Nakonec otestujte instalaci WordPress
Po provedení všech výše uvedených kroků je instalace z příkazového řádku dokončena. Můžete otevřít svůj oblíbený webový prohlížeč a nasměrovat jej na http://example.citizix.com/. Měli byste dostat následující obrazovku s výzvou, abyste mohli začít s nastavením instalace WordPress:
[Obrazovka zde]
Při prvním nastavení WordPressu by mělo být snadné postupovat podle výzev.