Виртуальные хост apache, nginx на ubuntu

  1. Создать директрию

    sudo mkdir -p /var/www/[site-folder]/public_html

    Файлы сайта будут хранится в подпапке public_html

  2. Если логи в отдельных папках, то сделать папки

    mkdir /var/log/apache2/[site]/
    mkdir /var/log/nginx/[site]/
  3. Скопировать файлы и поставить права, владельца

    cp [files] /var/www/[site-folder]/public_html
    sudo chmod -R 755 /var/www
    sudo chown -R www-data:www-data /var/www/[site-folder]/
  4. Создать конфиги в apache и nginx

    etc/apache2/sites-available/[site].conf
    etc/nginx/sites-available/[site].conf

Например для apache можно скопировать конфиг по-умолчанию

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/[site].conf

apache [site].conf

<VirtualHost *:80>
        ServerAdmin admin@site.ru
        ServerName [site.ru]
        ServerAlias www.[site.ru]
        DocumentRoot /var/www/[site-folder]/public_html

        ErrorLog ${APACHE_LOG_DIR}/[site]/error.log
        CustomLog ${APACHE_LOG_DIR}/[site]/access.log combined
</VirtualHost>
  1. Проверка корретности конфигов

    sudo apachectl -t
    sudo nginx -t
  2. Включить конфиг для сайта

    sudo a2ensite [site]
    sudo ln -s /etc/nginx/sites-available/[site].conf /etc/nginx/sites-enabled/[site].conf

    sudo a2ensite [site].conf не срабатывает

  3. Перезапусить сервер

    sudo systemctl reload apache2
    sudo systemctl reload nginx
  4. Проверка настройки виртаульных хостов apache

    apache2ctl -S

    Результат:

    VirtualHost configuration:
    *:80                   baikal.ru (/etc/apache2/sites-enabled/baikal.conf:1)
    ServerRoot: "/etc/apache2"
    Main DocumentRoot: "/var/www/html"
    Main ErrorLog: "/var/log/apache2/error.log"
    Mutex default: dir="/var/lock/apache2" mechanism=fcntl
    Mutex mpm-accept: using_defaults
    Mutex watchdog-callback: using_defaults
    PidFile: "/var/run/apache2/apache2.pid"
    Define: DUMP_VHOSTS
    Define: DUMP_RUN_CFG
    User: name="www-data" id=33
    Group: name="www-data" id=33

Похожие записи

Установка актуальной nodejs на ubuntu

В официальных репозиториях Ubuntu предлагется дореволюционная версия node.js. В этом руководстве рассказывется как установить актуальную Node.js на Ubuntu или в подсистему linux на Windows 10, что собственно говоря, одно и тоже.

16 июня 2017 г. в Linux

Перенести базы PostgreSQL на другой диск Windows

Если у вас установлен Postgres в конфигурации по умолчанию, то его базы хранятся в Program Files. Если есть необходимость освободить место на системном диске C, то можно перенести базы данных Postgres на другой диск.

Про популярные linux'ы

Кратко про самые популярные дистрибутивы, используемые для размещения сайтов: Ubuntu, Debian, CentOS, RHEL, Gentoo, Fedora, SuSE

28 февраля 2020 г. в Linux