Как правильно настроить Linux сервер: Установка и настройка Apache2
|Ранее я описывал базовую конфигурацию сервера, а так же установку и настройку MySQL с подключением Workbench.
Apache2 будем устанавливать из репозиториев. Для этого выполним следующую команду:
sudo apt-get install apache2
Далее необходимо открыть 80 порт на фаерволле:
ufw allow 80
После этого мы можем открыть в браузере ip адрес сервера и убедиться, что всё работает
По умолчанию в веб-сервере 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
Создание виртуальных хостов
Термин виртуальный хост относится к практике размещения более чем одного веб-сайта на одном сервере. Виртуальный хост может быть как привязанным к 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 обрабатывается.
Создадим еще один сайт уже в другой директории
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 обрабатывается.
Может быть интересно: