Установка php5 debian. Настройка совместной работы собранного РНР и Apache

LAMP - является набором программных продуктов, широко применяемых для создания веб-сервисов. Данный набор состоит из операционной системы Linux, одного из самых распространенных веб-серверов Apache, СУБД Mysql и скриптового языка PHP. Данная статья посвящена процедуре стандартной установки и настройки данного набора для дальнейшего использования под веб-сервисы.

В качестве операционной системы был выбран Debian 8, как один из самых популярных дистрибутивов GNU/Linux. Сам процесс установки данной операционной системы рассматриваться не будет, так как не относится к теме статьи.

Все операции по установке и настройке будут выполняться под учетной записью пользователя root.

Установка Apache

Перед началом установки необходимо выполнить команду:

Apt-get install apache2

После завершения установки веб-сервер будет готов к работе. Проверить его работоспособность можно просто, открыв в веб-браузере IP-адрес сервера, на который был установлен пакет Apache. Для версии 2.4 страница заглушка выглядит следующим образом:

Конфигурационный файл Apache, находится в /etc/apache2/apache2.conf

Директория /etc/apache2/sites-enabled/ содержит файлы конфигурации созданных веб-сервисов, а директория /etc/apache2/sites-available/ символические ссылки на файлы конфигураций веб-сервисов, которые на данный момент включены.

С помощью данных файлов конфигураций можно управлять настройкой виртуальных хостов. Сервер Apache позволяет размещать несколько виртуальных хостов (сервисов) на одном сервере. По умолчанию все содержимое веб сервисов располагается в папке /var/www. Размещение содержимого можно изменять, указав это в конфигурационном файле виртуального хоста, за это отвечает директива DocumentRoot.

Рассмотрим создание простейшей веб странички с надписью “Hello World”. Для начала создадим папку, где будет храниться содержимое. Для этого выполним команду:

Mkdir /var/www/helloworld.net

В данной папке создадим простейший html файл index.html следующего содержания:

Hello World

This is a test page.

После того как содержимое простейшей странички присутствует, необходимо создать конфигурационный файл виртуального хоста. Для этого в папке /etc/apache2/sites-available/ создадим файл helloworld.net.conf (не забудьте про расширение conf) со следующим содержимым:

ServerName helloworld.net ServerAdmin [email protected] ServerAlias www.helloworld.net DocumentRoot /var/www/helloworld.net CustomLog ${APACHE_LOG_DIR}/helloworld.net.access.log combined ErrorLog ${APACHE_LOG_DIR}/helloworld.net.error.log

Здесь присутствуют параметры:

  • ServerName – доменное имя виртуального хоста (нашей странички);
  • ServerAdmin – адрес электронной почты администратора;
  • ServerAlias – псевдоним виртуального хоста (доменное имя хоста с добавлением www);
  • DocumentRoot – место, где хранится содержимое самого сервиса;
  • CustomLog - название файла журнала доступа с сервису;
  • ErrorLog – название файла журнала ошибок.

Подробное описание всех параметров и их значений в конфигурационном файле можно посмотреть в официальной документации(http://httpd.apache.org/docs/2.4).

Следующим шагом необходимо включить наш виртуальный хост. Это можно сделать как просто создав символическую ссылку:

Cd /etc/apache2/sites-enabled ln -s ../sites-available/helloworld.net.conf helloworld.net.conf

Также включение и выключение виртуальных хостов можно выполнять, применяя команды a2ensite и a2dissite соответственно.

Для включения:

A2ensite helloworld.net

Для выключения:

A2dissite helloworld.net

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

/etc/init.d/apache2 restart

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

Для проверки страницы, возможно, на компьютере, с которого осуществляется проверка понадобиться добавить строчку в файл hosts:

Xxx.xxx.xxx.xxx helloworld.net

Где xxx . xxx . xxx . xxx – это IP-адрес сервера с установленным Apache. Файл hosts, находится:

  • C:\Windows\System32\drivers\etc (в Win7);
  • /etc/hosts (в Debian).

Установка PHP

Следующий шаг – это установка скриптового языка PHP. Установка осуществляется командой:

Apt-get install php5

Теперь необходимо проверить работу PHP. Для этого добавим в папку с содержимым сайта (/var/www/helloworld.net) файл test.php. В данный файл необходимо написать следующее:

Следует отметить, что существует модуль PHP под сервер Apache. Этот модуль позволяет Apache и PHP работать более эффективно. Проверить установлен ли модуль можно:

Dpkg -l | grep libapache2-mod-php5

Если модуля нет, то его надо установить:

Apt-get install libapache2-mod-php5.

Проверить подключен ли модуль в самом сервере Apache можно следующим образом:

Ls -l /etc/apache2/mods-enabled/ | grep php5

Должно появиться следующее:

Lrwxrwxrwx 1 root root 27 Sep 2 10:07 php5.conf -> ../mods-available/php5.conf lrwxrwxrwx 1 root root 27 Sep 2 10:07 php5.load -> ../mods-available/php5.load

Если модуль не включен, его по аналогии с виртуальными хостами можно включить командой

A2enmod php5

Выключается модуль командой a2dismod.

Установка mysql

Последним шагом к подготовке среды для работы с веб-сервисами является установка СУБД mysql. Установка осуществляется командой:

Apt-get install mysql-server php5-mysql

В процессе установки необходимо будет ввести пароль для пользователя root.

После завершения установки проверить работу mysql можно подключившись к самой СУБД.

Mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.49-0+deb8u1 (Debian) … mysql>

На этом базовая подготовка сервера завершена. Дополнительно для управления базой данных можно еще установить утилиту phpmyadmin.

Apt-get install phpmyadmin

При установке нужно указать сервер с которым будет производиться работа, это позволит программе установке автоматически настроить утилиту для работы с данным сервером.

Также можно ответить положительно на предложение о настройке базы данных.

И несколько раз ввести пароль для администратора базы данных (тот что был указан для root пользователя при установке mysql).

После завершения установки phpmyadmin. Его работу можно проверить перейдя по ссылке http://localhost/phpmyadmin (если браузер открывается с того же сервера) или по ссылке http://xxx.xxx.xxx.xxx/phpmyadmin с другого компьютера, где xxx.xxx.xxx.xxx – это IP-адрес сервера.

Для входа необходимо использовать логин и пароль, заданные при установке mysql.

Раздел содержит информацию и подсказки, относящиеся к установке PHP на » Debian GNU/Linux .

Внимание

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

Хотя и существует универсальная инструкция по установке PHP на Unix/Linux, в этом разделе мы рассмотрим особенности специфичные для Debian, такие как использование команд apt-get или aptitude . В рамках этого руководства обе эти команды рассматриваются как взаимозаменяемые.

Использование APT

Во первых, обратите внимение на то, что некоторые пакеты связаны: libapache2-mod-php5 нужен для интеграции с Apache 2, и php-pear с PEAR.

Во-вторых, перед установкой убедитесь, что список пакетов находится в актуальном состоянии. Как правило, это делается с помощью команды apt-get update .

Пример #1 Пример установки Apache 2 на Debian

# apt-get install php5-common libapache2-mod-php5 php5-cli

APT автоматически установит модуль PHP 5 для Apache 2 и все их зависимости и, затем, активирует их. Apache должен быть перезапущен для того, чтобы изменения вступили в силу. Например:

Пример #2 Остановка и запуск Apache после установки PHP

# /etc/init.d/apache2 stop # /etc/init.d/apache2 start

Контроль конфигурации

Изначально, PHP устанавливается только с основными модулями ядра. Если вы хотите установить дополнительные модули, такие как MySQL , cURL , и т.д., это также можно сделать с помощью команды apt-get .

Пример #3 Способы получить список дополнительных пакетов PHP 5

# apt-cache search php5 # aptitude search php5 # aptitude search php5 |grep -i mysql

Будет выведен список большого числа пакетов, включая несколько специфичных, таких как php5-cgi, php5-cli и php5-dev. Определите, какие вам нужны и установите с помощью apt-get или aptitude . И, так как Debian производит проверку зависимостей, вам будет выведен запрос на их установку.

Пример #4 Установка PHP с MySQL и cURL

# apt-get install php5-mysql php5-curl

APT автоматически добавит необходимые строки в соответствующие php.ini , /etc/php5/apache2/php.ini , /etc/php5/conf.d/pdo.ini , и т.д. В зависимости от модуля, будут внесены записи типа extension=foo.so . В любом случае, чтобы эти изменения вступили в силу, необходимо будет перезапустить сервер веб-сервер.

Стандартные проблемы

  • Если скрипты PHP не разбираются веб-сервером, то скорее всего это означает, что PHP не был добавлен в конфигурацию веб-сервера. На Debian это обычно /etc/apache2/apache2.conf или похожий. Смотрите документацию Debian для выяснения подробностей.
  • Модуль, по-видимому, установлен, а его функции все равно не распознаются. В таком случае убедитесь, что соответствующий ini-файл был загружен и/или веб-сервер был перезагружен после установки модуля.
  • Для установки пакетов в Debian существуют две основных команды (не считая стандартных вариантов Linux): apt-get и aptitude . Объяснения их синтаксиса, особенностей и отличий друг от друга выходит за рамки данного руководства.

While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.

Thank you!

2 years ago

Compiling PHP on Ubuntu boxes.

If you would like to compile PHP from source as opposed to relying on package maintainers, here"s a list of packages, and commands you can run

STEP 1:
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev

So you don"t overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live

Mkdir -p ~/bin/php7-latest/

STEP 2:
# download the latest PHP tarball, decompress it, then cd to the new directory.

STEP 3:
Configure PHP. Remove any options you don"t need (like MySQL or Postgres (--with-pdo-pgsql))

./configure --prefix=$HOME/bin/php-latest \
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-pdo-pgsql=/usr/bin/pg_config \
--enable-bcmath \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-mbstring \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--with-libzip=/usr/lib/x86_64-linux-gnu \
--with-zlib \
--with-curl \
--with-pear \
--with-openssl \
--enable-pcntl \
--with-readline

STEP 4:
compile the binaries by typing: make

If no errors, install by typing: make install

STEP 5:
Copy the PHP.ini file to the install directory

Cp php.ini-development ~/bin/php-latest/lib/

cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

STEP 7:
create symbolic links for your for your binary files

Cd ~/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm

STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version

# add this to .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

STEP 9: Start PHP-FPM

Sudo ~/bin/php7/sbin/php-fpm

5 years ago

To install LAMP stack on Ubuntu (+Server) from 10.04 you need first install taskel and then lamp-server for example:

Install taskel, follow terminal guides:
sudo apt-get install tasksel

Install LAMP stack package from Ubuntu repository:
sudo tasksel install lamp-server

Хотелось бы рассказать как я устанавливал apache2 c php5 и mysql, а так же phpmyadmin на Debian, Ubuntu и Linux Mint в своей статье «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint». У меня установлен Debian, работать будет так же на Ubuntu и Linux Mint.

Я использую my_server.example.net — это доменное имя с 192.168.16.66- это его айпишник. Они будут отличны от ваших, и их можно настроить под себя. А посмотреть можно вот так:

# vim /etc/hosts [...] 192.168.16.66 my_server.example.net [...]

Я буду запускать все команды с привилегиями суперюзера, поэтому убедитесь, что вы вошли в вашу систему как администратор (root):

Установка Mysql

Когда я начал писать эту статью, то последняя версия mysql была 5, сейчас установим:

# apt-get install mysql-server mysql-client

В ходе установки, попросят ввести пароль для MySQL (для полного доступа, для рута) — это пароль будет одинаков как для root@localhost, так и для root@my_server.example.net. Его нужно ввести 2 раза.

Еще полезные статьи по теме:
1. 2. 3.
4.
5.

Установка apache2

Apache2 содержится в репозитории Ubuntu, как пакет, по этому я могу установить следующим образом:

# apt-get install apache2

После того как завершится установка, нужно перейти в свой ​​браузер на http://ip_server_or-IP (у меня это http://my_server.example.net), и вы должны увидеть страницу приветствия Apache2 (Это работает!), на английском «It’s works!». По этому если вы это увидели, то сервер работает нормально.

Домашняя директория с apache-м, по умолчанию, находится в /var/www на Debian, и файл конфигурации лежит в /etc/apache2/apache2.conf. Дополнительные конфигурации хранятся в подкаталогах, в таких как /etc/apache2/mods-enabled (для модулей Apache), /etc/apache2/sites-enabled (для виртуальных хостов), и /etc/apache2/conf.d.

Установка PhP5

Мы можем установить пхп и модуль для работы вот так:

# apt-get install php5 libapache2-mod-php5

Перезапускаем веб сервер чтобы все что установили вступило в силу:

Для того чтобы убедится что все хорошо работает у нас, нужно создать файл в домашней директории апача (если вы не меняли то он находится по пути /var/www) и добавим php код который будет выводить полезную информацию о установленных приложения (php, apache, модули и тд):

# vim /var/www/php_info.php

Открываем браузер и переходим на этот файл:
http://your_ip/php_info.php

Вы должны увидеть некоторые данные на экране. Чтобы была поддержка MySQL в PHP,нужно установить php5-mysql пакет. Сейчас я установлю полезные модули, по этому, если нужны они вам, то устанавливайте (они не помешают), так же можно выбрать самое необходимое и не ставить все что я ставлю себе.

# apt-cache search php5

Выберите те, которые вам нужны, и установить их так:

# apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-suhosin

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

Теперь перезагрузите сервер:

# /etc/init.d/apache2 restart

XCache — модуль для кэширования и оптимизации промежуточного кода PHP. У него есть пару аналогов, таких как Eaccelerator и APC. Я рекомендую, чтобы хотя бы один из них был установлен у вас он должен ускорить работу ваших страниц которые написаны на PHP.

XCache можно установить следующим образом:

# apt-get install php5-xcache

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

# /etc/init.d/apache2 restart

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

# php -m

Теперь перезагрузите страничку с нашим php_info в вашем браузере и прокручиваем вниз до раздела модулей. Теперь вы должны найти много новых модулей там, в том числе модуля MySQL.

Установка phpmyadmin

Если нужно установить именно phpmyadmin для работы с вашими базами, то сейчас мы это сделаем:

# apt-get install phpmyadmin

Мастер установки спросит какой веб -сервер вы используете (Web server to reconfigure automatically ): выбираем apache2, есть так же еще lighttpd. На следующий вопрос «Configure database for phpmyadmin with dbconfig-common ?» — отвечаем No. Хотя можно нажать и Yes, тогда установщик спросит пароль для пользователя admin (нужен для входа в phpmyadmin).

Чтобы начать пользоваться phpmyadmin, нужно открыть в браузере:
http://yourIP_or_server/phpmyadmin/

Вводим в поле логин «root», пароль вводим такой как вы создали для mysql.

Настройка mysql

попозже будет(через пару дней)

Настройка apache2

Тут я буду рассказывать основные настройки веб-сервера апач, но по мере возможности. Я с каждым разом редактирую данную статью и добавляю что — то новое в описание.

Виртуальные хосты (Virtualhosts).

Хочу начать я свою настройку с создания и настройки Virtualhosts (виртуальных хостов). Есть много разных способов чтобы создать виртуальные хосты, но я бы посоветовал данный метод (поискав и перебрал много вариантов и литературы, я выбрал именно его).

По умолчанию, веб-сервер апач «слушает» все IP-адреса которые доступны для виртуального сервера. Это не есть хорошо, по этому нужно подредактировать и настроить его на прослушивание только определенного ИП-адреса. Даже если Вы имеете только один IP адрес!

Делаем изменение в файле ports.conf:

# vim /etc/apache2/ports.conf [...] NameVirtualHost 192.168.16.66:80 [...]

Измените данный ИП-адрес на свой!

Делаем изменение в файле default:

# vim /etc/apache2/sites-available/default

Теперь я создам 1 виртуальный хост в качестве примера:

# vim /etc/apache2/sites-available/test ServerAdmin [email protected] # введите свой емейл ServerName 192.168.16.66 # замените на свой IP ServerAlias www.192.168.16.66 # замените на свой ИП-адрес или доменное имя DocumentRoot /var/www/192.168.16.66/public_html/ # домашняя директория для данного домена или сайта ErrorLog /var/www/192.168.16.66/logs/error.log # файл для хранения ошибок CustomLog /var/www/192.168.16.66/logs/access.log combined # # папка для хранения ошибок

Создадим папки которых нет:

# mkdir -p /var/www/192.168.16.66/ # mkdir -p /var/www/192.168.16.66/public_html # mkdir -p /var/www/192.168.16.66/logs

После всех изменений, нужно подключить данный домен в apache:

# a2ensite test

И перезагрузить веб-сервер:

# /etc/init.d/apache2 reload

Можно отключить данный сайт (виртуальный хост test)следующей командой:

# a2dissite test

Чтобы проверить работает ли все нормально, я скопирую файл (php_info):

# cp /var/www/php_info.php /var/www/192.168.16.66/public_html/

Можно открыть браузер и перейти:
http://192.168.16.66/php_info.php

Настройка PHP5

Все изменения нужно проводить в конфигурационном файле php.ini, сейчас мы его немного поправим:

# vim /etc/php5/apache2/php.ini [...] max_execution_time = 30 memory_limit = 64M error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR display_errors = Off log_errors = On error_log = /var/log/php.log register_globals = Off [...]

Вот и все, данная тема «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint» полностью раскрыта, можно использовать наш установленный LAMP.

Для различных версий Debian по умолчанию из репозитория устанавливаются различные версии РНР. Так при выполнении из консоли сервера с Debian 8 команды apt-get update && apt-get install php5 будет установлен пакет РНР версии 5.6, при выполнении той же команды на Debian 7 будет установлен пакет с версией 5.4.

Установка PHP Debian 8 (версии 5.6 и 5.4)

Для того чтобы установить PHP. 5.6 на Debian 8 достаточно выполнить одну команду

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

Выполем установку пакета

После установки можно проверить версию выполнив команду php -v (выведется версия php-cli) или создать в корне любого сайта на сервере файл phpinfo.php, в который поместить код на PHP: . При обращении к файлу через браузер будет выведена используемая версия РНР вместе с другими настройками.

Даунгрейд PHP на Debian 8 Jessie

В некоторых случая необходимо, чтобы на одном сервере работали сайты использующие разные версии РНР или версия РНР, которая для данной операционной системы не является используемой по умолчанию. Для примера рассмотрим сборку и установку РНР 5.4. РНР 5.6 при этом удалим.

Собирать пакет будем в другом каталоге, но исходники скачаем в /opt

Скачиваем исходники с официального сайта

wget http://museum.php.net/php5/php-5.4.9.tar.gz

Распаковываем архив и переходим в каталог одноименный версии РНР

tar -xzvf php-5.4.9.tar.gz

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

apt-get install apache2-dev

apt-get install libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libpq-dev libicu-dev libfreetype6-dev libldap2-dev libxslt-dev

apt-get install build-essential

Создадим каталог под скомпилированный пакет

Теперь удаляем PHP 5.6

apt-get remove php5-cgi php5-cli php5-common

Последняя команда выведет все пакеты на сервере, имеющие в имени php5, если apt-get remove php5-* не справился со своей задачей удаляем все пакеты из вывода dpkg -l | grep php5 вручную

apt-get remove php5-apcu php5-cgi php5-cli php5-common php5-curl php5-gd php5-imagick php5-json php5-mcrypt php5-mysql

apt-get autoremove php5-*

Убеждаемся в том, что никаких пакетов не осталось

Теперь можно перейти в каталог с исходниками и приступить к сборке

./configure —prefix=/usr/local/php/ —with-config-file-path=/usr/local/php/ —with-pdo-pgsql —with-zlib-dir —enable-mbstring —with-libxml-dir=/usr —enable-soap —enable-calendar —with-curl —with-zlib —with-gd —with-pgsql —disable-rpath —enable-inline-optimization —with-zlib —enable-sockets —enable-sysvsem —enable-sysvshm —enable-pcntl —enable-mbregex —with-mhash —enable-zip —with-pcre-regex —with-mysql —with-pdo-mysql —with-mysqli —with-png-dir=/usr —enable-gd-native-ttf —with-fpm-user=nginx —with-libdir=lib64 —enable-ftp —with-kerberos —with-gettext —with-gd —with-jpeg-dir=/usr/lib/

Можно использовать при сборке дополнительные компоненты, часть из представленных удалить.

При установка завершена успешно в выводе будет соответствующая надпись и путь к основным файлам, в т.ч. к бинарному файлу

Обратившись к нему из консоли можно увидеть установленную из исходником версию РНР

/usr/local/php/bin/php-cgi -v

Копируем из каталога с исходными кодами файл php.ini с настройками РНР

cp php.ini-production /usr/local/php/lib/php.ini

Проверяем версию

/usr/local/php/bin/php-cgi -v

PHP 5.4.9 (cgi-fcgi) (built: Jun 17 2017 15:58:19)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Настройка совместной работы собранного РНР и Apache

Теперь необходимо дать понять веб-серверу, обрабатывающему пользовательские запросы, что необходимо использовать только что установленный в систему пакет

Смотрим используется на сервере модуль РНР, fcgid или php-fpm. В данном случае заранее известно, что у нас fcgid

apache2ctl -M | grep fcgid

fcgid_module (shared)

Просматриваем конфигурационный файл

less /etc/apache2/conf-enabledphp-fcgi.conf


SetHandler application/x-httpd-php


SetHandler application/x-httpd-php-source
Order Deny,Allow
Deny from all


Order Deny,Allow
Deny from all

ScriptAlias /cgi-wrapper /var/www/web/cgi-bin/
Action application/x-httpd-php «/cgi-wrapper/php»
SetHandler fcgid-script
Order allow,deny
Allow from all

Из его содержимого видно, что обработчик скриптов подключается за счет файла /var/www/web/cgi-bin/php

Просматриваем его и видим, что в файле указывается бинарник, за счет которого и обрабатываются скрипты

less /var/www/web/cgi-bin/php

#!/usr/local/php/bin/php-cgi

Заменяем его и видим при помощи echo на тот, что указывался в выводе make

echo «#!/usr/local/php/bin/php-cgi» > /var/www/web/cgi-bin/php

Обращаясь к phphinfo теперь можем видеть, что цель достигнута и на Debian 8 работает РНР 5.4

Расширения PHP. которые не использовались при сборке можно собрать отдельно и подключить в php.ini

В репозиториях седьмого Дебиана оказалась только php 5.4.

Но для работы многих скриптов требуется Php 5.3. От себя добавлю, что данный блог и joomla выше 1.5 нормально работает как на php 5.4-5.6 так и на 5.3. Конечно придется настроить интерпетатор и возможно немного поправить расширения Джумлы, тогда понижение версии может быть излишним.

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

Aptitude purge `dpkg -l | grep php | grep -w 5 | awk "{print $2}" | xargs`

или командой:

Apt-get remove --purge `dpkg -l | grep php | grep -w 5 | awk "{print $2}" | xargs`

Обратите внимание что при этом удаляется и вебсервер Apache, если установлен и Phpmyadmin!

Для начала нужно подключить репозитории squeeze. Открываем файл /etc/apt/sources.list редактором vim или другим (можно воспользоваться редактором Notepad++ о котором я говорил водном из постов) и добавляем:

Deb deb http:// archive.debian.org/ debian/ squeeze main deb-src http:// archive.debian.org/ debian/ squeeze main

После чего выполняем команду apt-get update .

Cмотрим, какая версия php 5.3.* доступна для установки:

apt - cache showpkg php5 Provides:
5.4.4-14+deb7u7 -
5.4.4-14+deb7u5 -
5.3.28-1~dotdeb.0 -
5.3.3-7+squeeze18 -
5.3.3-7+squeeze17 -

Ну и теперь можно ставить PHP 5.3 и отдельные пакеты с помощю aptitude

Aptitude install - t squeeze php5

При этом будет предложено установить Web-сервер Apache.

Следующие НОВЫЕ пакеты будут установлены: apache2-mpm-prefork{ a} apache2-utils{ a} apache2.2-bin{ a} apache2.2-common{ a} libapache2-mod-php5{ a} libapr1{ a} libaprutil1{ a} libaprutil1-dbd-sqlite3{ a} libaprutil1-ldap{ a} libdb4.8{ a} libonig2{ a} libqdbm14{ a} libssl0.9.8{ a} php5 php5-cli{ a} php5-common{ a} ssl-cert{ a} 0 пакетов обновлено, 17 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено. Необходимо получить 12 ,9 MB архивов. После распаковки 34 ,8 MB будет занято. Хотите продолжить? [ Y/ n/ ?]

Соглашаемся и в итоге у нас будет установлен из репозитория Apache 2.2.16

После установки, все пакеты нужно будет заморозить, чтобы при установке обновлений ОС php не был обновлён до последней версии 5.4. Делается это при помощи aptitude.

Aptitude hold php5

Для того чтобы не замораживать пакеты можно создать файл /etc/apt/preferences.d/php-apache-squeeze, где прописать приоритеты:

Package: *php5*
Pin: release a=squeeze
Pin: version 5.3*
Pin-Priority: 1000

Package: *apache*
Pin: release a=squeeze
Pin: version 2.2*
Pin-Priority: 1000

Pin: release a=squeeze - полужирным выделено имя ветки дистрибутива.
Pin: version - версия пакетов.

Обратите внимание что в Sqeeze могут отсутствовать пакеты php5-fpm, но как модуль Апача PHP ставится нормально.

Смотрим чтобы был установлен libapache2-mod-php5

Apt-get install libapache2-mod-php5