Меню Рубрики

Установка php из исходников debian

Установка PHP 5.2 в Debian 7.8. Собираем старый PHP из исходников

Предположим, что в нашей системе установлена последняя версия php из репозиториев. У пользователей Debian 7.8 это будет 5.4. Все бы хорошо, но тут у нас появляется некий «проект», который категорически отказывается работать на современном ПО. Ему подавай только PHP 5.2! Не будем обсуждать качество кода и возможность его переписывания на новый лад. Наша задача попытаться установить в текущее окружение древнюю версию php, сохранив при этом работоспособность версии 5.4. В идеале мы должны получить возможность использовать 5.4 для одних сайтов, а 5.2 для других. Итак, под катом мой вариант установки PHP 5.2 в Debian 7.

Пятиминутная готовность

Как установить последнуюю версию PHP из репозитория в Debian я уже рассказывал. Поэтому будем считать, что PHP 5.4 и Apache у вас уже установлены. Теперь возьмемся за PHP 5.2

Установка пакетов необходимых для сборки php 5.2

Сначала установим несколько дополнительных пакетов. Они нам потребуются во время сборки старичка PHP 5.2.

Теперь необходимо создать символические ссылки на некоторые из выше перечисленных библиотек. PHP будет искать их именно в этих директориях.

Загружаем исходники php 5.2

Загрузим нужную версию php из музея — http://museum.php.net/php5/. Находим в списке версию 5.2 и копируем на нее ссылку. Затем переходим в консоль и загружаем ее на север:

После загрузки извлекаем содержимое архива во временную папку:

Собираем php 5.2

Следующим шагом будет сборка php. Выполняем:

В случае успеха увидим текст лицензионного соглашения (на удивление оно не такое большое) и благодарности за выбор php.

Сконфигурировали, теперь устанавливаем:

После метровой портянки мало полезной служебной информации, готовый к работе php, развернется в директории /opt/php52. Можно прямо сейчас выполнить команду и убедиться, что мы установили именно версию 5.2:

Результатом должно быть что-то вроде:

Последним шагом выставляем права на директорию с php:

Соединяемся с Apache

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

Готовим тестовую страницу

Для удобства тестирования, сразу создадим файлик phpinfo.php:

В нем пишем вызов, знакомой каждому php’шнику функции:

Сохраняем (Ctrl + O) и закрываем файл (Ctrl + X).

Устанавливаем модуль libapache2-mod-fastcgi

Для организации нашего плана нам обязательно придется установить дополнительный модуль для Apache – libapache2-mod-fastcgi. В репозиториях, прописанных в Debian по умолчанию, этого модуля нет. Откроем список репозиториев (/etc/apt/sources.list) и доведем его до следующего вида:

Сохраняем изменения в sources.list. Затем обновим список пакетов:

Отлично, теперь все готово для установки модуля libapache2-mod-fastcgi:

Модуль поставили, активируем его:

Если модуль успешно установился и активировался, то результатом выполнения последней команды будет:

Подключаем PHP как FastCGI

Первым делом нам необходимо сделать обертку для наших скриптов. Создадим в директории с нашим сайтов каталог cgi-bin, выставим на него соответствующие права и сделаем конфиг для php:

Создаем новый файл php52.fcgi:

Наполняем следующим содержимым:

Все, осталось сообщить Apache о нашем намерении использовать FastCGI для определенного сайта. В моем случае таким сайтом является default. В его конфигурационный файл (nano /etc/apache2/sites-available/default) дописываем:

Все, остается только перезапустить Apache и можно приступать к тестированию:

источник

Установка php из исходников debian

Для различных версий 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 при этом удалим.

Читайте также:  Установка всех стекол в 21099

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

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

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

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

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 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

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

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

./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/

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

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

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

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

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

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

fcgid_module (shared)

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

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

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

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

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

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

источник

Установка php7 в Debian 8 Jessie

Совсем недавно вышла финальная версия PHP 7.0.0, а это значит, что разработка достигла своего финала и пора обновить инструкцию по установке PHP 7 в Debian. Процесс сборки PHP 7 выполнялся из исходников под OS Debian 8.

Перед началом компиляции, вы можете добавить или удалить модули из сборки PHP 7. В этой статье я использую минимальный набор модулей, который необходим для нормального функционирования WordPress. Дополнительно я опишу процесс добавления модулей, которые не входят в PHP 7 по умолчанию.

Для начала установим все необходимые для сборки и работы PHP 7 зависимости:

Указанные выше зависимости составлены исходя из указанных мной модулей PHP 7. Если вы хотите добавить другие модули, возможно, понадобиться дополнительно установить необходимые для сборки пакеты. Иначе в процессе выполнения команды ./configure вы получите ошибку.

Установка PHP 7

Все действия будем выполнять в директории:

Скачиваем и распаковываем исходники PHP 7.0.2:

Если на момент чтения этой статьи, уже вышла более свежая версия PHP 7, скачайте самостоятельно исходники с официального сайта.

Переходим в каталог с исходниками PHP 7:

Для того чтобы установить PHP 7, нам необходимо выполнить компиляцию из исходников. Перед тем как начать, добавьте или удалите неиспользуемые модули из состава PHP 7 и укажите параметры сборки.

Данная конфигурация проверена мной и протестирована на WordPress 4.4.1 с минимальным набором плагинов. Если вы хотите добавить в PHP 7 другие модули, найдите их в списке доступных параметров сборки:

Для компиляции и установки PHP 7, необходимо выполнить команду:

Читайте также:  Установка акрониса на диск

Настройка PHP 7

Если в процессе компиляции не было ошибок, файлы PHP 7 должны быть расположены в директории:

Нам осталось внести изменения в конфигурационный файлы и добавить PHP 7 в автозагрузку. Для начала скопируем файл php.ini из каталога с исходниками в каталог установки PHP 7:

Чтобы включить модуль Zend OPcache, создайте файл:

Скопируйте в него следующие параметры:

Для настройки работы PHP-FPM создайте файл:

И добавьте в него следующие параметры:

И добавьте в него параметры:

Добавим PHP 7 в автозагрузку, создадим символическую ссылку на файл php-fpm :

Создадим в каталоге init.d скрипт для запуска PHP-FPM:

источник

Установка php из исходников debian

Раздел содержит информацию и подсказки, относящиеся к установке 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 автоматически установит модуль PHP 5 для Apache 2 и все их зависимости и, затем, активирует их. Apache должен быть перезапущен для того, чтобы изменения вступили в силу. Например:

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

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

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

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

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

Пример #4 Установка PHP с MySQL и 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. Объяснения их синтаксиса, особенностей и отличий друг от друга выходит за рамки данного руководства.

User Contributed Notes 6 notes

To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.

Specifically, the preferred method is now fastcgi, using either of those recipes:

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.

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

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

/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

/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

источник

Как установить PHP 7.2 на Debian 9

Почему вы хотите установить PHP 7.2 на свой Debian 9 VPS?

PHP 7 предлагает гораздо больше возможностей, чем PHP 5.6 и более старые версии PHP. По сравнению с PHP 5.6 PHP 7.2 может выполнять в три раза больше запросов. Если вы установили WordPress на свой Linux VPS, это означает гораздо меньшую нагрузку на сервер, поэтому вы должны ожидать, что ваш сайт будет работать быстрее с PHP 7.2.

Кроме того, PHP 7.2 предлагает некоторые улучшения в области безопасности.

Есть некоторые недостатки, хотя вы можете проверить, прежде чем рассматривать возможность обновления до PHP 7.2.

Предпосылки

Прежде чем приступать к установке PHP 7.2 на ваш Debian VPS, убедитесь, что у вас есть полный доступ к нему root. Подключитесь к серверу через SSH и обновите все системное программное обеспечение до последней доступной версии. Вы можете сделать это, выполнив следующие команды в терминале:

Это обновит пакеты и программное обеспечение, установленное на сервере до последней версии.

Как только ваша система будет полностью обновлена, вы можете перейти к следующему шагу, который устанавливает PHP 7.2.

Установите PHP 7.2 на Debian 9 VPS

Импортируйте ключ подписи и включите PPA для PHP 7.2, используя следующие команды:

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

Если вы получили ошибку, как показано ниже:

Это означает, что есть некоторые недостающие пакеты, которые необходимо установить в первую очередь. Установите необходимые пакеты, выполнив следующую команду:

Запустите команду обновления еще раз.

Наконец, установите PHP 7.2 на свой Debian 9 VPS, включая некоторые из обычно используемых расширений, используя следующую команду:

Чтобы проверить завершение установки, выполните следующую команду:

Результат должен быть очень похож на приведенный ниже:

Изменение/настройка параметров PHP 7.2 на Debian VPS

Следующей вещью, которую вы можете захотеть, является настройка параметров PHP 7.2 в соответствии с вашими требованиями. Вы можете сделать это, отредактировав файл php.ini . Чтобы найти путь к этому файлу, вы можете использовать следующую команду:

Он вернет путь к файлу php.ini , который в настоящее время загружен.

Отредактируйте файл с помощью текстового редактора по вашему выбору. Мы будем использовать nano в этом примере.

После изменения настроек сохраните и закройте файл. Если вы используете Apache в качестве веб-сервера, вам необходимо перезапустить его для загрузки новой конфигурации и для вступления изменений в силу. Если вы используете Nginx и PHP-FPM, вам следует перезапустить службу PHP-FPM.

Вы также можете создать образец info.php и посмотреть, есть ли файлы PHP и выполняются на сервере.

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

По завершении этой статьи вы узнали, как установить PHP 7.2 на ваш сервер на базе Debian 9.
Для руководства по установке PHP 7.2 на Ubuntu 16.04, пожалуйста, следуйте этому руководству по установке PHP 7.2 на Ubuntu 16.04.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

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

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