Веб-сервер

Материал из IT справочник репетитора

Попытка установить и настроить WEB-сервер на база ALTLinux Альт Рабочая станция 10.4.

Общие положения

Устанавливаем сборку ApacheMySQLPHP

# apt-get install lamp-server

Пакет lamp-server сразу устанавливает Apache, MySQL, PHP.

Запускаем службы: Apache:

# systemctl enable --now httpd2

То, что служба заработала можно проверить введя в адресной строке браузера:

http://localhost/

Мы должны получить 403 ошибку - доступ запрещен.

В локальной сети мы также можем проверить работу сервера, введя IP адрес компьютера, результат должен быть тем же.

MySQL:

# systemctl enable --now mysqld

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

Первичная настройка phpMyAdmin

Устанавливаем:

# apt-get install phpMyAdmin phpMyAdmin-apache2-php8.1

Проверяем работу PhpMyAdmin:

http://127.0.0.1/phpMyAdmin

или

http://localhost/phpMyAdmin

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

# mysql
MariaDB [mysql]> CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'password';
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> exit

Проверяем работу PhpMyAdmin еще раз:

http://127.0.0.1/phpMyAdmin

Уже можно войти под пользователем phpmyadmin и паролем password

Виртуальный хостинг - Настройка Apache

Примечание: Все изменения файлов конфигурации выполняем с указанием комментария когда внесена данная правка. Если что-то редактируем - то копируем оригинальную строку и ее комментируем. Такой подход позволит нам легко восстановить работоспособность если что-то случайно сломаем.


За редким исключением на одном сервере располагается несколько сайтов. Доступ к каждому сайту осуществляется по своим адресам. При этом в DNS-записях доменов указан один IP адрес - это адрес нашего сервера. Для того, чтобы сервер "понимал" какой конкретно сайт ему "отдавать" пользователю, он должен знать, какие папки на диске отвечают за конкретный адрес.

Поэтому, виртуальный хостинг это ситуация, когда веб-запросы приходят на один IP но для разных сайтов, а сервер "знает" какую папку показать на конкретный запрос.

Редактируем файл hosts:

# mcedit /etc/hosts

Добавляем запись с IP адресом сервера в нашей локальной сети и адрес сайта

***.***.***.***   host1

Выполняем:

/etc/chroot.d/resolv.all

Проверяем:

$ ping host1

В результате мы должны увидеть IP адрес нашего сервера ***.***.***.***

Создаем каталоги для сайта

/var/www/vhosts/host1/www
/var/www/vhosts/host1/log

Редактируем /etc/httpd2/conf/sites-available/vhosts.conf

<VirtualHost *:80>
ServerAdmin admin@host1.com
DocumentRoot /var/www/vhosts/host1/www
ServerName host1
ServerAlias www.host1
ErrorLog /var/www/vhosts/host1/log/host1_err
CustomLog /var/www/vhosts/host1/log/host1 combined
DirectoryIndex index.html
<Directory "/var/www/vhosts/host1/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Сайты на PHP

Если сайт находится под управлением PHP, то необходимо указать корректный параметр DirectoryIndex в пункте выше. А так же нужно дать доступ серверу Apache.

# chown -R apache2:apache2 /var/www/vhosts/host1/www
# chmod -R 660 /var/www/vhosts/host1/www
# chmod -R u+X /var/www/vhosts/host1/www