Как настроить сайт WordPress на своих серверах (с Ubuntu и NGINX) — CloudSavvy IT

Хотя вы всегда можете заплатить кому-то еще ежемесячную плату за управление своим экземпляром WordPress, самостоятельный хостинг имеет большой смысл для многих людей, у которых есть существующее оборудование, которым можно воспользоваться, или просто желающих создать интересный проект для своего блога. Мы покажем, как установить и настроить базовый сайт WordPress в Ubuntu Linux с помощью NGINX.
Установка зависимостей
Во-первых, нам нужно установить NGINX. Обновить apt
и установите его:
sudo apt update sudo apt install nginx
Если у вас включен брандмауэр, например UFW, вам нужно его открыть:
sudo ufw allow 'Nginx HTTP'
Мы настроим NGINX после установки WordPress. А пока нам нужно создать базу данных MySQL для использования WordPress.
Если у вас не установлен MySQL, вы можете получить его из apt
. Обязательно бежать mysql_secure_installation
после его установки, чтобы заблокировать его. Вы можете прочитать наше руководство по общей безопасности базы данных для получения дополнительной информации, но пока MySQL работает на localhost
, все должно быть в порядке.
sudo apt install mysql-server sudo mysql_secure_installation
Создайте базу данных для использования WordPress. Вам не нужно настраивать таблицы или что-то еще, достаточно пустой базы данных:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Затем создайте пользователя с именем wordpressuser
, и предоставьте ему доступ к базе данных. Обязательно смените пароль.
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'wordpressuser'@'localhost'; FLUSH PRIVILEGES;
WordPress работает на PHP, поэтому для его работы потребуется установленный PHP. Установите его вместе со следующими расширениями:
sudo apt install php-fpm php-mysql sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
И перезапустите службу PHP, чтобы убедиться, что она актуальна с новыми расширениями. Обратите внимание, что здесь может потребоваться изменить номер версии.
sudo systemctl restart php7.4-fpm.service
Установка WordPress
Загрузите последнюю сборку WordPress с их сайта:
cd /tmp curl -LO https://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz
Затем скопируйте образец конфигурации в то место, откуда WordPress фактически читает:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Переместите временный каталог в правильное место для установки и chown
данные:
sudo cp -a /tmp/wordpress/. /var/www/wordpress sudo chown -R www-data:www-data /var/www/wordpress
Вам нужно будет установить соли, которые используются для безопасности и управления паролями. Вы можете получить новый набор солей из API WordPress:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Затем откройте файл конфигурации WordPress и вставьте значения в:
sudo nano /var/www/wordpress/wp-config.php
Пока вы находитесь в этом файле, вам необходимо настроить параметры базы данных.
define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password'); define('FS_METHOD', 'direct');
Как только это будет сделано, WordPress должен быть настроен, и нам нужно будет настроить NGINX для обслуживания контента.
Настройка NGINX
NGINX использует файлы конфигурации в /etc/nginx/sites-available/
для настройки разных конечных точек. Создайте новый для своего сайта в этой папке и вставьте следующее:
# Upstream to abstract backend connection(s) for php upstream php { server unix:/var/run/php/php7.4-fpm.sock; server 127.0.0.1:9000; } server { ## Your website name goes here. server_name domain.tld; ## Your only path reference. root /var/www/wordpress; ## This should be in your http block and if it is, it's not needed here. index index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { # This is cool because no php is touched for static content. # include the "?$args" part so non-default permalinks doesn't break when using query string try_files $uri $uri/ /index.php?$args; } location ~ .php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass php; #The following parameter can be also included in fastcgi_params file fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
Обратите внимание, что вам нужно будет ввести свою информацию для имени хоста и других настроек, а также обновить версию PHP, если вы используете более новую. Вам нужно будет сохранить это в sites-available
, а затем сделать символьную ссылку на sites-enabled
включить это.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Как только он будет включен, перезапустите NGINX, и вы увидите WordPress, если посетите сайт в своем браузере. Вам нужно будет выполнить пошаговое руководство по первоначальной настройке.
sudo service nginx restart
Теперь вы сможете просматривать свою панель управления в любое время в https://example.com/wp-admin/
.
Затем вам нужно настроить SSL для безопасных соединений на вашем сайте. Вы можете сделать это бесплатно, используя certbot
, интерфейс командной строки для бесплатных сертификатов LetsEncrypt.
sudo apt-get install certbot sudo apt install python3-certbot-nginx
Затем запустите certbot:
sudo certbot nginx -certonly
После этого вам нужно будет перезапустить NGINX.
sudo service nginx перезапуск
Настройка вашего сайта
Поздравляю! У вас есть работающий сайт WordPress. Наверное, с темой по умолчанию это выглядит ужасно. Первое, что вам нужно сделать, это изменить тему, что вы можете сделать на панели инструментов:
Какую бы тему вы ни выбрали, вам нужно будет активировать ее на вкладке внешнего вида.
Затем вы можете настроить параметры и стиль, посетив сайт и нажав «Настроить» в заголовке. Одна из лучших вещей, которую вы можете сделать, — это добавить на сайт полностью настраиваемый CSS, который может изменить любой элемент на странице.
Если вы хотите что-то отредактировать в теме и не возражаете возиться с PHP, вы можете редактировать файлы темы напрямую. Например, я отредактировал свой файл темы, чтобы разметить сетку с двумя сторонами сообщений, а не просто список сообщений.
cd /var/www/wordpress/wp-content/themes/dark-press/ sudo nano index.php