url image

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

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

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

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

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

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

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

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

/var

      /www

Системная директория

Директория веб-сервера для размещения сайтов

               /example1.com
               /example2.com

Сайты

 

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

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

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

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

mkdir /var/www/example.com /var/www/httpd-logs

touch /var/www/httpd-logs/example.com.access.log /var/www/httpd-logs/example.com.error.log

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

  • Ubuntu и Debian:

    chown -R www-data:www-data /var/www/example.com
  • CentOS:

    chown -R apache:apache /var/www/example.com

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

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

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

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

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

mkdir /etc/httpd/sites-enabled/

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

vim /etc/httpd/conf/httpd.conf

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

Include sites-enabled/*.conf

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

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

    • Ubuntu и Debian:

      touch /etc/apache2/sites-available/example.com.conf
    • CentOS:

      touch /etc/httpd/sites-enabled/example.com.conf
  2. Открываем созданный файл в любом консольном текстовом редакторе:

    • Ubuntu и Debian:

      nano /etc/apache2/sites-available/example.com.conf
      В качестве примера приведён редактор nano. Для сохранения файла нажмите сочетание Ctrl+O, проверьте имя файла и нажмите Enter. Для выхода из файла нажмите сочетание Ctrl+X.
    • CentOS:

      vim /etc/httpd/sites-enabled/example.com.conf
      В качестве примера приведён консольный редактор vim. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

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

    <VirtualHost 123.123.123.123:80 >
           ServerName example.com
           ServerAlias www.example.com
           DocumentRoot /var/www/example.com
           CustomLog /var/www/httpd-logs/example.com.access.log combined
           ErrorLog /var/www/httpd-logs/example.com.error.log
           AddType application/x-httpd-php .php
    </VirtualHost>

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

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

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

a2dissite 000-default.conf

a2ensite example.com.conf

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

  • Ubuntu и Debian:

    systemctl reload apache2
  • CentOS:

    systemctl reload httpd

Шаг 3. Создание базы данных

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

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

mysql -u root -p

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

create database exampleDB;

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

grant all privileges on exampleDB.* to 'exampleDB-user'@'localhost' identified by 'p@ssw0rd' with grant option;

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

exit;

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

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

Загрузка готового сайта

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

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

tar -xzf example.com.tar.gz

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

yum -y install tar

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

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

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

Установка CMS

Если вы хотите развернуть новый сайт — например, в целях разработки или тестирования, воспользуйтесь следующими инструкциями по установке CMS:

Этот материал был полезен?