Как правильно настроить Linux сервер: Установка и настройка Apache2

Ранее я описывал базовую конфигурацию сервера, а так же установку и настройку MySQL с подключением Workbench.

Apache2 будем устанавливать из репозиториев. Для этого выполним следующую команду:

sudo apt-get install apache2

Далее необходимо открыть 80 порт на фаерволле:

ufw allow 80

После этого мы можем открыть в браузере ip адрес сервера и убедиться, что всё работает

apache2_default_page

По умолчанию в веб-сервере Apache корневая директория для сайтов (document root) расположена в директории /var/www/html

Конфигурационный файл (файл с настройками) веб-сервера Apache находится в файле  /etc/apache2/apache2.conf

Для установку PHP необходимо выполнить команду:

apt-get install php5 libapache2-mod-php5

Дополнительно можно установить и некоторые другие пакеты для работы PHP с различными модулями. Для этого выполним команду:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

После установки нужно выполнить перезагрузку веб-сервера apache:

systemctl restart apache2.service

Для проверки работоспособности PHP в корневой директории (document root) веб-сервера apache

/var/www/html можно создать файл pi.php который будет содержать функцию phpinfo()

echo "<?php phpinfo(); ?>" > /var/www/html/phptest.php

phpinfo

Создание виртуальных хостов

Термин виртуальный хост относится к практике размещения более чем одного веб-сайта на одном сервере. Виртуальный хост может быть как привязанным к IP-адресу, что означает использование отдельного IP адреса для каждого сайта, либо «привязанным к имени», позволяя вам иметь несколько различных имён для каждого IP-адреса.

Для примера создадим 2 тестовых сайта: testsite.com и testsite.biz (с целью не покупать тестовые домены, пропишем в файл hosts у себя на компьютере соответствие данных доменов ip адресу сервера)

Cоздадим новый файл в директории /etc/apache2/sites-available

touch /etc/apache2/sites-available/testsite.com.conf

И приведем его к следующему виду:

<VirtualHost *:80>

        ServerAdmin admin@testsite.com

        ServerName testsite.com

        ServerAlias www.testsite.com

        DocumentRoot "/var/www/testsite.com"

        Options Indexes FollowSymLinks




        <Files ~ "^\.ht">

                Order allow,deny

                Deny from all

        </Files>




        <Directory "/var/www/testsite.com">

                Options -Indexes +FollowSymLinks +ExecCGI

                AllowOverride All

                Order Allow,Deny

                Allow from All

        </Directory>




        ErrorLog /var/log/apache2/testsite.com-error.log




        <IfModule log_config_module>

                CustomLog /var/log/apache2/testsite.com-access.log combined         </IfModule>




</VirtualHost>

Данный конфигурационный файл описывает имя сайта, рабочую директорию и кастомные логи.  Включим данный сайт следующей командой:

a2ensite testsite.com

В качестве домашней директории указана директория /var/www/testsite.com, создадим её и положим в нее файл index.php, который явно будет указывать на принадлежность данной директории к данному сайту. Index.php:

<?php

Echo “testsite.com”;

?>

После этого перейдем по адресу _http://testsite.com и увидим, что сайт работат и php обрабатывается.

Смотрите так же   Переводим сайты WordPress на LEMP (Linux + Nginx + MySQL + php-fpm)

test_site_example

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

Cоздадим новый файл в директории /etc/apache2/sites-available

touch /etc/apache2/sites-available/testsite.biz.conf

И приведем его к следующему виду:

<VirtualHost *:80>

        ServerAdmin admin@testsite.biz

        ServerName testsite.biz

        ServerAlias www.testsite.biz

        DocumentRoot "/var/www/testsite.biz"

        Options Indexes FollowSymLinks




        <Files ~ "^\.ht">

                Order allow,deny

                Deny from all

        </Files>




        <Directory "/var/www/testsite.biz">

                Options -Indexes +FollowSymLinks +ExecCGI

                AllowOverride All

                Order Allow,Deny

                Allow from All

        </Directory>




        ErrorLog /var/log/apache2/testsite.biz-error.log




        <IfModule log_config_module>

                CustomLog /var/log/apache2/testsite.biz-access.log combined         </IfModule>




</VirtualHost>

Данный конфигурационный файл описывает имя сайта, рабочую директорию и кастомные логи.  Включим данный сайт следующей командой:

a2ensite testsite.biz

В качестве домашней директории указана директория /var/www/testsite.com, создадим её и положим в нее файл index.php, который явно будет указывать на принадлежность данной директории к данному сайту. Index.php:

<?php

Echo “testsite.biz”;

?>

После этого перейдем по адресу _http://testsite.biz и увидим, что сайт работат и php обрабатывается.

testsite_biz_example

Может быть интересно:

Добавьте комментарий