Установка 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 хостинг:

  1. Eskhosting
  2. FastVPS
  3. Beget

C другими пока не сотрудничал, поэтому в этом списке их нет, сравнивайте цены читайте отзывы, больше всего встречал сайтов на хостинге FastVPS, каким именно пользоваться вам, решайте сами.

blogproblog.com

Установка WordPress на VPS либо выделенный сервер без панели управления – База знаний

Установка WordPress может быть выполнена следующим способом:

Шаг 1 : Создайте базу данных и ее пользователя

  1. Войдите в Ваш сервер с помощью SSH (Нажмите здесь , чтобы узнать как)
  2. Введите нижеуказанные команды одну за одной и нажмите «Enter”:

mysqlcreate database database_name;grant all privileges on database_name.* to database_user@localhost identified by ‘database_user_password’;flush privileges;quit

На картинке выше приведен пример, где:

Шаг 2 : Загрузите WordPress

Вы можете сделать это одним из 2х способов:

  1. Загрузите содержимое WordPress на Ваш сервер с помощью FTP
  2. Загрузите файлы напрямую через SSH

Ниже приведен вариант использования SSH:

  1. Войдите в Ваш сервер с помощью SSH (Нажмите здесь, чтобы узнать как)
  2. Пройдите в корневой каталог Вашего веб-сайта.Например, если Ваш корневой каталог /home/demobigo/public_html.Введите следующую команду и затем нажмите “Enter”: # cd /home/demobigo/public_html
  3. Теперь, чтобы загрузить 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/” с помощью следующих команд:

Если Вы хотите установить в суб-каталог, предположим blog, создайте папку blog и аналогично переместите файлы.

Шаг 3: Изменение configuration файла WordPress

Теперь можно либо создать и изменить файл wp-config.php вручную, либо пропустить данное действие и позволить WordPress сделать это самостоятельно, когда Вы запустите скрипт установки.

Для настройки вручную:

  1. Переименуйте файл wp-config-sample.php  в  wp-config.phpс помощью команды:

# mv wp-config-sample.php wp-config.php

  1. Откройте файл “wp-config.php” используя  “vi” редактор.с помощью команды:

    # vi wp-config.php

Измените следующие поля, заполнив их фактическими данными.

Раздел базы данных должен выглядеть как на картинке ниже.

Шаг 4: Запустите установочный скрипт:

Если WordPress не сможет идентифицировать Ваш персонализированный файл wp-config.php, Вам будет предложено создать и изменить файл. Вы можете ввести детали базы данных, котую Вы хотите использовать в качестве деталей базы данных WordPress и все сохранится в новый файл wp-config.php.

kb.ru.hostgator.com

Установка WordPress на VPS либо выделенный сервер без панели управления – База знаний

Установка WordPress может быть выполнена следующим способом:

Шаг 1 : Создайте базу данных и ее пользователя

  1. Войдите в Ваш сервер с помощью SSH (Нажмите здесь , чтобы узнать как)
  2. Введите нижеуказанные команды одну за одной и нажмите «Enter”:

mysqlcreate database database_name;grant all privileges on database_name.* to database_user@localhost identified by ‘database_user_password’;flush privileges;quit

На картинке выше приведен пример, где:

Шаг 2 : Загрузите WordPress

Вы можете сделать это одним из 2х способов:

  1. Загрузите содержимое WordPress на Ваш сервер с помощью FTP
  2. Загрузите файлы напрямую через SSH

Ниже приведен вариант использования SSH:

  1. Войдите в Ваш сервер с помощью SSH (Нажмите здесь, чтобы узнать как)
  2. Пройдите в корневой каталог Вашего веб-сайта.Например, если Ваш корневой каталог /home/demobigo/public_html.Введите следующую команду и затем нажмите “Enter”: # cd /home/demobigo/public_html
  3. Теперь, чтобы загрузить 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/” с помощью следующих команд:

Если Вы хотите установить в суб-каталог, предположим blog, создайте папку blog и аналогично переместите файлы.

Шаг 3: Изменение configuration файла WordPress

Теперь можно либо создать и изменить файл wp-config.php вручную, либо пропустить данное действие и позволить WordPress сделать это самостоятельно, когда Вы запустите скрипт установки.

Для настройки вручную:

  1. Переименуйте файл wp-config-sample.php  в  wp-config.phpс помощью команды:

    # mv wp-config-sample.php wp-config.php

  1. Откройте файл “wp-config.php” используя  “vi” редактор.с помощью команды:

    # vi wp-config.php

Измените следующие поля, заполнив их фактическими данными.

Раздел базы данных должен выглядеть как на картинке ниже.

Шаг 4: Запустите установочный скрипт:

Если WordPress не сможет идентифицировать Ваш персонализированный файл wp-config.php, Вам будет предложено создать и изменить файл. Вы можете ввести детали базы данных, котую Вы хотите использовать в качестве деталей базы данных WordPress и все сохранится в новый файл wp-config.php.

 

kb.ru.bluehost.com

Автоматизированная установка WordPress на VPS с помощью Ansible / Хабр

Добрый день, Хабр.

Не так давно я начал разбираться с замечательным инструментом для любого DevOps — Ansible. Сегодня хочу представить на ваш взыскательный суд небольшую вводную статью по использованию этого, во многом прекрасного, инструмента. Итак, начнем.

Что такое Ansible
Ansible — это инструмент для автоматизации задач системного администратора и не только. Если своими словами — это та штука, которая позволяет автоматически настраивать сервера пачками.

Кто-то скажет, что он не нужен, т.к. есть Chef, Puppet, etc. Я с этими людьми абсолютно соглашусь. Если вы можете использовать эти инструменты — отлично. Я же пишу эту статью для тех, кто хочет немного понять как работает Ansible и как с его помощью можно многое автоматизировать.

Если вы до этого не сталкивались с Ansible вообще, то советую почитать статью компании Селектел. Отличная статья.

Максимум автоматизации
Давайте определимся, что нам нужно, чтоб запустить Wordpress на VPS сервере с установленной Ubuntu: Вот в таком порядке мы и будем писать роли для настройки сервера. Структура каталогов для нашей задачи будет такая:image
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. Разбираем то, что написано по шагам:
  1. Добавляем репозиторий nginx (ppa:nginx/stable)
  2. Устанавливаем nginx-extras (При необходимости он содержит SPDY модуль и его можно включить в конфиге)
  3. Удаляем симлинк на конфиг по умолчанию
В каталоге roles/nginx/handlers создаем файл main.yml со следующим содержимым:- name: restart nginx service: name: nginx state: restarted Это описание сервиса для перезагрузки Nginx'а. Он нам понадобится после установки конфига для нашего Wordpress'а.

На этом с 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

Теперь по шагам:

  1. Добавляем ключ репозитория
  2. Добавляем сам репозиторий с проверкой, что файл /etc/apt/sources.list.d/percona.list создался
  3. Устанавливаем три пакета:
    • percona-server-server-5.5
    • percona-server-client-5.5
    • python-mysqldb (нужен для управления mysql сервером из ansible)
  4. Меняем пароль рута на указанный в переменных (см. ниже)
Переменные мы укажем в основном yml файле ниже. Там же будут указаны имя базы, пользователь с паролем и т.п.
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 позволяет нам это сделать:
Memcached
С этим сервисом все очень просто. Нужно установить его и все. Содержимое roles/memcached/tasks/main.yml:- name: install memcached server apt: pkg: memcached
Wordpress
Вот тут мы и установим автоматически 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 }}" А теперь пройдем по каждому пункту:
  1. Создаем базу данных, указав параметры подключения (логин root и его пароль)
  2. Создаем пользователя базы данных с паролем, указав при этом его права на только что созданную базу
  3. Создаем конфигурацию сервера в Nginx, используя заранее заготовленный шаблон (см. ниже) и посылаем сигнал на рестарт сервиса Nginx
  4. Активируем сервер в Nginx, создав симлинк
  5. Скачиваем, указанную в переменных, версию Wordpress
  6. Создаем каталог для Wordpress
  7. Распаковываем скачанный архив и устанавливаем необходимые права на файлы и каталоги
Теперь шаблон конфигурации сервера Nginx roles/wordpress/templates/wordpress.conf:server { listen 80 default_server; root {{ wpdirectory }}/wordpress; index index.php index.html index.htm; server_name {{ domain }}; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } server { listen 80; server_name www.{{ domain }}; location / { return 301 http://{{ domain }}; } } Описывать принципы конфигурации Nginx — это тема для отдельной статьи и даже не одной. Оставим это дело для домашнего задания.
Сборка воедино и запуск установки
Для того, чтоб 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:[appservers-php] example.com ansible_ssh_host=10.0.0.2 ansible_ssh_user=ubuntu Блок в первой строке обозначает на список хостов, который указан в wordress.yml. Дальше собственно каждый сервер с новой строки. Первым указывается домен сервера. Вторым указывает IP адрес сервера, куда должен идти Ansible по ssh. Этот параметр не обязательный, если у вас домен уже сконфигурирован на нужный сервер. Третьим параметром идет имя пользователя, с которым Ansible будет заходить на сервер через ssh.

Теперь можно запускать установку:

ansible-playbook -i hosts wordpress.yml -kK

После окончания работы можно заходить на сервер по HTTP и сконфигурировать Wordpress для работы.

Готовый рецепт можно взять на github.

Надеюсь, что это немного поможет вам автоматизировать рутину на работе (и дома). Спасибо, что читали.

habr.com


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта