Пока некоторые люди вытаскивают себя из могилы, устанавливая php 5.3, я решил не отставать от остального мира, чьи сайты переходят на 7-ю версию php. Я установил его сегодня из репозитория DotDeb, так как в интернете его хвалят за скорость работы. Улучшение скорости действительно поразительное, мой сайт с WordPress и MODX просто летает… Вот как я сделал миграцию
Пакеты php из репозитория Dotdeb
Самое интересное в пакете php 7 из этого репозитория то, что он называется php7.0-%packagename%. Это означает, что вы можете иметь как php 5.6 в репозиториях Debian, так и седьмую версию на вашем сервере. Кроме того, файлы конфигурации хранятся в /etc/php/7.0/ для пакетов из dotdeb и в /etc/php/mods-available/ для модулей, чтобы они не перепутались.
При желании вы можете посетить веб-сайт Dotdeb, но он на английском языке.
Загрузите ключ репозитория gpg.
# wget https://www.dotdeb.org/dotdeb.gpg
Запишите репозиторий в /etc/apt/sources.list.d/dotdeb.list.
# echo -e "deb http://packages.dotdeb.org jessie all\ndeb-src http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
Обновите кэш пакетов.
# aptitude update
Далее рассмотрим, что вам нужно установить. Например, допустим, у вас на сервере запущен php-fpm, хорошо, давайте установим его.
# aptitude install php7.0-fpm
Если php является модулем apache, то так оно и будет.
# aptitude install php7.0 libapache2-mod-php7.0
А остальные сумки — по желанию.
# aptitude install php7.0-mysql php7.0-curl php7.0-redis php7.0-gd
Если вы устанавливаете все с нуля, дальнейшие шаги после установки можно узнать из соответствующих инструкций на сайте.
Удаляем php5 с сервера
Если вы не устанавливали свой сервер с нуля и у вас уже есть работающий сайт, вы можете полностью удалить php5 с вашего сервера после перехода на php7. Первое, что нужно сделать, это проверить список пакетов php5, которые у вас установлены.
# dpkg -l | grep php5 | grep -w 5 | awk '{print $2}'
Первым шагом является извлечение модуля.
# aptitude purge php5-memcached php5-redis php5-curl
А теперь о фундаменте.
# aptitude purge php5-fpm php5-common
Это делается для предотвращения ошибок, когда сначала удаляется php5-common, а после удаления модуля dpkg пытается отключить его командой php5dismod, но безуспешно. В результате пакет аварийно завершается и не может быть удален. У меня была такая ситуация с модулем php5-memcached, когда я удалил все пакеты php сразу.
Тесты
Чтобы убедиться в его скорости, мы провели сферический тест в вакууме. Субъективные результаты также стали приятным сюрпризом. Он работал на точно таких же параметрах, только с другой версией php.
PHP 5.6, поставляемая из репозиториев Jessie
--------------------------------------|PHP BENCHMARK SCRIPT|-------------------------------------- Start : 2016-04-25 12:01:06 Server : [email protected] PHP version : 5.6. 19-0+deb8u1 Platform : Linux -------------------------------------- test_math : 1.953秒 test_stringmanipulation : 1.939秒 test_loops : 1.149秒 test_ifelse : 0.834秒。 -------------------------------------- 合計時間::5.875秒
PHP 7.0.5, поставляемая из репозитория dotdeb
--------------------------------------|PHP BENCHMARK SCRIPT|-------------------------------------- Start : 2016-04-25 11:59:53 Server : [email protected] PHP version : 7.0.5-1~dotdeb+8.1 Platform : Linux -------------------------------------- test_ifelse : 0.417秒 test_loops : 0.556秒 test_stringmanipulation : 0.767秒 test_math : 0.554秒。 -------------------------------------- Total time: : 2.294 sec.
Неплохо? Очень даже. WordPress, который изначально выдавал скорость генерации около 0,160-0,220, теперь выдает страницы примерно за 0,06-0,100 мс. И это достигается на недорогом vds-сервере с жестким диском. Что еще вам нужно для счастья?