Настройка сервера · 2 min read · Oct 23, 2025

Запуск Apache2 с PHP5 и PHP4 одновременно

Запуск Apache2 с PHP5 и PHP4 одновременно

Версия 1.0
Автор: Фалко Тимме
Последнее редактирование: 02/07/2006

Этот учебник показывает, как установить и настроить Apache2 с включенными PHP5 и PHP4 одновременно. Поскольку невозможно запустить PHP5 и PHP4 как модули Apache, мы должны запустить один из них как CGI, а другой как модуль Apache. В этом документе я буду использовать PHP5 как модуль Apache и PHP4 как CGI, и я опишу настройку для дистрибутивов Linux Debian Sarge (3.1) и Ubuntu 5.10 (Breezy Badger).

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

1 Настройка для Debian Sarge (3.1)

Сначала у вас должна быть хотя бы рабочая базовая установка Debian, как описано на первых двух страницах учебника “Идеальная настройка” для Debian Sarge здесь, на HowtoForge: https://www.howtoforge.com/perfect_setup_debian_sarge и https://www.howtoforge.com/perfect_setup_debian_sarge_p2

Поскольку PHP5 недоступен в официальных репозиториях Debian Sarge, нам нужно добавить другой репозиторий ( packages.dotdeb.org) в /etc/apt/sources.list. Добавьте эти две строки:

| deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all |

в /etc/apt/sources.list (мой выглядит так:

| deb http://ftp2.de.debian.org/debian/ stable main deb-src http://ftp2.de.debian.org/debian/ stable main deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all deb http://security.debian.org/ stable/updates main |

) и выполните

apt-get update

после этого.

Теперь мы можем установить Apache2, а также модуль Apache2-PHP5 и PHP4-CGI:

apt-get install apache2 apache2-doc
apt-get install libapache2-mod-php5 php4-cgi

Далее мы можем установить все необходимые модули PHP5 и PHP4 на нашем сервере, вот так:

apt-get install php5-curl php5-dev php5-gd php5-gmp php5-imap php5-ldap php5-mcrypt php5-mhash php5-ming php5-mysql php5-mysqli php5-odbc php5-pdo-mysql php5-pdo-sqlite php5-pear php5-pspell php5-snmp php5-sybase php5-tidy php4-curl php4-domxml php4-gd php4-gmp php4-imap php4-ldap php4-mcal php4-mcrypt php4-mhash php4-ming php4-mysql php4-odbc php4-pspell php4-recode php4-snmp php4-xslt php4-xdebug curl libwww-perl imagemagick (1 строка!)

Отредактируйте /etc/apache2/apache2.conf. Измените

| DirectoryIndex index.html index.cgi index.pl index.php index.xhtml |

на

| DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml |

и добавьте эти две строки также (в секции, где вы можете найти директивы AddType и AddHandler):

| AddHandler php-script .php4 Action php-script /cgi-bin/php4 |

Это обеспечит выполнение PHP-файлов с расширением .php4 как CGI. PHP-файлы с расширением .php будут выполняться модулем Apache2-PHP5.

Далее нам нужно включить несколько модулей Apache, например, модуль actions (в противном случае мы не сможем запустить PHP4 как CGI):

a2enmod actions
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Перезапустите Apache, и вы готовы!

/etc/init.d/apache2 restart

Теперь мы можем протестировать нашу установку: Поместите два файла, info.php и info.php4, с одинаковым содержимым:

| |

в /var/www (это корневая директория документов по умолчанию для Apache2 в Debian) и попробуйте получить к ним доступ через браузер (если IP-адрес сервера 192.168.0.100, например, вы должны ввести http://192.168.0.100/info.php и http://192.168.0.100/info.php4). Вы должны увидеть две разные версии PHP, одна из которых выполняется как модуль Apache (PHP5), а другая (PHP4) вызывается как CGI:

info.php:

info.php4:

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.