Как поднять веб-сервер (Apache2+Nginx+Mysql+PHPmyAdmin) на VPS Debian 7

001

Никогда бы не подумал, что буду в таком замешательстве сидя за компьютером, как в последние дни. А все потому, что я решил что обычный хостинг данному сайту уже не подходит, сайт вырос и вырос сильно. Поэтому после долгих раздумий было решено переходить на VPS/VDS сервер. Что, собственно, на момент написания этой статьи выполнено, выбрал я сервер от компании Infobox (соотношение цена/функционал меня вполне устроило). Но честно скажу, это было не легко, я еще до этого ни разу не работал в unix системах, тем более через консольные терминалы. А так как этот сайт изначально создавался именно как база моих знаний, на случай если вдруг что-нибудь забуду. То и процесс настройки сервера я задокументирую, тем более операций произведено много, мануалов прочитано еще больше:) Чтож, если вы читаете эту инструкцию, я надеюсь что вам она поможет. В теории эта инструкция может подойти и на Ubuntu сервера, но я при выборе VPS остановился на Debian 7, а в чем разница между ними я не особо в курсе.

1) Итак, первое к чему нужно привыкнуть — это работа через терминал и протокол SSH (через него же можно скидывать файлы, к примеру через FileZila), для Windows качаем Putty. Запускаем, вбиваем IP-адрес вашего сервера, предоставленный вашим хостером в панели управления сервером. Порт обычно 22. Жмем open для подключения.

Итак, первое к чему нужно привыкнуть - это работа через терминал, для Windows качаем Putty. Запускаем, вбиваем IP-адрес вашего, предоставленный вашим хостером в панели управления сервером. Порт обычно 22. Жмем open для подключения.

Откроется черное окно с фразой Login as, здесь нужно ввести логин администратора под которым вы будете работать, обычно это root, вводим нажимаем Enter  и видим запрос пароля (логин и пароль от вашего сервера можно найти в панели управления сервером), при написании пароля символы и даже звездочки не отображаются, все на ощупь. Так же пароль можно скопировать и вставить в окно терминала одинарным нажатием правой клавишей мыши. (Ctrl+V и «Правой клавишей мыши — вставить» здесь на работают, запоминайте, просто один раз правой клавишей). После ввода пароля так же жмем Enter и сервер радостно нас поприветствует.

Откроется черное окно с фразой Login as, здесь нужно ввести логин администратора под которым вы будете работать, обычно это root, вводим нажимаем Enter  и видим запрос пароля (логин и пароль от вашего сервера можно найти в панели управления сервером), при написании пароля символы и даже звездочки не отображаются, все на ощупь. Так же пароль можно скопировать и вставить в окно терминала одинарным нажатием правой клавишей мыши. (Ctrl+V и "Правой клавишей мыши - вставить" здесь на работают, запоминайте, просто один раз правой клавишей). После ввода пароля так же жмем Enter и сервер радостно нас поприветствует.

2) Второй момент, который стоит запомнить, в Debian все приложения устанавливаются через команду apt-get, приложения по-умолчанию берутся из интернет-репозиториев. К этому легко привыкаешь и потом с сожалением вспоминаешь при работе в Windows. Итак, первое что мы делаем обновляем базы репозитариев и делаем обновление всего ПО, установленного в систему.  Поэтому сперва вбиваем команду apt-get update , а после завершения обновления пишем apt-get upgrade .

Второй момент, который стоит запомнить, в Debian все приложения устанавливаются через команду apt-get, приложения по-умолчанию берутся из интернет-репозиториев. К этому легко привыкаешь и потом с сожалением вспоминаешь при работе в Windows. Итак, первое что мы делаем обновляем базы репозитариев и делаем обновление всего ПО, установленного в систему.  Поэтому сперва вбиваем команду apt-get update , а после завершения обновления пишем apt-get upgrade .

3) Теперь установим пару утилит, которые нам могут пригодится в процессе настройки сервера. Первая этот текстовый редактор nano вбиваем apt-get install nano , а вторым будет файловый менеджер Midnight Commaner пишем apt-get install mc , после ввода команды, скорее  всего нужно будет подтвердить установку вбив букву Y и нажав Enter.

004

4) Все подготовительный этап закончен, начинаем установку сервера. Вводим следующую команду:

apt-get install php5-fpm nginx mysql-server php5-mysql  php5-curl apache2

Жмем Enter. И подтверждаем установку буквой Y.

Все подготовительный этап закончен, начинаем установку сервера. Вводим следующую команду:  apt-get install php5-fpm nginx mysql-server php5-mysql   Жмем Enter. И подтверждаем установку буквой Y.

5) В процессе установки высветится синие окно настройки MySQL и первые вопрос об установки пароля для доступа к базам, вводим пароль, который вы будете для этого использовать.

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

Повторяем его же. Ждем завершения установки пакетов.

Повторяем его же.

6) После завершения установки нужно создать первую, тестовую базу данных, для тестового же сайта. Поэтому пишем следующую команду: mysql -u root -p И вводим пароль, созданный на прошлом этапе.

После завершения установки нужно создать первую, тестовую базу данных, для тестового же сайта. Поэтому пишем следующую команду:  mysql -u root -p  И вводим пароль, созданный на прошлом этапе.

Пишем команду на создание базы данных с именем blog (это бд, для тестового сайта, в будущем, когда вы будете переносить свой сайт, вы сможете работать с базами через панель phpmyadmin), команда выглядит следующим образом:

create database blog;

Точка с запятой в конце обязательны!

Пишем команду на создание базы данных с именем blog (это бд, для тестового сайта, в будущем, когда вы будете переносить свой сайт, вы сможете работать с базами через панель phpmyadmin), команда выглядит следующим образом:  create database blog;  Точка с запятой в конце обязательны!   Выходим из меню mysql командой exit Выходим из меню mysql командой exit

7) Теперь займемся конфигами php машин. Для начала запретим apache2 слушать 80 порт, иначе не запустится nginx, а нам нужен именно он.Вбиваем команду:

nano /etc/apache2/ports.conf

Теперь займемся конфигами php машин. Для начала запретим apache2 слушать 80 порт, иначе не запустится nginx, а нам нужен именно он. Вбиваем команду:  nano /etc/apache2/ports.conf

Если у вас открылся пустой экран, значит на вашем сервере не установлен даже Apache, закрываем окно клавишами Ctrl+X и переходим к следующему пункту, если же у вас конфиг открылся, то меняем параметры NameVirtualHost и Listen на 81. И тоже жмем CTRL+X, вводим Y  и два раза жмем Enter не внося изменений в название файла.

Если у вас открылся пустой экран, значит на вашем сервере не установлен даже Apache, закрываем окно клавишами Ctrl+X и переходим к следующему пункту, если же у вас конфиг открылся, то меняем параметры NameVirtualHost и Listen на 81

8) Теперь настраиваем шаблон сайта сервера nginx, открываем его в текстовом редакторе:

nano /etc/nginx/sites-available/default

И здесь приводим все выделенные места как на скриншоте. После изменения сохраняем изменения через Ctrl+X , Y, Enter.

Теперь настраиваем шаблон сайта сервера nginx, открываем его в текстовом редакторе:  nano /etc/nginx/sites-available/default  И здесь приводим все выделенные места как на скриншоте. После изменения сохраняем изменения через Ctrl+X , Y, Enter.

 

Теперь чуть-чуть объясняю, так как мы планируем размещать несколько сайтов на своем VPS, то сразу же перенесем этот тестовый сайт в папку default. То есть он будет открывать просто по IP адресу, для того чтобы добавить сайт с определенным доменом нужно создать файл, подобный этому, только со следующими изменениями:

1) Называем файл нормальным именем вместо default, к примеру skesov.ru

2) Копируем в него содержимое данного конфига

3) В строке root меняем путь на путь до папке, в которой будет хранится сайт /usr/share/nginx/www/skesov.ru (как правильно создавать папки для сайта мы рассмотрим ниже)

4) В строке server_name необходимо заменить localhost на ваш домен (skesov.ru)

Теперь сразу же создаем символьную ссылку с этого файла в соседний каталог командой (для файлов к вашим сайтам символьные ссылки тоже нужно создавать):

ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

Должно получиться примерно вот так, слева файлы, справа символьные ссылки на них. Чтобы открыть Midnight Commander введите mc в терминале, чтобы закрыть Alt+0.

Теперь сразу же создаем символьную ссылку с этого файла в соседний каталог командой (для файлов к вашим сайтам символьные ссылки тоже нужно создавать):  ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default  Должно получиться примерно вот так, слева файлы, справа символьные ссылки на них.

8) Теперь перезапускаем все, в чем вносили изменения и запускаем установленное. Для этого вводим следующие команды по очереди:

service apache2 restart

service nginx start

service mysql restart

Теперь перезапускаем все, в чем вносили изменения и запускаем установленное. Для этого вводим следующие команды по очереди:  service apache2 restart  service nginx start  service mysql restart

9) Так, сейчас мы создадим каталог для нашего сайта и установим собственно сайт в него. По такому же принципу необходимо создавать папки для ваших сайтов. Делаем дальше в том порядке, как указано.

Переходим в папку www:

cd /usr/share/nginx/www

Создаем каталог default (имя должно быть такое же как в файле, который находится в sites-available):

mkdir default

Переходим в нее:

cd default/

Скачиваем последнюю версию WordPress:

wget http://ru.wordpress.org/latest-ru_RU.zip

Распаковываем архив:

unzip latest-ru_RU.zip

Удаляем архив, он нам больше не нужен:

rm latest-ru_RU.zip

Перемещаем все файлы из папки wordpress в папку default (точка обязательна):

mv wordpress/* .

Удаляем папку wordpress: rmdir wordpress/

Возвращаемся на папку назад: cd ..

И меняем владельца папки default на www-data(такие же данные нужно назначать всем папкам, которые вы создадите для ваших сайтов):

chown www-data.www-data -R default/

Все, теперь перейдя введя IP-адрес сервера, мы должны попасть на страницу первичных настроек WordPress это говорит о том, что сервер настроен правильно и пройдя первичную настройку мы получим полностью работоспособный сайт.

017

10) Осталось установить PhpMyAdmin для удобства работы с базами данным MySQL. Вводим команду для установки пакета:

apt-get install phpmyadmin

И подтверждаем установкой введя букву Y. После установки откроется страница настройки панели, выбираем то, что у вас стояло по умолчанию.

И подтверждаем установкой введя букву Y. После установки откроется страница настройки панели, выбираем то, что у вас стояло по умолчанию.

На следующей странице я ответил утвердительно и меня за это не поругали, так что думаю жмем «Да».

На следующей странице я ответил утвердительно и меня за это не поругали, так что думаю жмем "Да".

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

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

И пароль для входа в phpmyadmin.

И пароль для входа в phpmyadmin.

Теперь осталось создать символьную ссылку для доступа к phpmyadmin по ссылке формата домен.ru/phpmyadmin:

ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www/default

Default меняем на папку с вашим сайтом. Ну и для завершения настройки читаем статью о снятии ограничения на загрузки файлов размером более 2мб.

Надеюсь что вы нигде не запутались и все получилось.

На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа или подписавшись на группу в Вконтакте.

Спасибо за внимание :)

Материал сайта Skesov.ru