Увага: Як і в більшості випадків з випуском нової версії мови, краще трохи почекати, перш ніж оновлюватися до PHP 7 у виробництві. За цей час можна протестувати свої додатки на сумісність з новою версією, виконати тести продуктивності і ознайомитися з новими функціями мови.
Необхідні умови
Для цілей цього керівництва передбачається, що ви використовуєте PHP 5.x на CentOS 7, використовуючи або mod_php разом з Apache, або PHP-FPM разом з Nginx. Також передбачається, що для виконання адміністративних завдань у вас є конфігурувати користувач non-root з привілеями sudo.
Процес установки PHP 5 описаний в наступних посібниках:
- Як встановити стек Linux, Apache, MySQL, PHP (LAMP) на CentOS 7
- Як встановити стек Linux, Nginx, MySQL, PHP (LEMP) на CentOS 7
Оскільки PHP 7.x поки не доступний в офіційних сховищах для масового поширення, ми будемо використовувати сторонній джерело. Файли PHP 7 RPM доступні в декількох сховищах. Ми скористаємося сховищем IUS.
IUS пропонує сценарій установки для підписки на їх сховище і імпортування відповідних ключів GPG. Переконайтеся, що ви перебуваєте в своєму домашньому каталозі, і витягніть сценарій за допомогою curl:
Оновлення mod_php для системи з Apache
У цьому розділі описано процес оновлення для системи, що використовує Apache в якості веб-сервера і mod_php для виконання PHP-коду. Якщо ж ви використовуєте Nginx і PHP-FPM, відразу переходите до наступного розділу.
Видаліть існуючі пакети PHP. При появі на екрані запиту натисніть y і потім Enter, щоб продовжити.
Встановіть нові пакети PHP 7 з IUS. У відповідь на запит знову натисніть y і потім Enter.
І нарешті, перезапустіть Apache, щоб завантажити нову версію mod_php:
За допомогою systemctl ви можете перевірити статус Apache, який управляється компонентом httpd systemd:
Оновлення PHP-FPM для системи з Nginx
У цьому розділі описується процес оновлення для системи, що використовує Nginx в якості веб-сервера і PHP-FPM для виконання PHP-коду. Якщо ви вже оновили систему, що працює з Apache, відразу переходите в розділ "Тестування PHP».
Видаліть существуюіщіе пакети PHP. При появі на екрані запиту натисніть y і потім Enter, щоб продовжити.
Встановіть нові пакети PHP 7 з IUS. При появі на екрані запиту знову натисніть y і Enter.
По завершенні установки вам потрібно буде внести кілька змін в конфігурації PHP-FPM і Nginx. Згідно конфігурації, PHP-FPM перехоплює з'єднання на локальному TCP-сокеті, а Nginx очікує доменний сокет Unix, який показує шлях в файлової системі.
Вийдіть і збережіть файл. У nano ви можете зробити це шляхом натискання на Ctrl-X для виходу, y для підтвердження, і Enter для підтвердження перезаписуваного імені файлу.
Потім переконайтеся, що Nginx використовує вірний шлях до сокету для роботи з файлами PHP. Для початку відкрийте /etc/nginx/conf.d/default.conf:
php-fpm.conf задає upstream-код, на який можуть посилатися інші конфігураційні директиви Nginx.
Вийдіть і збережіть файл, потім відкрийте /etc/nginx/conf.d/default.conf:
Знайдіть блок, що починається з location
Вийдіть і збережіть файл, а після перезапуску PHP-FPM і Nginx, щоб нові конфігураційні директиви вступили в силу:
Ви можете перевірити статус кожної служби за допомогою systemctl:
тестування PHP
Тепер, коли веб-сервер конфигурирован і нові пакети встановлені, ми повинні переконатися, що PHP працює. Почніть з перевірки встановленої версії PHP в командному рядку:
Ви також можете створити тестовий файл в корені документа веб-сервера. Незважаючи на те, що його розташування залежить від конфігурації вашого сервера, корінь документа зазвичай знаходиться в одному з цих каталогів:
За допомогою nano відкрийте новий файл під назвою info.php в корені документа. За замовчуванням, на Apache це буде виглядати наступним чином:
На Nginx можна використовувати наступне:
Вставте цей код:
Ви побачите інформаційну сторінки PHP 7, на якій представлена поточна версія і конфігурація. Перевіривши цей момент, видаліть info.php:
Тепер ви переконалися, що PHP 7 працює. Далі ви можете ознайомитися з постом Еріки Хайді «Підготовка до PHP 7», а також з офіційним керівництвом щодо переходу від більш ранніх версій PHP до пізніших.