для подключения старого репозитория.
Устанавливать нужно вручную из консоли: Запускаем обновление списка пакетов 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/
Если видим что присутствует папки 20060613, 20090626 либо 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
Остальное оставляем как есть и нажимаем 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
Перемещаясь по списку с помощью клавиш «Вверх» и «Вниз», отмечаем, нажимая на пробел, необходимые расширения, по окончанию нажимаем 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.
После окончания процесса проверяем, что установились все нужные расширения — для этого выполняем команду:
[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.
Чтобы для домена появилась возможность выбора версии PHP, необходимо включить настройку PHP в режиме FastCGI (Apache). Откройте панель управления ISPmanager и перейдите в раздел Пользователи, кликните по имени пользователя, на котором находится домен, и нажмите Изменить:
-
2.
В блоке «Доступ» установите галочку Может использовать PHP в режиме FastCGI (Apache) и нажмите OK:
-
3.
Для выбора версии PHP, перейдите в раздел Сайты или WWW-домены, кликните по имени необходимого домена и нажмите Изменить:
-
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.
Скачайте дистрибутив 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.
Распакуйте загруженный архив:
-
3.
Переместите данные в /usr/local:
-
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.
- Перезапустите веб-сервер apache:
/etc/init.d/apache2 restart
- Проверьте, что 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.
Распакуйте загруженный архив:
-
3.
Переместите модули ioncube в директорию с модулями PHP:
- для 32-х разрядных ОС:
mv ioncube /usr/lib/php/ioncube
- для 64-х разрядных ОС (x86_64):
mv ioncube /usr/lib64/php/ioncube
-
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.
- перезапустите веб-сервер apache:
/etc/init.d/httpd restart
- проверьте, что ionCube установился:
Готово.
VPS с установленной CentOS
Закажите сервер с чистой CentOS или панелью управления ISPmanager всего за пару минут.
Заказать VPS c Centos
Спасибо за оценку!
Как мы можем улучшить статью?
Нужна помощь?
Напишите в службу поддержки!
- Выбор версии PHP на VPS в ISPmanager
- Установка ionCube на VPS-сервер
Выбор версии PHP на VPS в ISPmanager
- Включите настройку 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
8734 gold badges18 silver badges28 bronze badges
asked Sep 24, 2012 at 8:16
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
answered Feb 7, 2013 at 12:01
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
3,52816 gold badges25 silver badges32 bronze badges
answered Jul 9, 2014 at 16:50
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
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
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
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
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
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
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
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 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_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
8734 gold badges18 silver badges28 bronze badges
asked Sep 24, 2012 at 8:16
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
answered Feb 7, 2013 at 12:01
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
3,52816 gold badges25 silver badges32 bronze badges
answered Jul 9, 2014 at 16:50
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
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
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
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
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
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
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
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 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_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
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
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();
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.
Why Update to PHP 7?
Here are some of the reasons why you need to upgrade from PHP 5 to PHP 7:
- 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.
- 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.
- 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.
- 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
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.
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.