Установка WordPress на VPS либо выделенный сервер без панели управления. Как wordpress установить на vps
Wordpress на VPS - Блог про блоги от Дмитрия Донченко
Сегодняшним постом открываю новую рубрику в блоге, которая так и будет называться WordPress на VPS. В этой рубрике планирую собрать посты на тему работы, безопасности и оптимизации WordPress блога на выделенных или виртуальных выделенных серверах.
Что такое VPS/VDS?
Дабы не утруждать себя сочинением ответа на этот вопрос, приведу цитату с Википедии. VPS (англ. Virtual Private Server) или VDS (англ. Virtual Dedicated Server) — услуга, в рамках которой пользователю предоставляется так называемый Виртуальный выделенный сервер. В плане управления операционной системой по большей части она соответствует физическому выделенному серверу. В частности: root-доступ, собственные IP-адреса, порты, правила фильтрования и таблицы маршрутизации.
Кому необходим VPS?
На определенном этапе развития блога, ресурсы которые потребляет WordPress начинают превышать те, которые дает вам хостер. Это может быть как место на диске, объем используемой памяти, процессорное время и тп. У каждого хостера свои параметры по которым он определяет нагрузку, которую дает ваша учетная запись на сервер. Если у блога много посетителей, или много записей с картинками или файлами которые занимают много места, быстрее всего вам понадобится либо купить тариф классом выше, либо задуматься о переезде на VPS сервер.
Довольно часто бывает так, что тарифы хостера на обычный виртуальный хостинг классом выше, превышают тарифы на VPS хостинг, здесь уже вы лично должны сравнить, сколько вы платите и сколько платить будете, если разница не велика в любом случае имеет смысл переехать на VPS, чтобы иметь запас для развития вашего блога.
В чем разница VPS и обычного хостинга?
Используя VPS хостинг, вы получаете больше возможностей по оптимизации системы для работы с WordPress блогом. Гарантированные системные ресурсы для вашего аккаунта, для каждого проекта необходимо выбрать в зависимости от посещаемости сайта, требования к памяти и объема дискового пространства. Нет ограничения по количеству баз данных, по количеству сайтов которые вы можете разместить на одном VPS сервере (ограничены только системные ресурсы), а также различные ограничения которые могут быть на обычном хостинге, типа количества доменов, почтовых ящиков, ФТП-аккаунтов и тп. Как правило VPS ограничивается местом на сервере, объемом памяти, частотой процессора и месячным лимитом трафика, у некоторых хостеров трафик безлимитный, у других лимиты настолько большие, что об этом можно не беспокоиться. Также вы имеете возможность устанавливать различные модули и ПО, которое расширяет возможности вашего сайта/блога.
Используя виртуальный хостинг, у вас нет гарантии на системные ресурсы, учетная запись ограничена количеством сайтов, доменов которые вы можете разместить. Кроме того, как правило на одном сервере размещено огромное множество таких же учетных записей как ваша, и все они соревнуются между собой в потреблении процессорного времени и оперативной памяти, поэтому проект может периодически работать очень медленно. Чем больше клиентов на одном сервере, тем хуже начинает работать блог. Есть конечно VIP тарифы виртуального хостинга, но по стоимости они могут превышать VPS тарифы в несколько раз.
Однако стоит учитывать что при использовании VPS хостинга, вы сами отвечаете не только за свой WordPress блог, но и за свой виртуальный сервер, администрирование, резервное копирование, безопасность, обновления и тп. В случае с вирутальным хостингом, практически все вопросы касающиеся сервера решает хостер.
Однако не стоит пугаться, для удобства у многих VPS хостеров имеются услуги администрирования, с помощью которых вы оградите себя от многих технических вопросов.
Чем вы можете помочь?
По сути записи в этой рубрике будут публиковаться из личного опыта, возможно некоторые вопросы будут упущены, поэтому если у вас есть что спросить, по теме VPS/VDS хостинга для WordPress или есть свои какие-то инструкции и секреты. Пишите в комментариях, будем изучать эту тему вместе.
Список рекомендуемых мной хостеров, которые предоставляют VPS/VDS хостинг:
- Eskhosting
- FastVPS
- Beget
C другими пока не сотрудничал, поэтому в этом списке их нет, сравнивайте цены читайте отзывы, больше всего встречал сайтов на хостинге FastVPS, каким именно пользоваться вам, решайте сами.
Установка WordPress на VPS либо выделенный сервер без панели управления – База знаний
Установка WordPress может быть выполнена следующим способом:
Шаг 1 : Создайте базу данных и ее пользователя
- Войдите в Ваш сервер с помощью SSH (Нажмите здесь , чтобы узнать как)
- Введите нижеуказанные команды одну за одной и нажмите «Enter”:
mysqlcreate database database_name;grant all privileges on database_name.* to database_user@localhost identified by ‘database_user_password’;flush privileges;quit
На картинке выше приведен пример, где:
- demobigo_wp >> имя базы данных
- demobigo_wpuser >> пользователь базы данных
- qazwsx@123 >> пароль пользователя
Шаг 2 : Загрузите WordPress
Вы можете сделать это одним из 2х способов:
- Загрузите содержимое WordPress на Ваш сервер с помощью FTP
- Загрузите файлы напрямую через SSH
Ниже приведен вариант использования SSH:
- Войдите в Ваш сервер с помощью SSH (Нажмите здесь, чтобы узнать как)
- Пройдите в корневой каталог Вашего веб-сайта.Например, если Ваш корневой каталог /home/demobigo/public_html.Введите следующую команду и затем нажмите “Enter”: # cd /home/demobigo/public_html
- Теперь, чтобы загрузить WordPress на Ваш сервер, введите следующие команды и затем нажмите “Enter”:
# wget http://wordpress.org/latest.tar.gz
# tar -xzf latest.tar.gz
Это приведет к извлечению WordPress в папку wordpress inside /home/demobigo/public_html (Учитывая, что данный каталог является корневым)
Вы можете установить WordPress для главного домена (вашдомен.com) или в суб-каталог (вашдомен.com/blog)
Если Вы хотите установить для главного домена, можете перенести файлы из каталога “/home/demobigo/public_html/wordpress” в “/home/demobigo/public_html/” с помощью следующих команд:
- # cd /home/demobigo/public_html/wordpress
- # mv ./* /home/demobigo/public_html/
Если Вы хотите установить в суб-каталог, предположим blog, создайте папку blog и аналогично переместите файлы.
Шаг 3: Изменение configuration файла WordPress
Теперь можно либо создать и изменить файл wp-config.php вручную, либо пропустить данное действие и позволить WordPress сделать это самостоятельно, когда Вы запустите скрипт установки.
Для настройки вручную:
- Переименуйте файл wp-config-sample.php в wp-config.phpс помощью команды:
# mv wp-config-sample.php wp-config.php
- Откройте файл “wp-config.php” используя “vi” редактор.с помощью команды:
# vi wp-config.php
Измените следующие поля, заполнив их фактическими данными.
- DB_NAME
- DB_USER
- DB_PASSWORD
- DB_HOST
Раздел базы данных должен выглядеть как на картинке ниже.
Шаг 4: Запустите установочный скрипт:
- Если Вы установили WordPress на главный домен: http://domain.com/wp-admin/install.php
- Если Вы установили WordPress в папку, предположим blog: http://domain.com/blog/wp-admin/install.php
- Заполните заголовок сайта, имя пользователя, пароль и другие поля, после чего нажмите установку WordPress.
Если WordPress не сможет идентифицировать Ваш персонализированный файл wp-config.php, Вам будет предложено создать и изменить файл. Вы можете ввести детали базы данных, котую Вы хотите использовать в качестве деталей базы данных WordPress и все сохранится в новый файл wp-config.php.
kb.ru.hostgator.com
Установка WordPress на VPS либо выделенный сервер без панели управления – База знаний
Установка WordPress может быть выполнена следующим способом:
Шаг 1 : Создайте базу данных и ее пользователя
- Войдите в Ваш сервер с помощью SSH (Нажмите здесь , чтобы узнать как)
- Введите нижеуказанные команды одну за одной и нажмите «Enter”:
mysqlcreate database database_name;grant all privileges on database_name.* to database_user@localhost identified by ‘database_user_password’;flush privileges;quit
На картинке выше приведен пример, где:
- demobigo_wp >> имя базы данных
- demobigo_wpuser >> пользователь базы данных
- qazwsx@123 >> пароль пользователя
Шаг 2 : Загрузите WordPress
Вы можете сделать это одним из 2х способов:
- Загрузите содержимое WordPress на Ваш сервер с помощью FTP
- Загрузите файлы напрямую через SSH
Ниже приведен вариант использования SSH:
- Войдите в Ваш сервер с помощью SSH (Нажмите здесь, чтобы узнать как)
- Пройдите в корневой каталог Вашего веб-сайта.Например, если Ваш корневой каталог /home/demobigo/public_html.Введите следующую команду и затем нажмите “Enter”: # cd /home/demobigo/public_html
- Теперь, чтобы загрузить WordPress на Ваш сервер, введите следующие команды и затем нажмите “Enter”:
# wget http://wordpress.org/latest.tar.gz
# tar -xzf latest.tar.gz
Это приведет к извлечению WordPress в папку wordpress inside /home/demobigo/public_html (Учитывая, что данный каталог является корневым)
Вы можете установить WordPress для главного домена (вашдомен.com) или в суб-каталог (вашдомен.com/blog)
Если Вы хотите установить для главного домена, можете перенести файлы из каталога “/home/demobigo/public_html/wordpress” в “/home/demobigo/public_html/” с помощью следующих команд:
- # cd /home/demobigo/public_html/wordpress
- # mv ./* /home/demobigo/public_html/
Если Вы хотите установить в суб-каталог, предположим blog, создайте папку blog и аналогично переместите файлы.
Шаг 3: Изменение configuration файла WordPress
Теперь можно либо создать и изменить файл wp-config.php вручную, либо пропустить данное действие и позволить WordPress сделать это самостоятельно, когда Вы запустите скрипт установки.
Для настройки вручную:
- Переименуйте файл wp-config-sample.php в wp-config.phpс помощью команды:
# mv wp-config-sample.php wp-config.php
- Откройте файл “wp-config.php” используя “vi” редактор.с помощью команды:
# vi wp-config.php
Измените следующие поля, заполнив их фактическими данными.
- DB_NAME
- DB_USER
- DB_PASSWORD
- DB_HOST
Раздел базы данных должен выглядеть как на картинке ниже.
Шаг 4: Запустите установочный скрипт:
- Если Вы установили WordPress на главный домен: http://domain.com/wp-admin/install.php
- Если Вы установили WordPress в папку, предположим blog: http://domain.com/blog/wp-admin/install.php
- Заполните заголовок сайта, имя пользователя, пароль и другие поля, после чего нажмите установку WordPress.
Если WordPress не сможет идентифицировать Ваш персонализированный файл wp-config.php, Вам будет предложено создать и изменить файл. Вы можете ввести детали базы данных, котую Вы хотите использовать в качестве деталей базы данных WordPress и все сохранится в новый файл wp-config.php.
Автоматизированная установка WordPress на VPS с помощью Ansible / Хабр
Добрый день, Хабр.Не так давно я начал разбираться с замечательным инструментом для любого DevOps — Ansible. Сегодня хочу представить на ваш взыскательный суд небольшую вводную статью по использованию этого, во многом прекрасного, инструмента. Итак, начнем.
Что такое Ansible
Ansible — это инструмент для автоматизации задач системного администратора и не только. Если своими словами — это та штука, которая позволяет автоматически настраивать сервера пачками.Кто-то скажет, что он не нужен, т.к. есть Chef, Puppet, etc. Я с этими людьми абсолютно соглашусь. Если вы можете использовать эти инструменты — отлично. Я же пишу эту статью для тех, кто хочет немного понять как работает Ansible и как с его помощью можно многое автоматизировать.
Если вы до этого не сталкивались с Ansible вообще, то советую почитать статью компании Селектел. Отличная статья.
Максимум автоматизации
Давайте определимся, что нам нужно, чтоб запустить Wordpress на VPS сервере с установленной Ubuntu:- Nginx
- Mysql
- PHP5
- Memcached для использования W3Total Cache плагина
- Wordpress
Nginx
В каталоге roles/nginx/tasks создаем main.yml со следующим содержимым:- name: Add nginx repository apt_repository: repo='ppa:nginx/stable' - name: Install nginx action: apt pkg=nginx-extras state=installed update_cache=true - name: Disable default site file: path: /etc/nginx/sites-enabled/default state: absent Все, что начинается с новой строки как "- name" — это отдельная задача для Ansible. Разбираем то, что написано по шагам:- Добавляем репозиторий nginx (ppa:nginx/stable)
- Устанавливаем nginx-extras (При необходимости он содержит SPDY модуль и его можно включить в конфиге)
- Удаляем симлинк на конфиг по умолчанию
На этом с Nginx'ом все. Два простых файла нам позволят установить репозиторий в систему, установить вебсервер, убрать его настройки по умолчанию и определить сервис для его перезагруки.
Идем далее.
MySQL
Я привык ставить Percona MySQL server. Лучше он или хуже — можно долго спорить. Я привык и использую его.Принцип абсолютно тот же. Файл roles/percona-mysql/tasks/main.yml:
- name: Add GPG key for repository command: apt-key adv --keyserver keyserver.ubuntu.com --recv CD2EFD2A - name: Add Percona repository shell: echo "deb http://repo.percona.com/apt {{ ansible_lsb['codename'] }} main" | tee /etc/apt/sources.list.d/percona.list creates=/etc/apt/sources.list.d/percona.list - name: Install Percona MySQL server apt: pkg: "{{ item }}" update_cache: true with_items: - percona-server-server-5.5 - percona-server-client-5.5 - python-mysqldb - name: Change root password (fail is not a problem) mysql_user: name: root password: "{{ mysql_root_password}}" ignore_errors: yesТеперь по шагам:
- Добавляем ключ репозитория
- Добавляем сам репозиторий с проверкой, что файл /etc/apt/sources.list.d/percona.list создался
- Устанавливаем три пакета:
- percona-server-server-5.5
- percona-server-client-5.5
- python-mysqldb (нужен для управления mysql сервером из ansible)
- Меняем пароль рута на указанный в переменных (см. ниже)
PHP5
Поскольку мы не используем Apache, то и php мы будем использовать с php-fpm. Для этого в файл roles/php5/handlers/main.yml описываем сервис php5-fpm:- name: restart php5-fpm service: name: php5-fpm state: restarted Его мы вызовем после конфигурирования php5-fpm, чтоб перезапустить демон. Содержимое roles/php5/tasks/main.yml:- name: install php5 apt: pkg={{ item }} with_items: - php5 - php5-cgi - php5-fpm - php5-memcache - php5-memcached - php5-mcrypt - php5-mysql - php5-gd - php5-curl - php5-xmlrpc - name: change listen socket lineinfile: dest: '/etc/php5/fpm/pool.d/www.conf' insertafter: 'listen = 127.0.0.1:9000' line: 'listen = /var/run/fpm.socket' notify: restart php5-fpm Первым шагом мы устанавливаем необходимые пакеты. Здесь все просто. А вот второй шаг более интересен. Разберемся подробнее. В Nginx мы будем использовать общение с php5-fmp через unix-соккет. Для этого нам надо в конфиге пула www демона php5-fpm указать, чтоб он слушал соккет по нужному нам пути. Модуль lineinfile позволяет нам это сделать:- «dest» — это путь, где нужно внести правки.
- «insertafter» — найти в указанном файле строку «listen = 127.0.0.1:9000» и вставить после нее указанное в «line»
- «notify» — Послать уведомление сервису «restart php5-fpm» (вот зачем нужно было описание сервиса php5-fpm)
Memcached
С этим сервисом все очень просто. Нужно установить его и все. Содержимое roles/memcached/tasks/main.yml:- name: install memcached server apt: pkg: memcachedWordpress
Вот тут мы и установим автоматически Wordpress, создадим для него базу данных и конфигурацию nginx. Почему именно здесь? Все просто. Вы можете взять любую роль и использовать ее в других своих ansible проектах. Или создать еще одну роль и развернуть не wordpress, а свой какой-то проект рядом с wordpress'ом. Т.е. это сделано для банального удобства.Итак, roles/wordpress/tasks/main.yml:
- name: creating database mysql_db: name: "{{ db_name }}" state: "present" login_user: "root" login_password: "{{ mysql_root_password }}" - name: creating database user mysql_user: name: "{{ db_user }}" password: "{{ db_password }}" priv: "{{ db_name }}.*:ALL" state: "present" login_user: "root" login_password: "{{ mysql_root_password }}" - name: install nginx configuration template: src: wordpress.conf dest: /etc/nginx/sites-available/wordpress.conf notify: restart nginx - name: activate site configuration file: src: '/etc/nginx/sites-available/wordpress.conf' dest: '/etc/nginx/sites-enabled/wordpress.conf' state: 'link' - name: download WordPress get_url: url: "{{ download_url }}" dest: "/tmp/latest.tar.gz" - name: creating directory for WordPress file: path: "{{ wpdirectory }}" state: "directory" owner: "www-data" group: "www-data" - name: unpack WordPress installation shell: "tar xvfz /tmp/latest.tar.gz -C {{ wpdirectory }} && chown -R www-data:www-data {{ wpdirectory }}" А теперь пройдем по каждому пункту:- Создаем базу данных, указав параметры подключения (логин root и его пароль)
- Создаем пользователя базы данных с паролем, указав при этом его права на только что созданную базу
- Создаем конфигурацию сервера в Nginx, используя заранее заготовленный шаблон (см. ниже) и посылаем сигнал на рестарт сервиса Nginx
- Активируем сервер в Nginx, создав симлинк
- Скачиваем, указанную в переменных, версию Wordpress
- Создаем каталог для Wordpress
- Распаковываем скачанный архив и устанавливаем необходимые права на файлы и каталоги
Сборка воедино и запуск установки
Для того, чтоб Ansible знал, что и как запускать, нам надо написать playbook wordpress.yml:- hosts: appservers-php sudo: yes vars: - mysql_root_password: "SuperP@S$w0rd" - domain: "example.com" - download_url: "http://wordpress.org/latest.tar.gz" - wpdirectory: "/var/www" - db_name: "wordpress" - db_user: "wordpress" - db_password: "wordpress" roles: - { role: nginx } - { role: percona-mysql } - { role: memcached } - { role: php5 } - { role: wordpress } Этот файл указывает Ansible что, на каких серверах, в какой последовательности и с какими правами выполнять.- hosts — это список хостов из файла hosts (см.ниже), на которых должны быть произведены все действия;
- sudo — выполнять ли все действия из под sudo;
- vars — переменные, которые используются в ролях:
- mysql_root_password — какой пароль установить пользователю root в MySQL
- domain — домен сайта, который указывается в конфигурации nginx
- wpdirectory — в какой каталог установить Wordpress
- db_* — соответствующие параметры для MySQL
- roles — выполняемые задачи (роли)
Теперь можно запускать установку:
ansible-playbook -i hosts wordpress.yml -kK- k — запросить ssh пароль.
- K — запросить sudo пароль
После окончания работы можно заходить на сервер по HTTP и сконфигурировать Wordpress для работы.
Готовый рецепт можно взять на github.
Надеюсь, что это немного поможет вам автоматизировать рутину на работе (и дома). Спасибо, что читали.
habr.com