Веб-сервер

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

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

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

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

# apt-get install lamp-server

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

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

# systemctl enable --now httpd2

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

http://localhost/

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

MySQL:

# systemctl enable --now mysqld

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

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

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

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

На 11-й платформе ALTLinux:

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

Проверяем работу 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 адрес нашего сервера ***.***.***.***

Если в браузере ввести host1, браузер после настройки сервера будет показывать нам содержимое сайта, даже если мы еще не отредактировали DNS записи домаена.

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

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

Проверяем что в файле /etc/http2/conf/http2.conf не стоит комментарий у строки:

Include conf/sites-enabled/*.conf

Для каждого сайта на сервере мы будем создавать свой файл в папке /etc/http2/conf/sites-enabled/ с расширением conf

<VirtualHost *:80>
ServerAdmin admin@repetitoriya.ru
DocumentRoot /var/www/vhosts/it/www
ServerName it.repetitoriya.online
ServerAlias www.it.repetitoriya.online
ErrorLog /var/www/vhosts/it/log/it_err
CustomLog /var/www/vhosts/it/log/it combined
DirectoryIndex index.php
AddDefaultCharset utf-8
<Directory "var/www/vhosts/it/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

Порядок команд имеет значение.