Тестовое задание. lamp + php 7 + php 8

Автор: | 16 декабря 2024

Стало интересно проверить свои знания и навыки и я откликнулся на вакансию Ведущий системный администратор. Мне сообщили, что скоро будет выслано тестовое задание, которое нужно выполнить в течение часа. Ну а спустя некоторое время пришло вот такое вот задание:

Добрый день!
В продолжении разговора направляем Вам тестовое задание.
Поставьте и настройте lamp +  php 7 + php 8. Предоставьте ссылки по
http с указанными версиями php. Например, http://192.168.1.135/7.php и http://192.168.1.135/8.php
*** SSH ***
username: root
password: *********
Результат отправьте ответным письмом.

Зайдя по ssh я увидел такую вот виртуалку.

Меня это немного смутило — с AlmaLinux я еще не сталкивался. Когда то давно любил очень Федорушку, но потом как то все перетекло в Debian/Ubuntu и все чаще использовался Nginx. Поэтому данная статься может быть не интересна тем, кто постоянно работает с такой системой и апачем. Я же решил поковыряться и заодно описать что и как получилось. Так что не обессудьте...

Скажу сразу — задание за час я не выполнил — апач и обе версии php я установил и запустил, но потом пошел по пути виртуальных хостов (по привычке уже), понял что действую не так. Время рабочее, приходилось отвлекаться. Поэтому по прошествии часа я ответил на письмо, написал что не справился и поблагодарил за интересное задание. А уже вечером скачал свежий дистрибутив Almalinux и запустил на нем виртуалку. Открыл мануалы по апачу и сделал все вот так вот.

Моя виртуалка немного отличалась версией, но не критично.

Ставим Apache и добавляем правила для файрвола.

Делаем небольшие правки в файле /etc/httpd/conf/httpd.conf

Этого хватит, рестартуем апач и проверяем его состояние.

Проверка статуса веб сервера Apache

С апачем пока все, ставим две версии php — 7.4 и 8.4

Для начала добавим репозиторий remi и проверим какие версии и модули php нам доступны

Получаем что-то вроде этого:

Отлично, идем дальше.

Выключаем модуль php и включаем модуль php:remi-7.4 и после этого ставим дополнительные компоненты php74 и php74-php-fpm

Устанавливаем php7.4 и дооплнительные модули для него.

И теперь тоже самое для версии 8.4

Ставим php 8/4 и модули для него.

Стартуем обе версии и проверяем их статус

Запускаем обе версии php и проверяем их статус

Все работает. Теперь перезапустим Апач, создадим два файла php и проверим что получилось.

А теперь создадим файл .htaccess с таким вот содержимым:

Перезапустим Apache и проверим.

Ответ сервера отображение информации о версии php

Информация о версии 7

ответ сервера, отображение информации о версии php

Информация о версии 8.

Все получилось. Реально получилось сделать все это меньше чем за час. Через виртуальные хосты тоже можно сделать, но тогда появится еще один уровень вложенности ну или обращение по разным именам хостов. А тут обращение на один и тот же айпишник (или имя сервера) и только разные файлы, которые обрабатываются разной версией обработчика php

Мне решение понравилось. Но я больше люблю Nginx и следом напишу как это сделать в нем, просто через location.

Всем добра.

Тестовое задание. lamp + php 7 + php 8: 1 комментарий

  1. Владимир

    Интересное задание. По сути простое, если работаешь с apache. Я бы тоже не догадался, как быстро выдать разные версии php на нём. Просто нет практики. В Nginx бы через location без проблем настроил.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*