Статьи

Создание VPS с WordPress на стеке LEMP

Поскольку эффективность сайта является ключевым показателем в алгоритмах ранжирования Google, все больше пользователей WordPress обращаются к выделенному управляемому хостингу WordPress, такому как WP Engine, Media Temple или SiteGround.

Тем не менее, для некоторых это может быть дорогостоящим решением, стоимость которого начинается от $ 30 / сайт в месяц.

Если вы знакомы с базовым администрированием сервера и WordPress, можно настроить собственный недорогой хостинг для небольших веб-сайтов WordPress, который соответствует производительности управляемых провайдеров хостинга WordPress с использованием стека LEMP (Linux, nginx, MySQL, PHP).

Создание виртуального частного сервера DigitalOcean (VPS)

В этой статье используется DigitalOcean, но вы можете в равной степени использовать такие услуги, как Linode, Vultr или ряд других провайдеров. Другие разделы этого руководства будут в равной степени применяться независимо от того, кого вы используете.

Сначала зарегистрируйте аккаунт на https://cloud.digitalocean.com/registrations/new .

По завершении нажмите кнопку « Создать каплю» :

Создать капельку

Мы будем использовать следующие настройки для нашего VPS:

  • Droplet Hostname: введите что-то значимое — возможно, название вашей компании или веб-сайта
  • Выберите изображение: выберите Ubuntu 14.04 x64 — по умолчанию
  • Выберите размер. Начнем с варианта за 5 долларов США в месяц, который включает 512 МБ, 1 ЦП, 20 ГБ SSD и 1000 ГБ.
  • Выберите регион: выберите регион, подходящий для вашего бизнеса. Если вы находитесь в США, выберите регион США. Если вы находитесь в Великобритании, выберите регион Великобритании.
  • Доступные настройки: рекомендуется включить параметр « Резервное копирование» , поскольку он будет делать ночные снимки вашего сервера. Если что-то пойдет не так, вы можете вернуться к резервной копии предыдущего дня.

Имя хоста капли

Нажмите кнопку « Создать каплю» , и вы увидите на экране прогресс, пока создается ваш VPS (капля).

Создание капли

После завершения вы увидите свой VPS на экране. Запишите IP-адрес:

VPS

Вы также получите электронное письмо с вашим корневым паролем, которое вам также понадобится.

Вход в Ваш VPS

Далее давайте войдем в наш VPS.

ПРИМЕЧАНИЕ. В нашем примере для простоты мы будем использовать пароль для входа на наш сервер. Я бы порекомендовал изучить использование ключей SSH для дополнительной безопасности.

Windows

Для пользователей Windows загрузите PuTTY . После загрузки запустите PuTTY и введите следующую информацию в появившемся диалоговом окне:

  • Имя хоста: введите IP-адрес, который вы указали выше
  • Тип подключения: SSH

Конфигурация PuTTY

Нажмите «Открыть», и вы должны получить предупреждение системы безопасности. Это говорит нам о том, что ключ хоста сервера является новым, и поэтому спрашивает нас, хотим ли мы доверять ему. Нажмите «Да».

PuTTY Security Alert

Далее, давайте войдем в систему как пользователь root. Введите rootвхода в систему как и нажмите «Enter». Затем вам будет предложено ввести пароль; введите пароль, который был отправлен вам по электронной почте. Не беспокойтесь, если вы не видите пароль при его вводе — это для безопасности. Нажмите «Enter», когда закончите.

Mac OS X

Для пользователей Mac OS X откройте терминал и введите следующую команду, заменив 123.123.123.123

ssh [email protected]

Вам будет предложено принять ключ сервера — введите yes

Ключ сервера

Затем введите свой пароль и нажмите «Ввод».

Изменение корневого пароля

При первом входе на сервер вам может быть предложено изменить пароль root:

Root Password

Введите текущий пароль, а затем введите новый пароль при появлении запроса.

Пароль UNIX

Установка стека LEMP в Ubuntu

Для работы WordPress требуется Apache или nginx, PHP и MySQL, а также несколько других компонентов.

Ubuntu использует менеджер пакетов, который можно рассматривать как магазин приложений на основе командной строки. Прежде чем мы начнем скачивать и устанавливать компоненты с него, нам нужно обновить его каталог, введя следующую команду:

sudo apt-get update

После завершения мы можем установить наши компоненты:

sudo apt-get install nginx mysql-server php5-fpm php5-mysql php5-curl php5-gd php5-cgi

Вас спросят, хотите ли вы продолжить — введите Y и нажмите ввод.

Компоненты

Настройка MySQL

В процессе установки MySQL попросит вас установить новый пароль для пользователя корневой базы данных. Обратите внимание, что это отличается от имени пользователя root для сервера. В целях безопасности я настоятельно рекомендую использовать этот пароль, отличный от пароля для входа на сервер.

После завершения установки нам нужно выполнить еще две команды для завершения установки MySQL.

Сначала введите:

sudo mysql_install_db

Затем введите:

sudo mysql_secure_installation

  • Введите текущий пароль root для MySQL, который вы установили выше.
  • Введите n
  • Введите Y
  • Введите Y
  • Введите Y
  • Введите Y

Наконец, нам нужно создать пользователя и базу данных MySQL:

mysql -u root -p

Введите свой пароль MySQL, когда будет предложено, и если правильно, вы увидите приглашение MySQL:

MySQL

Давайте создадим нашу новую базу данных и заменим «пароль» уникальным паролем:

CREATE DATABASE wordpress;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
exit

Настройка PHP

Нам нужно сделать небольшое изменение, чтобы PHP работал с nginx:

sudo nano /etc/php5/fpm/php.ini

Настройка PHP

Удерживая нажатой CtrlW Войти:

fix_pathinfo

Настройка PHP

Измените следующую строку:

;cgi.fix_pathinfo=1

чтобы:

cgi.fix_pathinfo=0

Чтобы сохранить наши изменения, удерживайте CtrlXY

Настройка nginx

Нам нужно изменить конфигурацию nginx, чтобы все работало с WordPress:

sudo nano /etc/nginx/sites-available/default

Настройка nginx

Давайте удалим текущую конфигурацию. Продолжайте нажимать CtrlK

Удаление текущей конфигурации

Затем скопируйте приведенную ниже конфигурацию nginx и вставьте ее в окно терминала / PuTTY, не забывая сменить domain.com на свое доменное имя:

server {
# Listen on port 80
listen 80 default_server;

Корень документа

root /usr/share/nginx;

Домен (ы)

server_name www.domain.com;

Показатель

index index.php;

Сжатие GZIP

gzip on;
gzip_types text/plain image/svg+xml text/javascript application/x-javascript text/xml text/css;
gzip_vary on;

Кэш-память статических файлов

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff)$ {
expires 1y;
}

Загрузить файл

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

# Pass the PHP scripts to FastCGI server
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Чтобы сохранить наши изменения, удерживайте CtrlXY

Создание входа в SSH

По соображениям безопасности мы не хотим запускать WordPress от имени пользователя root. Давайте продолжим и создадим нового пользователя сервера для этой цели:

sudo adduser wordpress

Введите пароль для этого пользователя, а затем просто нажмите «Ввод» в других полях.

Создание входа в SSH

Затем добавьте нашего нового пользователя wordpresswww-data Это группа, используемая PHP, поэтому, когда мы пойдем загружать файлы WordPress, они будут работать правильно:

sudo usermod -a -G wordpress www-data

Нам нужно указать PHP, какой пользователь и группа могут запускать файлы PHP:

sudo nano /etc/php5/fpm/pool.d/www.conf

Прокрутите вниз, пока не найдете строку user = www-group

user = wordpress

Настройте логин SSH

Чтобы сохранить наши изменения, удерживайте CtrlXY

Перезагрузите сервер

Чтобы убедиться, что все работает, давайте перезагрузим сервер:

reboot

Войти и установить WordPress

Чтобы установить WordPress, давайте снова войдем на сервер и затем введите следующие команды:

cd /usr/share/nginx
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
mv wordpress/* ./
rm latest.tar.gz
rmdir wordpress

Вышеупомянутые команды загружают WordPress с wordpress.org, распаковывают / распаковывают его в папку /usr/share/nginx/wordpress Затем мы перемещаем содержимое этой папки обратно в /usr/share/nginx

Чтобы избежать проблем с правами доступа к файлам при попытке установки плагинов или загрузки изображений, давайте рекурсивно установим права доступа к корневой корневой папке nginx для пользователей wordpresswww-data

sudo chmod g+w /usr/share/nginx -R
sudo chown -R wordpress:www-data /usr/share/nginx

Затем, в вашем веб-браузере, загрузите http://123.123.123.123http://www.domain.com

Если все работает, вы увидите знакомый экран конфигурации WordPress. Нажмите Пойдем! , а затем введите следующую информацию на следующем экране:

  • Название базы данных: WordPress
  • Имя пользователя: WordPress
  • Пароль: [пароль, который вы ввели при настройке MySQL]
  • Хост базы данных: localhost

Конфигурация WordPress

Нажмите Submit , и если данные верны, вам будет предложено запустить установку:

Запустить установку

Введите «Название сайта», «Имя пользователя», «Пароль» и «Адрес электронной почты», прежде чем нажать « Установить WordPress».

Установка WordPress

Это оно!

Вывод

Мы успешно создали VPS на DigitalOcean и подключились к нему через SSH. Затем мы установили nginx, PHP и MySQL и настроили каждый для работы с WordPress.

Мы также настроили пользователя сервера и предоставили ему разрешения на нашу установку WordPress.

Наконец, мы подтвердили, что все работает, выполнив процесс установки WordPress.