Найти в Дзене
Заметки об ИТ

Установка веб-сервера на операционную систему AltLinux server, p10. Apache2 + PHP8.2 + PostgreSQL17.

Подробно описан процесс конфигурации web-сервиса на базе операционной системы AltLinux Server, версии p10: обзор модулей установки и установка модулей для каждого из сервисов, настройка виртуальных серверов test01.local и test02.local. 1. Установка веб-сервера Apache2. Смотрим список доступных модулей для установки: # apt-cache search apache2 | less "less" позволит прокручивать список "вверх-вниз" По завершению просмотра доступных для установки модулей, наживаем 'q' - для выхода: # apt-get install apache2-full apache2-mods apache2-mod_php8.2 apache2-docs apache2-manual -y По завершению установки модулей Apache2, запускаем сервис `httpd2`: # systemctl start httpd2 ... и проверяем состояние работы: # systemctl status httpd2 Active: active (running) Выполняем запрос к сервису httpd2: 2. Установка PHP8.2 Смотрим список доступных модулей для установки: # apt-cache search php8.2 | less Выполняем установку следующих модулей: # apt-get install php8.2 php8.2-devel php8.2-libs php8.2-gd php8.
Оглавление
Подробно описан процесс конфигурации web-сервиса на базе операционной системы AltLinux Server, версии p10: обзор модулей установки и установка модулей для каждого из сервисов, настройка виртуальных серверов test01.local и test02.local.
Подробно описан процесс конфигурации web-сервиса на базе операционной системы AltLinux Server, версии p10: обзор модулей установки и установка модулей для каждого из сервисов, настройка виртуальных серверов test01.local и test02.local.

1. Установка веб-сервера Apache2.

Смотрим список доступных модулей для установки:

# apt-cache search apache2 | less
"less" позволит прокручивать список "вверх-вниз"
"less" позволит прокручивать список "вверх-вниз"

По завершению просмотра доступных для установки модулей, наживаем 'q' - для выхода:

# apt-get install apache2-full apache2-mods apache2-mod_php8.2 apache2-docs apache2-manual -y

По завершению установки модулей Apache2, запускаем сервис `httpd2`:

# systemctl start httpd2

... и проверяем состояние работы:

# systemctl status httpd2
Active: active (running)
Active: active (running)

Выполняем запрос к сервису httpd2:

-4

2. Установка PHP8.2

Смотрим список доступных модулей для установки:

# apt-cache search php8.2 | less
-5

Выполняем установку следующих модулей:

# apt-get install php8.2 php8.2-devel php8.2-libs php8.2-gd php8.2-mbstring php8.2-pdo php8.2-pdo-devel php8.2-pdo_pgsql php8.2-pgsql -y

В файле /etc/httpd2/conf/mods-available/dir.conf меняем последовательность так, чтобы после DirectoryIndex располагался файл index.php, а не index.html:

-6

В каталоге '/var/www/html' создаём файл index.php следующего содержания:

-7

Перезапускаем сервер:

# systemctl restart httpd2

Просматриваем web-страницу:

-8

3. Установка PostgreSQL17

Смотрим список доступных модулей для установки:

# apt-cache search postgre | less
-9

Для установки PostgreSQL, выбираем следующие модули:

postgresql17 - клиентские программы и библиотеки

postgresql17-server - серверная часть

postgresql17-server-devel - заголовочные файлы для разработчиков

Выполняем установку, выбранных модулей:

# apt-get install postgresql17 postgresql17-server postgresql17-server-devel -y

После установки, выполняем инициализацию кластера базы данных:

# /etc/init.d/postgresql initdb

Запускаем сервис базы данных:

# systemctl start postgresql

Проверяем статус работы сервиса:

# systemctl status postgresql

4. Тестируем подключение к базе данных PostgreSQL, используя php8.2

Запускаем консоль postgresql:

# psql -U postgres

Назначаем пароль пользователю postgres:

postgres=# ALTER USER postgres WITH password '12345678';

Создадим базу данных для теста подключения:

postgres=# CREATE DATABASE test01base;

Пишем скрипт, для тестирования подключения к базе данных:

# nano /var/www/html/test.php

Следующего содержания:

<?php
$host = 'localhost';
$dbname = 'test01base';
$user = 'postgres';
$password = '12345678';
$dsn = "pgsql:host=$host;dbname=$dbname";
$pdo = new PDO($dsn, $user, $password);
if ($pdo) {
echo "Подключение к PostgreSQL успешно установлено!";
} else {
echo "Ошибка подключения к PostgreSQL.";
}
?>
Сообщение об успешном подключении к базе данных.
Сообщение об успешном подключении к базе данных.

5. Отображение ошибок при выполнении php-скриптов

По умолчанию, php работает в продуктивном режиме, и любая ошибка в тексте php-скрипта выводит сообщение о невозможности отображения страницы.

Для того, чтобы перевести работу php в режим разработки, необходимо установить значение `display_errors`, `display_startup_errors` в единицу, и error_reporting в значение E_ALL.

Смотрим где находится файл php.ini:

# php --ini

Значение Loaded Configuration File - `/etc/php/8.2/cli/php.ini`:

# nano /etc/php/8.2/cli/php.ini

Найдите следующие строки:

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off
display_startup_errors = Off

и измените значения на:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On

После сохранения изменений и закрытия файла, перезапустите службу httpd2:

# systemctl restart httpd2

Конец.