Разместить сайт на сервере с LAMP

Допустим, что вы установили на сервер LAMP (Linux, Apache, MySQL, PHP) — с помощью нашего рецепта или вручную. Теперь дело за малым — нужно настроить веб-сервер, создать базы данных и папки для сайтов.

Для начала настройки потребуется:

  • привязать к серверу домен сайта. Можно приобрести новый, привязать действующий или бесплатный тестовый (имя-тестового-домена.astrahosting.ru);
  • подключиться к серверу по SSH.

В качестве примера будем использовать тестовый домен example.com. Не забудьте изменить его на свой.

Структура каталогов для размещения сайтов

Чтобы в будущем мы могли просто и непринуждённо добавлять новые сайты, настраивать FTP или sFTP-доступ для отдельных директорий, не помешает заранее определиться, как оптимально расположить их на сервере. 

Самая простая структура выглядит так:

/var /www/example1.com

/var /www/example1.com

Она будет использоваться в качестве примера ниже.

Тем не менее, если вы планируете разместить на сервере только один сайт, можно не тратить время на настройки и просто загрузить файлы сайта в папку /var/www/html— сайт будет работать и так. Но в будущем это может привести к необходимости в перенастройке, например, когда потребуется разместить новый сайт.

Создание директории сайта и файлов логов

На этом шаге нам нужно создать папки, где будут размещены файлы сайтов, а также файлы логов, куда веб-сервер будет записывать информацию о работе сайта. Введите в терминале последовательно:

Осталось настроить права доступа. Чтобы все функции сайта работали корректно, все его файлы должны быть доступны для обработки веб-серверу. Поэтому указываем в качестве владельца системного пользователя веб-сервера:

Ubuntu и Debian:

CentOS:

Недостаток такого подход в том, что работать с файлами сайта будет не очень удобно. Формально при каждой загрузке новых файлов потребуется редактировать их владельца — с пользователя, под которым файлы загружены, на системного пользователя и группу веб-сервера.

Создание конфигурационного файла сайта — VirtualHost

Чтобы веб-сервер стал принимать запросы к нашему сайту, в первую очередь нужно добавить его конфигурационный файл — так называемый VirtualHost. Он нужен, чтобы указать веб-серверу, как обрабатывать запросы к сайту, где лежат его файлы, куда записывать сообщения об ошибках и др. Если на сервере планируется разместить несколько сайтов, будет удобнее добавить VirtualHostдля каждого отдельно.

На CentOS требуется выполнить предварительную настройку.

Создадим папку для размещения конфигурационных файлов сайтов:

Откроем конфигурационный файл веб-сервера:

Добавим новую строку в конец списка параметров:

Сохраним и закроем файл.

  1. Добавляем новый файл c именем example.com.conf (где example.com — ваш домен)

CentOS:

2. Открываем созданный файл в любом консольном текстовом редакторе:

Ubuntu и Debian:

В качестве примера приведён редактор nano. Для сохранения файла нажмите сочетание Ctrl+O, проверьте имя файла и нажмите Enter. Для выхода из файла нажмите сочетание Ctrl+X.

CentOS:

Вставляем в файл следующий текст:

  1. Измените выделенный текст на ваши данные (123.123.123.123 — IP-адрес сервера и example.com — имя домена).

После завершения редактирования сохраните и закройте файл.

Для Ubuntu и Debian осталось активировать VirtualHost нового сайта и отключить текущий, включенный по умолчанию:

Перезапустим веб-сервер для применения изменений:

Ubuntu и Debian:

CentOS:

Создание базы данных

База данных — обязательный компонент для работы любого современного сайта. Одним из этапов установки большинства CMS всегда является настройка базы данных.

Чтобы создать базу для нового сайта, подключитесь к серверу баз данных:

После ввода пароля создадим новую базу данных exampleDB:

Далее добавим нового пользователя сервера баз данных (exampleDB-user) и предоставим ему доступы для работы с базой сайта. Важно: не забудьте сохранить название базы данных, имя пользователя и пароль — они потребуются для настройки сайта.

Выходим из консоли сервера баз данных:

Загрузка файлов и проверка работы сайта

Осталось самое простое — загрузить файлы сайта. 

Если у вас уже есть готовый сайт, загрузить его файлы можно по sFTP. 
В итоге в папке сайта example.com должен оказаться архив вашего сайта (в примере example.com.tar.gz) и дамп базы данных (в примере dump.sql):

Распаковываем сайт:

На CentOS tar по умолчанию не установлен. Для установки воспользуйтесь командой:

Разворачиваем дамп базы данных:

mysql -u exampleDB-user -p exampleDB < dump.sql

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