Как изменить версию php на сервере

Внимание! Если на сервере установлена панель ISPmanager 5, то меняйте версию PHP только с помощью модуля панели "Программное обеспечение".Если Вы установите или настроите ПО вручную, нет гарантий, что панель сможет работать корректно в дальнейшем с данным ПО.

для подключения старого репозитория.

Устанавливать нужно вручную из консоли: Запускаем обновление списка пакетов apt-get update и переустановку с заменой установленного php54 на требуемыйphp53 с теми же расширениями:

Для начала установим python-software-properties
Это программное обеспечение предоставляет средства для управления используемыми APT-репозиториями. Оно управляет как дистрибутивом, так и независимыми репозиториями программ.

И повторяем добавление репозитория.

Расширения, установленные вручную, нужно будет удалить и установить снова. Например, через pecl:

so для PHP 5.5.x лежат в директории /usr/lib/php5/20121212/ — возможно понадобится изменить пути для расширений (например, для zend_extension)

Для обновления PHP ветки 5.3.x до 5.4.x в дистрибутиве CentOS 6.4 и 6.5 потребуется подключить сторонний репозитарий atomic и после этого запустить команду обновления.

На CentOS 6.5 при запросе один раз нажать Enter.

В зависимости от доступных ресурсов на сервере, обновление займет от нескольких минут до получаса. Далее потребуется перезапустить веб-сервер Apache:

ISPmanager5: Зайти в панель, в Features/ПО/Software и нажать кнопку «Обновить», галочку «Update available software» поставить, нажать «ОК».

Описано как можно сменить любую версию PHP на любую.

Данная инструкция подразумевает, что на сервере установлена операционная система FreeBSD, используется панель управления сервером ISPmanager и объём оперативной памяти не менее 512Мб. Инструкцию необходимо выполнять в консоли (SSH) с правами пользователя root.

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

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

[email protected]:/root # portsnap fetch update

После того как процесс обновления портов завершен, можно приступить к основной задаче — переустановке. Разделим её на три этапа: 1 — удаление текущей версии, 2 — установка необходимой версии, 3 — установка расширений для установленной необходимой версии.

1-й этап — удаление текущей версии

Сделаем резервную копию файла extensions.ini:

[email protected]:/root # cp /usr/local/etc/php/extensions.ini /usr/local/etc/php/extensions.ini_back

В этом файле перечислены расширения подключенные для текущей версии PHP. Если после переустановки вам потребуется установить тот же набор расширений, что был у прежней версии, то не придётся его вспоминать, а можно будет посмотреть в файле /usr/local/etc/php/extensions.ini_back

Теперь можно удалить текущую версию PHP.
Так как у нас на сервере используется панель управления сервером ISPmanager, то и удалять текущую версию мы будем через панель, иначе, по окончанию всех работ, ISPmanager по-прежнему будет показывать ту версию PHP которая была до переустановки ( даже если обновить кэш панели), а в разделе «Расширения PHP» для установки будут доступны расширения от уже несуществующей на сервере версии.

Заходим в ISPmanager под пользователем root, находим раздел «Настройки сервера» и выбираем там пункт «Возможности«. В списке установленного ПО находим php текущей версии, выделяем и в верхней части панели нажимаем «Удалить». Ждём пока информация об установленной версии PHP не исчезнет из списка.

После того, как это произойдёт, проверим, что на сервере от этой версии ничего не сталось:

[email protected]:/root # ls /usr/local/etc/php/

Если кроме файла extensions.ini_back увидим ещё и файл extensions.ini, удаляем его:

[email protected]:/root # rm -f /usr/local/etc/php/extensions.ini

Далее проверяем что в директории /usr/local/lib не остались расширения от удалённой версии PHP, иначе они будут отображаться как отключенные в панели ISPmanager, в списке установленных расширений:

[email protected]:/root # ls /usr/local/lib/php/

Если видим что присутствует папки 2006061320090626 либо 20100525 — удаляем:

[email protected]:/root # rm -rf /usr/local/lib/php/20060613 /usr/local/lib/php/20090626 /usr/local/lib/php/20100525

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

===>  php55-5.5.8 conflicts with installed package(s):
     php52-5.2.17_15

В таком случае нам поможет выполнение такой команды:

[email protected]:/root # make -C /usr/ports/lang/php52 deinstall clean

Всё, на этом процесс удаления PHP завершен, первый этап пройден.

2-й этап — установка необходимой версии

Переходим к установке нужной версии PHP. Устанавливать будем путём сборки из портов — не зря же мы их обновляли в самом начале.

Порты PHP располагаются в директории /usr/ports/lang

PHP 5.2 — /usr/ports/lang/php52
PHP 5.3 — /usr/ports/lang/php53
PHP 5.4 — /usr/ports/lang/php5

Далее, чтобы не писать каждый раз пути для php разных версий, рассмотрим установку на примере версии 5.2. Для версий 5.3 и 5.4 установка происходит аналогичным образом.

Переходим в директорию с php 5.2:

[email protected]:/root # cd /usr/ports/lang/php52

Так как мы обновляли порты, выполняем команду:

[email protected]:/usr/ports/lang/php52 # make clean

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

[email protected]:/usr/ports/lang/php52 # make config

В появившемся меню, перемещаясь по списку с помощью клавиш «Вверх» и «Вниз», отмечаем нажатием на пробел следующие пункты:
APACHE Build Apache module
MULTIBYTE Enable zend multibyte support
MAILHEAD Enable mail header patch
Php52 make config

Остальное оставляем как есть и нажимаем Enter.

Выполняем команду:

[email protected]:/usr/ports/lang/php52 # make reinstall clean

Именно reinstall, а не install, иначе, во время сборки PHP, получим ошибку, сообщающую, что в системе уже есть pcre и просьбу выполнить make deinstall.

Дожидаемся окончания процесса, затем обновляем кеш установленного ПО панели ISPmanager:

  • ISPmanager 4:
/usr/local/ispmgr/sbin/pkgctl cache
  • ISPmanager 5:
/usr/local/mgr5/sbin/pkgctl recache noupdate

Для надёжности выполняем эту команду дважды.

Перезапускаем панель:

  • ISPmanager 4:
killall ispmgr
  • ISPmanager 5:
killall core

Выполняем эту команду до тех пор, пока не увидим: No matching processes were found

В ISPmanager переходим в «Возможности» и видим, что в списке установленного ПО появилась php установленной только что версии. Второй этап тоже пройден.

3-й этап — установка расширений

Так же как и сам PHP, расширения к нему находятся в директории /usr/ports/lang

PHP 5.2 — /usr/ports/lang/php52-extensions
PHP 5.3 — /usr/ports/lang/php53-extensions
PHP 5.4 — /usr/ports/lang/php5-extensions

Для примера возьмём PHP 5.2.

Переходим в директорию /usr/ports/lang/php52-extensions:

[email protected]:/usr/ports/lang/php52 # cd /usr/ports/lang/php52-extensions

Для удобной установки расширений можно вывести установленные ранее расширения в алфавитном порядке и скопировать полученный список себе в текстовый файл рядом с окном терминала :

[email protected]:/usr/ports/lang/php52 # cat /usr/local/etc/php/extensions.ini_back | cut -d'=' -f2 |sort -n

Для выбора необходимых расширений выполняем:

[email protected]:/usr/ports/lang/php52-extensions # make config

Php52 extensions
Перемещаясь по списку с помощью клавиш «Вверх» и «Вниз», отмечаем, нажимая на пробел, необходимые расширения, по окончанию нажимаем Enter.

Начинаем сборку:

Чтобы выключалась поддержка X11 по умолчанию выполним: echo «WITHOUT_X11=yes» >> /etc/make.conf

Если нам не нужны никакие особые опции и мы не будем ставить расширение sqlite, то можно слегка автоматизировать процесс установки расширений, добавив после make install параметр BATCH=yes, который автоматически будет выбирать опции по умолчанию, не ожидая ответа пользователя при установке каждого расширения:

[email protected]:/usr/ports/lang/php52-extensions # make install BATCH=yes clean

А если мы хотим настроить каждое расширение и готовы неотрывно глядеть в терминал в процессе, тогда выполняем такую команду:

[email protected]:/usr/ports/lang/php52-extensions # make install clean

В процессе установки расширений на экран время от времени будут выводиться окна, подобные тем, которые мы видели во время выполнения make config. При их появлении ничего не выбираем, сразу нажимаем Enter и наблюдаем дальше. Единственное, где стоит вмешаться — это установить поддержку кодировки UTF-8, если устанавливается расширение sqlite — при появлении окна с заголовком php52-sqlite-5.2, нажатием на пробел, отмечаем UTF8 Enable UTF-8 support и нажимаемEnter.
Php52 sqlite
После окончания процесса проверяем, что установились все нужные расширения — для этого выполняем команду:

[email protected]:/usr/ports/lang/php52-extensions # php -m

Результатом команды будет вывод списка установленных расширений. Если все необходимые расширения в списке присутствуют, то установка окончена. Остётся перезапустить веб-сервер Apache:

[email protected]:/usr/ports/lang/php52-extensions # service apache22 restart

или так:

[email protected]:/usr/ports/lang/php52-extensions # /usr/local/etc/rc.d/apache22 restart

Если же вывод команды php -m показал, что установились не все расширения, которые были выбраны при make config (такая вероятность вполне существует), то придётся установить нужные расширения по отдельности.
Тут есть два варианта:
1-й более простой, но менее интересный — установить средствами панели ISPmanager.
2-й — продолжить установку из портов.

Вариант первый.
В панели ISPmanager находим радел «Настройки сервера», переходим там в пункт «Расширения PHP». В правом верхнем углу нажимаем «Установить», выбираем необходимое расширение и нажимаем «ОК». После того как расширение появится в списке уже установленных расширений со статусом «Включено», повторяем процедуру снова, выбирая следующее необходимое расширение. Повторяем процедуру до тех пор, пока не будут установлены все нужные расширения.

Вариант второй.
Устанавливаем недостающие расширения из портов.

Ниже приведён список расположения в портах наиболее часто используемых расширений:

bz2 — /usr/ports/archivers/php52-bz2
zip — /usr/ports/archivers/php52-zip
zlib — /usr/ports/archivers/php52-zlib
iconv — /usr/ports/converters/php52-iconv
mbstring — /usr/ports/converters/php52-mbstring
gettext — /usr/ports/devel/php52-gettext
curl — /usr/ports/ftp/php52-curl
ftp — /usr/ports/ftp/php52-ftp
gd — /usr/ports/graphics/php52-gd
exif — /usr/ports/graphics/php52-exif
imap — /usr/ports/mail/php52-imap
bcmath — /usr/ports/math/php52-bcmath
calendar — /usr/ports/misc/php52-calendar
hash — /usr/ports/security/php52-hash
mcrypt — /usr/ports/security/php52-mcrypt
mhash — /usr/ports/security/php52-mhash
openssl — /usr/ports/security/php52-openssl
dom — /usr/ports/textproc/php52-dom
session — /usr/ports/www/php52-session

Заходим в нужную директорию, соответствующую устанавливаемому расширению и устанавливаем — make install clean. Например, для установки расширения dom, выполняем команду:

[email protected]:/usr/ports/lang/php52-extensions # cd /usr/ports/textproc/php52-dom && make install clean

Для PHP версий 5.3 и 5.4 расположение расширений в портах аналогичное, как и сама процедура установки, нужно лишь в путях изменить php52 на php53 (для 5.3) или php5 (для php 5.4). Путь к расширению gd для PHP версии 5.3 будет выглядеть так — /usr/ports/graphics/php53-gd, для версии 5.4 так — /usr/ports/graphics/php5-gd

Если в приведённом выше списке не оказалось нужного вам расширения и пути к нему, то его легко найти командой make search. Допустим, нам нужно установить расширение xsl, но мы не знаем его расположения в портах. Выполняем команду:

[email protected]:/usr/ports/textproc/php52-dom # cd /usr/ports && make search name=php52-xsl |grep Path

Результатом команды будет — Path: /usr/ports/textproc/php52-xsl

Далее переходим в полученную директорию и выполняем установку:

[email protected]:/usr/ports # cd /usr/ports/textproc/php52-xsl && make install clean

После того как все необходимые расширения будут установлены, перезагружаем веб-сервер Apache:

[email protected]:/usr/ports/textproc/php52-xsl # service apache22 restart

или так:

[email protected]:/usr/ports/textproc/php52-xsl # /usr/local/etc/rc.d/apache22 restart

Выбор версии PHP на VPS в ISPmanager

  1. 1.

    Чтобы для домена появилась возможность выбора версии PHP, необходимо включить настройку PHP в режиме FastCGI (Apache). Откройте панель управления ISPmanager и перейдите в раздел Пользователи, кликните по имени пользователя, на котором находится домен, и нажмите Изменить:

  2. 2.

    В блоке «Доступ» установите галочку Может использовать PHP в режиме FastCGI (Apache) и нажмите OK:

  3. 3.

    Для выбора версии PHP, перейдите в раздел Сайты или WWW-домены, кликните по имени необходимого домена и нажмите Изменить:

  4. 4.

    В блоке «PHP» в строке «Режим работы PHP» выберите FastCGI (Apache). В этом же разделе ISPmanager выберите или измените версию PHP. Нажмите OK:


Как активировать альтернативные версии PHP

Войдите в панель управления под пользователем «root» и перейдите в раздел Настройки — Конфигурация ПО. Убедитесь, что активирована возможность Альтернативные версии PHP. Если вы видите синюю лампочку, кликните по данной строке и нажмите Установить:

Готово, вы сменили версию PHP.

Установка ionCube на VPS-сервер

Перед установкой проверьте, возможно, ionCube уже установлен. Для этого соединитесь с сервером по SSH и выполните команду: php -m | grep ionCube.
Если в выводе команды ionCube отсутствует, можно переходить к установке.

Перед установкой выясните, какая ОС установлена на вашем сервере и какова её разрядность:

  • команда для определения ОС: cat /etc/issue
  • команда для определения разрядности: uname -m

Все приведенные команды необходимо выполнять по SSH.

Установка ionCube на Debian/Ubuntu

  1. 1.

    Скачайте дистрибутив ionCube:

    • для 32-х разрядных ОС:
    wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
    • для 64-х разрядных ОС (x86_64):
    wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
  2. 2.

    Распакуйте загруженный архив:

  3. 3.

    Переместите данные в /usr/local:

  4. 4.

    Пропишите путь к модулю ioncube в конфигурационном файле PHP. В зависимости от версии PHP на вашем сервере прописываются разные пути к модулю ioncube. Для начала выясните, какая версия php установлена на вашем VPS при помощи команды php -v, например:

    [root@151-248-126-120 ~]# php -v
    PHP 5.3.3 (cli) (built: May 10 2016 21:39:50)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

    В выводе команды видно, что установлена версия PHP 5.3.3. Значит, нужно прописывать путь до обработчика ioncube для версии php 5.3.

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

    echo "zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.3.so" /etc/php5/conf.d/ioncube.ini

    Обратите внимание: в команде указан обработчик ioncube_loader_lin_5.3.so, так как в нашем случае на сервере стоит php версии 5.3. Если у вас php другой версии, обработчик будет иметь другой вид, например ioncube_loader_lin_5.2.so для версии php 5.2. Список всех обработчиков можно увидеть при помощи команды ls /usr/local/ioncube/;

  5. 5.

    • Перезапустите веб-сервер apache:
    /etc/init.d/apache2 restart
    • Проверьте, что ionCube установился:

Установка ionCube на CentOS

  1. 1.

    Скачайте дистрибутив ionCube:

    • для 32-х разрядных ОС:
    wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86_5.1.2.tar.gz
    • для 64-х разрядных ОС (x86_64):
    wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64_5.1.2.tar.gz
  2. 2.

    Распакуйте загруженный архив:

  3. 3.

    Переместите модули ioncube в директорию с модулями PHP:

    • для 32-х разрядных ОС:
    mv ioncube /usr/lib/php/ioncube
    • для 64-х разрядных ОС (x86_64):
    mv ioncube /usr/lib64/php/ioncube
  4. 4.

    Пропишите путь к модулю ioncube в конфигурационном файле PHP. В зависимости от версии PHP на вашем сервере, прописываются разные пути к модулю ioncube. Для начала выясните, какая версия php установлена на вашем VPS при помощи команды php -v, например:

    [root@151-248-126-120 ~]# php -v
    PHP 5.3.3 (cli) (built: May 10 2016 21:39:50)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

    В выводе команды видно, что установлена версия PHP 5.3.3. Значит, нужно прописывать путь до обработчика ioncube для версии php 5.3.

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

    • для 32-х разрядных ОС:
    echo "zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_5.3.so" /etc/php.d/ioncube.ini
    • для 64-х разрядных ОС (x86_64):
    echo "zend_extension=/usr/lib64/php/ioncube/ioncube_loader_lin_5.3.so" /etc/php.d/ioncube.ini

    Обратите внимание: в обеих командах указан обработчик ioncube_loader_lin_5.3.so, так как в нашем случае на сервере стоит php версии 5.3. Если у вас php другой версии, обработчик будет иметь другой вид, например ioncube_loader_lin_5.2.so для версии php 5.2. Список всех обработчиков можно увидеть при помощи команды ls /usr/lib/php/ioncube/ (для 32-х разрядных ОС) и ls /usr/lib64/php/ioncube/ (для 64-х разрядных ОС);

  5. 5.

    • перезапустите веб-сервер apache:
    /etc/init.d/httpd restart
    • проверьте, что ionCube установился:

Готово.

VPS с установленной CentOS

Закажите сервер с чистой CentOS или панелью управления ISPmanager всего за пару минут.

Заказать VPS c Centos

Спасибо за оценку!
Как мы можем улучшить статью?

Нужна помощь?
Напишите в службу поддержки!

  • Выбор версии PHP на VPS в ISPmanager
  • Установка ionCube на VPS-сервер

Выбор версии PHP на VPS в ISPmanager

  1. Включите настройку PHP в режиме FastCGI (Apache), чтобы для домена появилась возможность выбора версии PHP. Для этого войдите в панель управления ISPmanager и перейдите в раздел Пользователи, кликните по имени пользователя, на котором находится домен, затем нажмите Изменить:

    2. В блоке «Доступ» поставьте галочку Может использовать PHP в режиме FastCGI (Apache). Нажмите Сохранить:

    3. Для выбора версии PHP перейдите в раздел Сайты, кликните по имени нужного домена, нажмите Редактировать, затем Изменить:

    4. В блоке «Обработчик (PHP)» в разделе «Режим работы PHP» выберите FastCGI (Apache). Ниже выберите или измените версию PHP. Нажмите Сохранить:

Готово, вы сменили версию PHP.

Как активировать альтернативные версии PHP

Войдите в панель управления под пользователем «root». Перейдите в раздел НастройкиКонфигурация ПО. Чтобы включить нужную версию, нажмите на строку Альтернативная версия PHP номер_версии и кликните Установить:

Установка ionCube на VPS-сервер

Перед установкой убедитесь, что ionCube отсутствует на сервере. Для этого подключитесь к серверу по SSH и выполните команду:

php -m | grep ionCube

Если в выводе команды ionCube отсутствует, можно приступать к установке.

Перед установкой выясните, какая ОС установлена на вашем сервере и какова её разрядность:

  • команда для определения ОС: 
cat /etc/issue
  • команда для определения разрядности: 
uname -m

Установка ionCube на Debian/Ubuntu

    1. Скачайте дистрибутив ionCube:

  • команда для 32-х разрядных ОС:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
  • команда для 64-х разрядных ОС (x86_64):
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

    2. Распакуйте загруженный архив:

tar xzvf ioncube*

    3. Переместите данные в директорию /usr/local:

mv ioncube /usr/local/

    4. Пропишите путь к модулю ioncube в конфигурационном файле PHP. Путь к модулю ioncube зависит от версии PHP на вашем сервере. Сначала выясните, какая версия PHP установлена на сервере. Для этого выполните команду:

php -v

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

echo "zend_extension=/usr/local/ioncube/ioncube_loader_lin_X.Y.so" /etc/php5/conf.d/ioncube.ini

Где X.Y — ваша версия PHP. 
Список всех обработчиков можно посмотреть при помощи команды: 

ls /usr/local/ioncube/

    5. Перезапустите веб-сервер Apache:

/etc/init.d/apache2 restart

    6. Проверьте, что ionCube установился:

php -m | grep ionCube

Установка ionCube на CentOS

    1. Скачайте дистрибутив ionCube:

  • команда для 32-х разрядных ОС:
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86_5.1.2.tar.gz
  • команда для 64-х разрядных ОС (x86_64):
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64_5.1.2.tar.gz

    2. Распакуйте загруженный архив:

tar xzvf ioncube*

    3. Переместите модули ioncube в директорию с модулями PHP:

  • команда для 32-х разрядных ОС:
mv ioncube /usr/lib/php/ioncube
  • команда для 64-х разрядных ОС (x86_64):
mv ioncube /usr/lib64/php/ioncube

    4. Пропишите путь к модулю ioncube в конфигурационном файле PHP. Путь к модулю ioncube зависит от версии PHP на вашем сервере. Сначала выясните, какая версия PHP установлена на сервере. Для этого выполните команду:

php -v

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

  • для 32-х разрядных ОС:
echo "zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_X.Y.so" /etc/php.d/ioncube.ini
  • для 64-х разрядных ОС (x86_64):
echo "zend_extension=/usr/lib64/php/ioncube/ioncube_loader_lin_X.Y.so" /etc/php.d/ioncube.ini

Где X.Y — ваша версия PHP. 
Список всех обработчиков можно увидеть при помощи команды:

  • для 32-х разрядных ОС:
ls /usr/lib/php/ioncube/
  •  для 64-х разрядных ОС: 
ls /usr/lib64/php/ioncube/

    5. Перезапустите веб-сервер Apache:

/etc/init.d/httpd restart

    6. Проверьте, что ionCube установился:

php -m | grep ionCube

I’m using php 5.3 on my local machine. On our webserver we have php 4.8. Our server is a shared server. So I want to change the php version on our server via .htaccess file. Is it possible to do it? If yes how to do it?

Shaeldon's user avatar

Shaeldon

8734 gold badges18 silver badges28 bronze badges

asked Sep 24, 2012 at 8:16

jeeva's user avatar

0

To switch to PHP 4.4:

AddHandler application/x-httpd-php4 .php

To switch to PHP 5.0:

AddHandler application/x-httpd-php5 .php

To switch to PHP 5.1:

AddHandler application/x-httpd-php51 .php

To switch to PHP 5.2:

AddHandler application/x-httpd-php52 .php

To switch to PHP 5.3:

AddHandler application/x-httpd-php53 .php

To switch to PHP 5.4:

AddHandler application/x-httpd-php54 .php

To switch to PHP 5.5:

AddHandler application/x-httpd-php55 .php

To switch to PHP 5.6:

AddHandler application/x-httpd-php56 .php

To switch to PHP 7:

AddHandler application/x-httpd-php7 .php

To switch to PHP 7.1:

AddHandler application/x-httpd-php71 .php

Community's user avatar

answered Feb 7, 2013 at 12:01

APeaze's user avatar

APeazeAPeaze

1,4961 gold badge10 silver badges3 bronze badges

4

To switch to PHP 4.4:

AddHandler application/x-httpd-php4 .php .php4 .php3

To switch to PHP 5.0:

AddHandler application/x-httpd-php5 .php .php5 .php4 .php3

To switch to PHP 5.1:

AddHandler application/x-httpd-php51 .php .php5 .php4 .php3

To switch to PHP 5.2:

AddHandler application/x-httpd-php52 .php .php5 .php4 .php3

To switch to PHP 5.3:

AddHandler application/x-httpd-php53 .php .php5 .php4 .php3

To switch to PHP 5.4:

AddHandler application/x-httpd-php54 .php .php5 .php4 .php3

To switch to PHP 5.5:

AddHandler application/x-httpd-php55 .php .php5 .php4 .php3

To switch to the secure PHP 5.2 with Suhosin patch:

AddHandler application/x-httpd-php52s .php .php5 .php4 .php3

chiwangc's user avatar

chiwangc

3,52816 gold badges25 silver badges32 bronze badges

answered Jul 9, 2014 at 16:50

Victor Azevedo's user avatar

0

Note that all above answers are correct for Apache+mod-php setups. They’re less likely to work with more current PHP-FPM setups. Those can typically only be defined in VirtualHost section, not .htaccess.

Again, this highly depends on how your hoster has configured PHP. Each domain/user will typically have it’s own running PHP FPM instance. And subsequently a generic …/x-httpd-php52 type will not be recognized.

See ServerFault: Alias a FastCGI proxy protocol handler via Action/ScriptAlias/etc for some overview.

For Apache 2.4.10+/mod-proxy-fcgi configs you might be able to use something like:

 AddHandler "proxy:unix:/var/run/php-fpm-usr123.sock|fcgi://localhost" .php

Or SetHandler with name mapping from your .htaccess. But again, consulting your hoster on the concrete FPM socket is unavoidable. There’s no generic answer to this on modern PHP-FPM setups.

answered Feb 4, 2018 at 12:53

mario's user avatar

mariomario

143k20 gold badges236 silver badges288 bronze badges

2

Try this to switch to php4:

AddHandler application/x-httpd-php4 .php

Upd. Looks like I didn’t understand your question correctly. This will not help if you have only php 4 on your server.

answered Sep 24, 2012 at 8:22

Eugene's user avatar

EugeneEugene

3,26021 silver badges17 bronze badges

just FYI in GoDaddy it’s this:

AddHandler x-httpd-php5-3 .php

answered Sep 23, 2013 at 18:11

Eva's user avatar

EvaEva

4,6892 gold badges19 silver badges26 bronze badges

0

This worked for me

PHP 7.2

AddHandler application/x-httpd-ea-php72 .php

PHP 7.3

AddHandler application/x-httpd-ea-php73 .php

answered Apr 23, 2020 at 17:15

Cleber Reizen's user avatar

2

An addition to the current marked answer:

Place the addhandler inside the following scope, like so:

<IfModule mod_rewrite.c>

   AddHandler application/x-httpd-php71 .php
   RewriteEngine On

   ....

</IfModule>

answered Feb 12, 2020 at 8:47

PatricNox's user avatar

PatricNoxPatricNox

2,9961 gold badge17 silver badges23 bronze badges

for php8 code generated by Cpanel:

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php80 .php .php8 .phtml
</IfModule>

required PHP version should be installed

answered Dec 30, 2021 at 9:18

Rana Hyder's user avatar

Go to File Manager on your CPanel >>> Public html >>> find the .htaccess file >>> right click on the on it >>>> click edit.see picture

Type the number of the version you want to change to. i.e — 73, 70 or 71.

Hope this helps. After that, save changes.

answered May 20, 2020 at 12:50

Sifiso Masilela's user avatar

0

For CPanel users (as of May 2022, selecting PHP v8.1), use Software -> «MultiPHP Manager» modifies PHP versions per subdomain. it adds this to the subdomain’s directory’s .htaccess file:

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php81” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php81 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

If you don’t see the PHP version you want in the select list, then install it via WHM -> Software -> «EasyApache».

answered May 5, 2022 at 21:10

Andrew E's user avatar

Andrew EAndrew E

1482 silver badges4 bronze badges

You can’t change PHP version by .htaccess.

you need to get your server updated, for PHP 5.3 or you can find another host, which serves PHP 5.3 on shared hosting.

answered Sep 24, 2012 at 8:18

s_s_'s user avatar

s_s_s_s_

4655 silver badges20 bronze badges

5

I’m using php 5.3 on my local machine. On our webserver we have php 4.8. Our server is a shared server. So I want to change the php version on our server via .htaccess file. Is it possible to do it? If yes how to do it?

Shaeldon's user avatar

Shaeldon

8734 gold badges18 silver badges28 bronze badges

asked Sep 24, 2012 at 8:16

jeeva's user avatar

0

To switch to PHP 4.4:

AddHandler application/x-httpd-php4 .php

To switch to PHP 5.0:

AddHandler application/x-httpd-php5 .php

To switch to PHP 5.1:

AddHandler application/x-httpd-php51 .php

To switch to PHP 5.2:

AddHandler application/x-httpd-php52 .php

To switch to PHP 5.3:

AddHandler application/x-httpd-php53 .php

To switch to PHP 5.4:

AddHandler application/x-httpd-php54 .php

To switch to PHP 5.5:

AddHandler application/x-httpd-php55 .php

To switch to PHP 5.6:

AddHandler application/x-httpd-php56 .php

To switch to PHP 7:

AddHandler application/x-httpd-php7 .php

To switch to PHP 7.1:

AddHandler application/x-httpd-php71 .php

Community's user avatar

answered Feb 7, 2013 at 12:01

APeaze's user avatar

APeazeAPeaze

1,4961 gold badge10 silver badges3 bronze badges

4

To switch to PHP 4.4:

AddHandler application/x-httpd-php4 .php .php4 .php3

To switch to PHP 5.0:

AddHandler application/x-httpd-php5 .php .php5 .php4 .php3

To switch to PHP 5.1:

AddHandler application/x-httpd-php51 .php .php5 .php4 .php3

To switch to PHP 5.2:

AddHandler application/x-httpd-php52 .php .php5 .php4 .php3

To switch to PHP 5.3:

AddHandler application/x-httpd-php53 .php .php5 .php4 .php3

To switch to PHP 5.4:

AddHandler application/x-httpd-php54 .php .php5 .php4 .php3

To switch to PHP 5.5:

AddHandler application/x-httpd-php55 .php .php5 .php4 .php3

To switch to the secure PHP 5.2 with Suhosin patch:

AddHandler application/x-httpd-php52s .php .php5 .php4 .php3

chiwangc's user avatar

chiwangc

3,52816 gold badges25 silver badges32 bronze badges

answered Jul 9, 2014 at 16:50

Victor Azevedo's user avatar

0

Note that all above answers are correct for Apache+mod-php setups. They’re less likely to work with more current PHP-FPM setups. Those can typically only be defined in VirtualHost section, not .htaccess.

Again, this highly depends on how your hoster has configured PHP. Each domain/user will typically have it’s own running PHP FPM instance. And subsequently a generic …/x-httpd-php52 type will not be recognized.

See ServerFault: Alias a FastCGI proxy protocol handler via Action/ScriptAlias/etc for some overview.

For Apache 2.4.10+/mod-proxy-fcgi configs you might be able to use something like:

 AddHandler "proxy:unix:/var/run/php-fpm-usr123.sock|fcgi://localhost" .php

Or SetHandler with name mapping from your .htaccess. But again, consulting your hoster on the concrete FPM socket is unavoidable. There’s no generic answer to this on modern PHP-FPM setups.

answered Feb 4, 2018 at 12:53

mario's user avatar

mariomario

143k20 gold badges236 silver badges288 bronze badges

2

Try this to switch to php4:

AddHandler application/x-httpd-php4 .php

Upd. Looks like I didn’t understand your question correctly. This will not help if you have only php 4 on your server.

answered Sep 24, 2012 at 8:22

Eugene's user avatar

EugeneEugene

3,26021 silver badges17 bronze badges

just FYI in GoDaddy it’s this:

AddHandler x-httpd-php5-3 .php

answered Sep 23, 2013 at 18:11

Eva's user avatar

EvaEva

4,6892 gold badges19 silver badges26 bronze badges

0

This worked for me

PHP 7.2

AddHandler application/x-httpd-ea-php72 .php

PHP 7.3

AddHandler application/x-httpd-ea-php73 .php

answered Apr 23, 2020 at 17:15

Cleber Reizen's user avatar

2

An addition to the current marked answer:

Place the addhandler inside the following scope, like so:

<IfModule mod_rewrite.c>

   AddHandler application/x-httpd-php71 .php
   RewriteEngine On

   ....

</IfModule>

answered Feb 12, 2020 at 8:47

PatricNox's user avatar

PatricNoxPatricNox

2,9961 gold badge17 silver badges23 bronze badges

for php8 code generated by Cpanel:

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php80 .php .php8 .phtml
</IfModule>

required PHP version should be installed

answered Dec 30, 2021 at 9:18

Rana Hyder's user avatar

Go to File Manager on your CPanel >>> Public html >>> find the .htaccess file >>> right click on the on it >>>> click edit.see picture

Type the number of the version you want to change to. i.e — 73, 70 or 71.

Hope this helps. After that, save changes.

answered May 20, 2020 at 12:50

Sifiso Masilela's user avatar

0

For CPanel users (as of May 2022, selecting PHP v8.1), use Software -> «MultiPHP Manager» modifies PHP versions per subdomain. it adds this to the subdomain’s directory’s .htaccess file:

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php81” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php81 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

If you don’t see the PHP version you want in the select list, then install it via WHM -> Software -> «EasyApache».

answered May 5, 2022 at 21:10

Andrew E's user avatar

Andrew EAndrew E

1482 silver badges4 bronze badges

You can’t change PHP version by .htaccess.

you need to get your server updated, for PHP 5.3 or you can find another host, which serves PHP 5.3 on shared hosting.

answered Sep 24, 2012 at 8:18

s_s_'s user avatar

s_s_s_s_

4655 silver badges20 bronze badges

5

Статья давно не обновлялась, поэтому информация могла устареть.

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

Внимание! Если на сервере установлена панель ISPmanager 5, то меняйте версию PHP только с помощью модуля панели «Возможности» — «Альтернативные версии PHP».

Если Вы установите или настроите ПО вручную, нет гарантий, что панель сможет работать корректно в дальнейшем с данным ПО.

Содержание

  • 1 CentOS 6
    • 1.1 Обновляем PHP 5.3 до последней версии
    • 1.2 обновляем PHP до 5.4
    • 1.3 обновляем PHP до 5.5
    • 1.4 обновляем PHP до 5.6
    • 1.5 Делаем даунгрейд до 5.2.17
  • 2 Debian
    • 2.1 PHP 5.4.x >> PHP 5.3.x
  • 3 Ubuntu 12.04
    • 3.1 PHP 5.3.x >> PHP 5.5.x

CentOS 6

Подключаем сторонние репозитории

# wget -O /etc/yum.repos.d/centosup.repo http://centosup.ispsystem.info/centosup.repo
# yum makecache

Содержимое файла /etc/yum.repos.d/centosup.repo должен быть такой:

[centosup]
name=CentOSUP Repository
gpgcheck=0
enabled=1
baseurl=http://centosup.ispsystem.info/repo/$basearch/

Также должен быть подключен репозиторий EPEL, если нет, то подключаем. rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Обновляем PHP 5.3 до последней версии

# yum update php-*

обновляем PHP до 5.4

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php54-common

обновляем PHP до 5.5

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php55-common

обновляем PHP до 5.6

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php56-common

Делаем даунгрейд до 5.2.17

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php52-common

Debian

PHP 5.4.x >> PHP 5.3.x

В файл /etc/apt/sources.list добавляем строки

deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

для подключения старого репозитория.

Создаем файл /etc/apt/preferences.d/php53 со следующим содержимым:

Package: php5*
Pin: release a=oldoldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldoldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldoldstable
Pin-Priority: 700

Package: php-apc
Pin: release a=oldoldstable
Pin-Priority: 700

Package: *
Pin: release a=oldstable
Pin-Priority: 600

Устанавливать нужно вручную из консоли: Запускаем обновление списка пакетов apt-get update и переустановку с заменой установленного php54 на требуемый php53 с теми же расширениями:

apt-get install --reinstall `dpkg -l|grep php|grep 5.4|awk '{print $2}'`

Ubuntu 12.04

PHP 5.3.x >> PHP 5.5.x

Для начала установим python-software-properties
Это программное обеспечение предоставляет средства для управления используемыми APT-репозиториями. Оно управляет как дистрибутивом, так и независимыми репозиториями программ.

apt-get install make python-software-properties

Добавляем репозиторий

add-apt-repository ppa:ondrej/php5

Если выдаёт ошибку

pycurl.error: (6, "Couldn't resolve host 'launchpad.net'")

Добавляем гугловский резолвер в свой /etc/resolv.conf:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

И повторяем добавление репозитория.

Обновляем дистрибутив

apt-get update

Устанавливаем PHP последней версии(5.5.x)

apt-get install php5 libapache2-mod-php5

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

php -v
PHP 5.5.7-1+sury.org~precise+1 (cli) (built: Dec 12 2013 21:37:40) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
   with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
   with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

Далее нужно будет установить необходимые расширения для PHP 5.5

apt-get install php5-расширение

Расширения, установленные вручную, нужно будет удалить и установить снова. Например, через pecl:

pecl uninstall расширение

pecl install расширение

so для PHP 5.5.x лежат в директории /usr/lib/php5/20121212/ — возможно понадобится изменить пути для расширений (например, для zend_extension)

Этот материал был полезен?

New versions of PHP bring new features and fixes for security issues and bugs. Migrating from one version to another can often lead to incompatibilities. As of writing this article, PHP 7.2 is the latest stable release and PHP 7.3 is expected to be released in December 2018. Drupal.org recommends PHP 7.1+ for new projects and encourages the community to plan an upgrade for older versions.

Drupal, as we know, is a CMF written in PHP. It uses various PHP libraries and components including the Symfony framework, the Twig template engine, PHPUnit, Guzzle, etc. Hence, it is always recommended to do a compatibility check with all the components, libraries and core/contributed modules of your Drupal site before upgrading to newer versions of PHP.

Now, the process of changing the PHP version of your Drupal site may vary with your hosting provider and the access level that you have on the server. But for this tutorial, Ubuntu 16.04.4 LTS with Apache 2.4.18 and Nginx 1.10.3 was used. Few commands, configuration files, and directory paths may differ with your system and the version of web servers.

Checking the current PHP version

First and foremost, let us see what all versions of PHP are currently installed on our system.

$ update-alternatives --display php

command line for raman@raman ubuntu

You may also check all the installed PHP packages along with its extensions using:

$ apt list --installed | grep "php*"

By default, the one with the highest priority will be the command line version. That is, if we use the interactive shell or parse a PHP file through the terminal, this version will be used.

$ php -v

command line for raman@raman ubuntu

However, this selected command line version may/may not be the configured with your web server. To check the PHP version configured with the web server, you may create a phpinfo() page or echo out the PHP_VERSION_ID constant / phpversion() function.

$ cd /var/www/html/drupal8
$ drush php-eval "echo phpversion();

command line for raman@raman ubuntu

List of PHP configurations provided by phpinfo()

List of PHP configurations provided by phpinfo()

If you do not have the access to your server through SSH, you may also view the current PHP version using the Status Reports of your Drupal site available under /admin/reports/status.

Checking the PHP version using Drupal’s Status Report

Checking the PHP version using Drupal’s Status Report

Why Update to PHP 7?

Here are some of the reasons why you need to upgrade from PHP 5 to PHP 7:

  1. PHP 7 is twice as fast as PHP 5. The huge upward shift in performance is one of the reasons why an upgrade is important. This means your website loads in lesser time, giving your web users another reason to stay on your website. 
     
  2. PHP 7 supports simultaneous execution of asynchronous tasks. Tasks such as networks, access to the database, timers and perform events related to I/O operations can be done asynchronously by putting in place a single PHP event-loop. 
     
  3. It is mobile-first. Of course, you need to offer a better value proposition to your users. And mobile users cant be ignored here. PHP 7 offers exactly what businesses need to do to cater to the needs of mobile device users.

    It offers reduced memory usage, execution engine improvements, and native local threat storage which are specifically suited to mobile devices that have limited browsing features. 

  4. Uses lesser memory. PHP 7 has demonstrated that technology infrastructure can process higher computing requests without consuming proportionately higher memory. 

Since Apache and Nginx are the most popular web servers in the market, we will have a quick look on how to change the PHP version on them. Also, it is highly recommended to have a backup of your Drupal site before tinkering around with any of the configurations on your server.

Now, in my case, I have PHP 7.0 configured on the web server and Drupal is giving a nice recommendation to upgrade it. But I do not have the latest PHP 7.2 installed on my system, so, I will first download it along with the required PHP extensions.

These include extensions for URL, JSON, Image, Library, Mbstring, Open SSL, and XML. But, just to ensure that all the extensions get installed, let’s install them manually.

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install php7.2 php7.2-fpm php7.2-xml php7.2-mysql php7.2-gd

You may view the packages using dpkg -l php7.2* to confirm.

I. Command Line Version

To change the command line version of PHP you may use the following command. Again, changing this won’t affect the version used by the web server.

$ sudo update-alternatives --config php

command line for raman@raman ubuntu

Enter the choice number mentioned besides the desired PHP version

or

$ sudo update-alternatives -set php /usr/bin/php7.2

II.  Apache

For Apache web server, the a2enmod and a2dismod scripts can be used for enabling and disabling the PHP modules.
Disable all the previously enabled PHP modules

$ sudo a2dismod php5.6
$ sudo a2dismod php7.0
$ sudo a2dismod php7.1

Enable the new PHP version module

$ sudo a2enmod php7.2

Restart the web server    

$ sudo service apache2 restart

PHP version for a specific website can also be set through to the .htaccess file in the following way.

AddHandler application/x-httpd-php72 .php

III. Nginx

For Nginx, we simply need to update the PHP-FPM socket in its configuration file. But before that make sure that the PHP-FPM is installed for your version and is running as a service.

Take a backup of the default configuration file and then open it up in your favourite text editor.

$ cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
$ sudo vim /etc/nginx/sites-available/default

Change the FastCGI backend to use the new PHP-FPM socket, save and exit the file

location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

Run the configuration test

$ nginx -t

Restart the web server

$ sudo service nginx restart

We have now successfully changed the PHP version of our Drupal site. Now, navigate to Manage → Reports → Status report to ensure that the version has been changed and there are no errors or warning from any Drupal module or PHP library.

Observe that the PHP version has been updated to 7.2.9-1

Observe that the PHP version has been updated to 7.2.9-1

 
As expected, it did not produce any errors or warnings on a raw Drupal 8 installation. If you face any issues, make sure you installed all the required PHP extensions for your PHP version, check the log messages and refer the issue queues of the core and contrib modules.

For a free website analysis and the best Drupal migration plan for your company’s needs, speak to our Drupal experts today.

Понравилась статья? Поделить с друзьями:
  • Как изменить версию php на openserver
  • Как изменить версию php ubuntu
  • Как изменить версию php mac os
  • Как изменить версию php apache2
  • Как изменить версию pdf