PHP 4 официально устарел с 2007 года и не поддерживается в актуальных репозиториях Ubuntu. Тем не менее, необходимость его использования всё ещё может возникать – например, при поддержке легаси-проектов, которые невозможно быстро переписать под современные версии интерпретатора. Установка PHP 4 на современных системах требует компиляции из исходников, настройки окружения и устранения зависимости от устаревших библиотек.
Платформа Ubuntu по умолчанию не содержит пакетов для PHP 4, поэтому процесс начинается с подготовки сборочного окружения. Убедитесь, что установлены утилиты build-essential, libxml2-dev, libbz2-dev, libjpeg-dev, libpng-dev и другие необходимые зависимости. Без них компиляция завершится с ошибками уже на начальных этапах.
Исходный код PHP 4 доступен на архивах museum.php.net. Выбирайте последнюю стабильную версию – обычно это 4.4.9. Распаковывать архив следует в изолированной директории, так как пути установки и настройки конфигурации будут задаваться вручную. Рекомендуется использовать —prefix при конфигурации для изоляции PHP 4 от системной версии.
Дополнительно потребуется вручную настроить файл php.ini и окружение PATH, чтобы команды php и phpize указывали на правильную версию. Запускать такой стек в продакшене не рекомендуется. Безопаснее использовать контейнеризацию – например, через Docker с базовым образом на старой версии Ubuntu (до 10.04) или Debian Lenny.
Этот материал предназначен для разработчиков, которым необходимо воспроизвести устаревшую среду, не нарушая стабильности основной системы. Все шаги будут приведены с учётом актуальных ограничений современной инфраструктуры Ubuntu.
Подготовка системы и установка зависимостей
PHP 4 больше не поддерживается и отсутствует в актуальных репозиториях Ubuntu, поэтому потребуется настроить окружение вручную. Рекомендуется использовать изолированную систему, например, виртуальную машину или контейнер.
Перед началом убедитесь, что система обновлена:
sudo apt update && sudo apt upgrade -y
Установите инструменты сборки и базовые утилиты:
- build-essential – необходим для компиляции исходников
- libxml2-dev – для поддержки XML
- libpng-dev – для работы с изображениями
- libjpeg-dev – для поддержки JPEG
- libmcrypt-dev – для шифрования (используется в старых версиях PHP)
- libcurl4-openssl-dev – для поддержки cURL
- libmysqlclient-dev – для интеграции с MySQL
- autoconf – генерация скриптов configure
- libreadline-dev – поддержка readline в интерактивном режиме
sudo apt install -y build-essential libxml2-dev libpng-dev libjpeg-dev \
libmcrypt-dev libcurl4-openssl-dev libmysqlclient-dev autoconf libreadline-dev
Создайте рабочую директорию для исходников:
mkdir -p ~/php4-src && cd ~/php4-src
Убедитесь, что в системе установлены утилиты для загрузки файлов:
sudo apt install -y wget
Теперь можно переходить к загрузке исходников PHP 4 и их компиляции.
Загрузка исходных кодов PHP 4 с архива
Официальный сайт PHP больше не поддерживает PHP 4, поэтому исходные коды необходимо загружать из архивного зеркала: https://museum.php.net/php4/. Рекомендуемая версия – PHP 4.4.9, последняя стабильная в линейке.
Откройте терминал и перейдите в каталог для загрузки исходников:
cd /usr/local/src
Загрузите архив с помощью wget
:
wget https://museum.php.net/php4/php-4.4.9.tar.gz
Проверьте целостность архива, сравнив контрольную сумму:
md5sum php-4.4.9.tar.gz
Ожидаемая сумма: c1f2e1c3f7d493bca0193f7b0d3c0a5e
. Несовпадение указывает на повреждённый файл – повторите загрузку.
Распакуйте архив командой:
tar -xzvf php-4.4.9.tar.gz
После распаковки появится директория php-4.4.9
, содержащая исходные коды для последующей сборки.
Распаковка архива и переход в каталог исходников
Скачанный архив с исходным кодом PHP 4 обычно имеет формат .tar.gz или .tar.bz2. Для распаковки переместите файл в удобное место, например, в домашнюю директорию:
mv php-4.4.9.tar.gz ~/
Перейдите в домашнюю директорию и распакуйте архив командой:
tar -xzf php-4.4.9.tar.gz
Если используется архив с расширением .bz2, выполните:
tar -xjf php-4.4.9.tar.bz2
После распаковки будет создан каталог с исходниками, чаще всего с именем php-4.4.9
. Для перехода в него выполните:
cd php-4.4.9
Убедитесь, что в каталоге находятся файлы configure
, Makefile.in
, а также подкаталоги ext
и main
. Их наличие подтверждает корректную распаковку исходников.
Настройка параметров сборки с помощью configure
Перед запуском make
необходимо задать конфигурацию сборки через скрипт configure
. Для PHP 4 он определяет, какие модули будут включены, где искать зависимости и как компилировать исходный код. Запуск выполняется из корня исходников командой ./configure
с нужными параметрами.
Для базовой сборки с поддержкой Apache 1.3 и MySQL используйте:
./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
Если необходимо подключить поддержку GD для работы с изображениями, добавьте:
--with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib
Для использования внешних библиотек важно точно указывать пути, если они не находятся в стандартных директориях. Например, для библиотеки libxml:
--with-xml --with-libxml-dir=/usr/local/libxml
Если требуется компиляция с поддержкой multibyte-строк (mbstring), добавьте:
--enable-mbstring
Параметр --prefix
указывает путь установки. Например, чтобы установить PHP в /opt/php4
:
--prefix=/opt/php4
После подбора всех опций рекомендуется выполнить make clean
перед повторным запуском configure
, чтобы исключить ошибки, связанные с кэшированием предыдущих конфигураций.
Компиляция и установка PHP 4 из исходников
Для сборки PHP 4 потребуется установить зависимости и подготовить систему. Выполните следующие действия:
- Установите необходимые пакеты:
sudo apt update
sudo apt install build-essential libxml2-dev libssl-dev libjpeg-dev libpng-dev libcurl4-openssl-dev libmysqlclient-dev bison re2c
- Скачайте исходники PHP 4, например версии 4.4.9:
wget https://museum.php.net/php4/php-4.4.9.tar.gz
tar -xzf php-4.4.9.tar.gz
cd php-4.4.9
- Сконфигурируйте сборку:
./configure --prefix=/usr/local/php4 \
--with-config-file-path=/usr/local/php4/etc \
--with-mysql \
--with-openssl \
--with-zlib \
--with-curl \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-track-vars \
--enable-force-cgi-redirect \
--enable-bcmath \
--enable-mbstring
- Запустите компиляцию:
make
- Установите:
sudo make install
Скопируйте файл конфигурации:
cp php.ini-dist /usr/local/php4/etc/php.ini
Проверьте работоспособность:
/usr/local/php4/bin/php -v
Настройка php.ini и базовых параметров
Файл конфигурации php.ini управляет многими параметрами работы PHP. В Ubuntu он обычно находится в каталоге /etc/php/4.4/apache2 или /etc/php/4.4/cli, в зависимости от того, используете ли вы Apache или командную строку.
Откройте php.ini для редактирования с помощью текстового редактора, например, nano:
sudo nano /etc/php/4.4/apache2/php.ini
Основные параметры, которые стоит настроить:
memory_limit – ограничение памяти для выполнения сценариев. Установите его на значение, соответствующее нагрузке на сервер. Например:
memory_limit = 128M
max_execution_time – максимальное время выполнения скрипта. Увеличьте это значение, если работа с большими данными требует больше времени.
max_execution_time = 30
error_reporting – настройка отображения ошибок. На сервере можно установить значение E_ALL для отображения всех ошибок, но на продакшн-сервере лучше использовать E_ALL & ~E_DEPRECATED & ~E_STRICT.
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
log_errors – включает запись ошибок в лог-файл. Это полезно для мониторинга ошибок без их отображения на странице.
log_errors = On
file_uploads – включение или отключение загрузки файлов. Если на сервере предполагается работа с файлами, эта опция должна быть включена.
file_uploads = On
upload_max_filesize – максимальный размер загружаемого файла. Установите значение в зависимости от потребностей вашего проекта.
upload_max_filesize = 10M
post_max_size – максимальный размер данных, передаваемых методом POST. Это значение должно быть больше, чем upload_max_filesize.
post_max_size = 20M
date.timezone – настройка временной зоны. Укажите вашу временную зону для корректной работы с датами и временем. Пример для Москвы:
date.timezone = Europe/Moscow
После внесения изменений перезапустите Apache для применения настроек:
sudo service apache2 restart
Интеграция PHP 4 с Apache 2
Для интеграции PHP 4 с Apache 2 необходимо выполнить несколько шагов, обеспечивающих правильную работу PHP через веб-сервер. PHP 4 поддерживает работу с Apache 2 через модуль mod_php, однако, стоит учитывать, что версия PHP 4 больше не поддерживается и может иметь уязвимости, поэтому установка такого окружения рекомендуется только для тестовых целей или в случае необходимости работы с устаревшими проектами.
Первоначально необходимо установить необходимые пакеты. Для этого откройте терминал и выполните команду:
sudo apt-get install apache2 php4
Этот набор установит как Apache 2, так и PHP 4, но для полноценной интеграции потребуется выполнить дополнительные шаги.
После установки убедитесь, что модуль PHP 4 подключен к Apache. Для этого проверьте наличие файла конфигурации PHP для Apache:
sudo a2enmod php4
Если команда не вернула ошибок, это означает, что модуль был успешно подключен. Перезапустите Apache для применения изменений:
sudo systemctl restart apache2
Далее, необходимо настроить конфигурацию Apache для работы с PHP. Откройте файл конфигурации Apache:
sudo nano /etc/apache2/apache2.conf
Убедитесь, что в файле присутствуют следующие строки, позволяющие Apache обрабатывать PHP-скрипты:
AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml
После внесения изменений сохраните файл и перезапустите Apache снова:
sudo systemctl restart apache2
Для проверки работы PHP 4 создайте файл info.php в директории вашего веб-сайта (например, /var/www/html) со следующим содержанием:
Перейдите в браузере по адресу http://localhost/info.php. Если все настроено правильно, вы увидите страницу с информацией о версии PHP и настройках окружения.
Важно: учитывая, что PHP 4 уже не поддерживается, рекомендуется в случае реальной работы на сервере использовать более актуальные версии PHP, такие как PHP 7.x или PHP 8.x, которые обеспечивают лучшую производительность и безопасность.
Проверка работоспособности и отладка ошибок
После установки PHP 4 на Ubuntu важно убедиться, что сервер правильно настроен и работает. Для этого выполните несколько шагов.
1. Проверьте версию PHP с помощью команды:
php -v
Если PHP установлен корректно, вы увидите информацию о версии, включая «PHP 4.x.x». В случае ошибки версия не отобразится, и потребуется повторно проверить настройки.
2. Для проверки конфигурации сервера создайте файл с расширением .php (например, info.php) в корневой директории вашего веб-сервера (обычно это /var/www/html) с таким содержимым:
<?php phpinfo(); ?>
Перейдите по адресу http://localhost/info.php в браузере. Это отобразит подробную информацию о текущей конфигурации PHP. Если страница не отображается, проверьте настройки веб-сервера Apache и файл конфигурации PHP.
3. Если веб-страница не работает, проверьте журналы ошибок Apache. Файл журнала обычно находится по пути:
/var/log/apache2/error.log
Здесь будут отображены конкретные ошибки, связанные с запуском PHP или настройками веб-сервера. Особое внимание стоит уделить строкам, содержащим «PHP», так как это поможет быстро идентифицировать проблему.
4. Для отладки ошибок PHP используйте настройку отображения ошибок в файле php.ini. Найдите директиву error_reporting и установите ее значение:
error_reporting = E_ALL
Также включите отображение ошибок:
display_errors = On
После этого все ошибки, предупреждения и уведомления PHP будут отображаться в браузере, что значительно упростит поиск и устранение проблем.
5. В случае специфических ошибок, связанных с расширениями PHP, убедитесь, что все необходимые модули установлены и активированы. Например, для работы с MySQL в PHP 4 необходим модуль php4-mysql. Установите его с помощью команды:
sudo apt-get install php4-mysql
Затем перезапустите Apache:
sudo service apache2 restart
6. Если ошибки продолжают возникать, проверьте версию Ubuntu. PHP 4 может не поддерживаться в более новых версиях Ubuntu, и вам потребуется использовать старую версию операционной системы или искать альтернативные решения.
Вопрос-ответ:
Как установить PHP 4 на Ubuntu?
Для установки PHP 4 на Ubuntu потребуется выполнить несколько шагов. Сначала нужно обновить список пакетов с помощью команды `sudo apt update`. Затем установите PHP 4 с помощью команды `sudo apt install php4`. Этот процесс загрузит все необходимые зависимости и установит PHP 4 на вашу систему. После установки можно проверить версию PHP с помощью команды `php -v`, чтобы убедиться, что установка прошла успешно.
Почему я должен использовать именно PHP 4 для моего проекта?
Использование PHP 4 может быть необходимо в случае, если проект был разработан для этой версии и требует совместимости с устаревшими библиотеками или кодом. В современных условиях PHP 4 не поддерживается и не рекомендуется для новых проектов из-за множества уязвимостей и ограничений. Однако если ваш проект зависит от старой версии PHP, то может потребоваться установка именно этой версии для его корректной работы.
Есть ли какие-то проблемы с безопасностью при использовании PHP 4 на Ubuntu?
Да, использование PHP 4 на Ubuntu может представлять собой риск безопасности. Эта версия больше не поддерживается, и все уязвимости, обнаруженные после завершения поддержки, не будут исправляться. Это означает, что старые версии PHP могут подвергать систему атакам, если на ней работают веб-приложения, использующие уязвимости из этой версии. Если безопасность является приоритетом, рекомендуется использовать более новые версии PHP, такие как PHP 7 или 8.
Как можно использовать PHP 4 на сервере с Ubuntu, если она уже установлена более новая версия PHP?
Если на сервере уже установлена новая версия PHP, например, PHP 7 или 8, но вам нужно использовать PHP 4, можно настроить несколько версий PHP на одной системе. Для этого можно использовать такие инструменты, как `update-alternatives`, чтобы переключаться между версиями PHP. Например, можно установить PHP 4 параллельно с более новой версией, а затем выбрать активную версию для выполнения веб-приложений. Это можно сделать с помощью команд `sudo update-alternatives —config php` и установки соответствующей версии. Также можно настроить сервер Apache или Nginx для использования нужной версии PHP для определенных сайтов.