Меню категорій

Декілька сайтів на локальному сервері Ubuntu

Як запустити декілька незалежних сайтів на локальному сервері Linux Mint/Ubuntu, якщо ти працюєш одночасно з кількома проектами.
Категорії: LinuxPHP, HTML, CSS

У попередній статті ми встановлювали на систему Linux Mint (Ubuntu) локальний сервер. Без жодних зусиль таким способом можна створити один сайт, але не більше. Щоб розгорнути на своєму локальному сервері кілька сайтів, потрібно зробити ще декілька речей. Розглянемо їх детально.

Редагуємо хости

У першу чергу заглянемо у файл /etc/hosts – у ньому потрібно знайти стрічку 127.0.0.1 localhost і додати після неї назву свого додатково сайту (чи декількох). Допустимо, ти хочеш додати ще один сайт, доступ до якого буде за адресою http://test. В такому випадку редагуємо вищезгаданий рядок так, щоб він мав отакий вигляд:

127.0.0.1 localhost test

Розташування сайту

Тепер створимо теку для нашого нового сайту. Теку теж назвемо test, щоб не було плутанини:

sudo mkdir /var/www/test

Новій теці бажано змінити права, оскільки дуже часто бувають проблеми із роботою сайтових двигунців, якщо неправильно розподілені права. Тому виставляємо права по правилу "все всім":

sudo chmod -R 777 /var/www/test

Для швидкого доступу можна створити символічне посилання на дану теку в домашній теці. Це справа особиста, даний крок можна пропустити. Якщо ж ні, то вводимо наступну команду:

suno ln -s /var/www/test ~/test

Файл налаштувань для сайту

Створимо де-небудь у домашній теці файл test.conf із наступним вмістом:

<VirtualHost *:80>
    ServerAlias test www.test
    DocumentRoot /var/www/test
    <Directory var/www/test/>
        AllowOverride All
    </Directory>
</VirtualHost>

Його потрібно скопіювати із правами суперкористувача у теку /etc/apache2/sites-available:

sudo mv ./test.conf /etc/apache2/sites-available

Даний сайт не буде працювати, поки ми його не активуємо:

sudo a2ensite test

Для увімкнення семантичних посилань (friendly URL) активуємо ще модуль mod-rewrite:

sudo a2enmod rewrite

Тепер перезапустимо сервер:

sudo service apache2 restart

Все готово, можеш перевірити: сайт, який розміщений у теці /var/www/test, буде доступний у браузері за адресою http://test.

А нижче наведений скрипт, який автоматично створює п'ять сайтів у різних каталогах та виводить посилання на загальну папку із сайтами в домашній папці користувача:

#!/bin/bash

sudo sed -i 's/127.0.0.1 localhost/& test1 test2 test3 test4 test5/' '/etc/hosts'

sudo mkdir /var/www/test1 /var/www/test2 /var/www/test3 /var/www/test4 /var/www/test5

sudo chmod -R 777 /var/www

sudo ln -s /var/www ~/www

touch ./test1.conf ./test2.conf ./test3.conf ./test4.conf ./test5.conf

echo '<VirtualHost *:80>
    ServerAlias test1 www.test1
    DocumentRoot /var/www/test1
    <Directory var/www/test1/>
        AllowOverride All
    </Directory>
</VirtualHost>' > ./test1.conf
echo '<VirtualHost *:80>
    ServerAlias test2 www.test2
    DocumentRoot /var/www/test2
    <Directory var/www/test2/>
        AllowOverride All
    </Directory>
</VirtualHost>' > ./test2.conf
echo '<VirtualHost *:80>
    ServerAlias test3 www.test3
    DocumentRoot /var/www/test3
    <Directory var/www/test3/>
        AllowOverride All
    </Directory>
</VirtualHost>' > ./test3.conf
echo '<VirtualHost *:80>
    ServerAlias test4 www.test4
    DocumentRoot /var/www/test4
    <Directory var/www/test4/>
        AllowOverride All
    </Directory>
</VirtualHost>' > ./test4.conf
echo '<VirtualHost *:80>
    ServerAlias test5 www.test5
    DocumentRoot /var/www/test5
    <Directory var/www/test5/>
        AllowOverride All
    </Directory>
</VirtualHost>' > ./test5.conf

sudo mv ./test1.conf ./test2.conf ./test3.conf ./test4.conf ./test5.conf /etc/apache2/sites-available

sudo a2ensite test1
sudo a2ensite test2
sudo a2ensite test3
sudo a2ensite test4
sudo a2ensite test5

sudo a2enmod rewrite

sudo service apache2 restart

Раджу прочитати:

Прокоментувати

На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.

Цей сайт захищений системою reCAPTCHA від Google. Політика конфіденційності та Загальні положення та умови.