Установите WordPress на OpenBSD 6.2
Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом
Обычно виртуальный сервер Vultr используется для размещения веб-сайтов Wordpress. В этом руководстве показано, как автоматизировать настройку виртуального сервера с нуля (используя Ansible) и развернуть несколько независимых веб-сайтов Wordpress (используя Webmin / Virtualmin). Virtualmin / Webmin - это графический интерфейс пользователя, который позволяет управлять развертыванием нескольких учетных записей виртуальных серверов на одном компьютере (в комплекте со стеком LAMP / LEMP). Virtualmin очень похож на cPanel и Plesk, и в этом уроке мы будем использовать бесплатную версию GPL. После первоначальной настройки сервера Vultr и установки Virtualmin вы можете очень быстро настроить несколько виртуальных серверов из интерфейса Virtualmin и напрямую установить Wordpress на этот виртуальный сервер вместе с его собственным доменным именем.
В этом руководстве вместо ручного ввода длинного списка команд мы будем использовать Ansible. Ansible - это инструмент автоматизации на основе Python, который позволяет надежно и многократно автоматизировать задачи сервера. Это означает, что, следуя этому руководству, вы сможете развернуть другой сервер таким же образом, выполнив всего пару команд.
Установите Ansible на свой локальный компьютер или другой сервер.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible работает, войдя на ваш сервер через SSH. Доступ по SSH наиболее безопасен, если мы используем ключи, а не пароль. Давайте сначала сгенерируем пару открытого и закрытого ключей.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
В ssh_keys
каталоге теперь будет два файла ssh_keys
и ssh_keys.pub
. ssh_keys
это ваш файл закрытого ключа и должен храниться в безопасности. Теперь вы можете открыть ssh_keys.pub
, который содержит открытый ключ.
Войдите в веб-панель Vultr и нажмите Deploy New Server
.
Выберите регион, Тип сервера (Ubuntu 16.04), Размер сервера, а затем в части 6 ( SSH keys
) нажмите Add New
. На следующей странице вставьте свой открытый ключ, назовите его и нажмите Add SSH key
. Наконец убедитесь, что ключ выбран и нажмите Deploy now
.
После завершения развертывания сервера вам будет показан его IP-адрес. Вам нужно будет войти на DNS-сервер вашего доменного имени и указать его по этому адресу.
Файлы автоматизации Ansible называются roles
. Сначала мы настроим структуру каталогов (внутри ansible
директории, которую вы только что создали на шаге 1), и основные файлы.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Отредактируйте hosts
файл, чтобы он содержал следующее, заменив ip address
сервер, который вы только что создали. Ansible использует python 2, который Ubuntu 16.04 не установил по умолчанию. В hosts
файле мы говорим Ansible использовать Python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Отредактируйте deploy.yml
файл, чтобы он содержал следующее. Мы будем использовать root
пользователя.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Отредактируйте /group_vars/all
файл, чтобы он содержал следующее. Эти переменные сообщают Ansible расположение ваших ключей SSH, параметров файла подкачки, вашего полного доменного имени и пароля root. Не забудьте включить файл в систему контроля версий, поскольку он содержит ваш пароль в виде открытого текста.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Отредактируйте common/handlers/main.yml
файл, чтобы он содержал следующее.
- name: restart sshd
service: name=ssh state=restarted
Ansible автоматизации легче понять, если мы разбить его на задачи. Давайте создадим файлы для каждой из наших задач в процессе.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
должен указывать на каждый файл, содержащий команды Ansible, поэтому отредактируйте его так, чтобы он содержал следующее.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Первым шагом в настройке нового сервера является обновление кэша репо и установка часового пояса. Отредактируйте common/handlers/setup.yml
файл, чтобы он содержал следующее.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Теперь мы дадим пользователю root пароль (который нам потребуется для доступа к веб-интерфейсу virtualmin), но отключим вход по паролю через SSH (поскольку мы используем метод аутентификации с более безопасными ключами). Изменить, users.yml
чтобы содержать следующее.
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
Для безопасности нам нужен брандмауэр. Мы будем использовать несложный брандмауэр, чтобы разрешить SSH-доступ через порт 22
, веб-доступ через порт 80
и безопасный веб-доступ через порт 443
. Отредактируйте ufw.yml
файл, чтобы он содержал следующее.
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
При желании вы можете включить файл подкачки. Это важно, если на вашем сервере менее 2 ГБ ОЗУ, чтобы избежать сбоев памяти. Изменить, swap.yml
чтобы содержать следующее.
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Virtualmin имеет свой собственный установочный файл, который может быть загружен и запущен Ansible. Здесь мы используем минимальную установку ( LINK
). Дополнительные пункты предназначены для настройки пароля сервера MySQL, который не устанавливается при установке Virtualmin. Нам нужно временно остановить MySQL и добавить каталог аутентификации перед сменой пароля. Изменить, virtualmin.yml
чтобы содержать следующее.
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
Роль Ansible теперь закончена, и мы готовы к развертыванию.
Теперь из папки ansible мы можем просто выполнить следующую команду, и Ansible выполнит все задачи, которые мы создали автоматически. При первом подключении вы получите предупреждение о ключе SSH, просто введите " yes
" в командной строке.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Если мы хотим использовать другой сервер, мы можем просто изменить IP-адрес в файле hosts и снова запустить эту команду, чтобы выполнить точно такую же настройку.
Установка завершена, и теперь мы можем перейти к https://192.0.2.1:10000
(используйте IP-адрес вашего сервера). Ваш браузер выдаст предупреждение безопасности, потому что сертификат самоподписан, поэтому нажмите advanced
и добавьте исключение. Вам будет представлена страница входа. Это имя пользователя root
, а пароль - тот, который вы ввели в group_vars/all
файл на шаге 3. При первом входе в Virtualmin вам будет представлен мастер после установки. Вы можете пройти через эти настройки вручную или нажать, cancel
чтобы принять значения по умолчанию.
Чтобы запустить ваш первый сервер Wordpress, на панели управления Virtualmin нажмите Create Virtual Server
. Вам нужно будет ввести доменное имя, описание и пароль администратора. Доменное имя должно отличаться от полного доменного имени Virtualmin, и вам нужно будет указать запись DNS на IP-адрес вашего сервера.
Нажмите Create Server
. Как только Virtualmin закончит создание вашего сервера, нажмите Install Scripts
на меню слева. Выберите Wordpress
, нажмите Show install options
, и на следующей странице выберите место установки Wordpress. Просто выберите At top level
и нажмите Install Now
.
Это все, что вам нужно сделать - вы можете завершить установку Wordpress, посетив ваш сайт http://example.net/wp-admin/install.php
(где example.net
находится это доменное имя виртуального сервера). Если ваши записи DNS еще не распространены, вы можете перейти Services > Preview Website
в меню Virtualmin.
Вы можете повторить этот шаг несколько раз, чтобы создать несколько сайтов Wordpress на одном сервере Vultr.
Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая система управления контентом (CMS) корпоративного уровня с открытым исходным кодом, написанная на PHP. Это я
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я
Используете другую систему? Dotclear - очень простой движок для блогов. Это с открытым исходным кодом и прост в использовании. Этот учебник будет проходить установку на
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Typesetter - это CMS с открытым исходным кодом, написанная на PHP, ориентированная на простоту использования с редактированием True WYSIWYG и хранением плоских файлов. В этой статье мы будем устанавливать
Ghost - новейшая и самая лучшая выскочка для конкурента WordPress. Разработка тем быстро и легко изучается, потому что разработчики Ghost решили использовать оба
Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я
Используете другую систему? Jekyll - хорошая альтернатива WordPress. Он не требует каких-либо баз данных и работает с языком, знакомым многим
Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Введение Чем ближе вы устанавливаете вашу OpenBSD к установке по умолчанию и без того, чтобы было добавлено столько пакетов, тем безопаснее она будет. Пока более комм
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Используете другую систему? Dotclear - это очень простой движок для блогов, который построен на основе PHP. В этом уроке мы установим Dotclear на Ubunt
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше