Інформація в даному записі трохи застаріла, рекомендую частково використовувати інформацію зі статті Веб-сервер на CentOS 7: Nginx, PHP 7.x, PerconaDB
У даній статті я розповім про встановлення PHP 7, випуск фінальної версії якого став одним з найважливіших подій минулого року. Команда розробників виконала просто величезну роботу, судячи з тестів, продуктивність PHP 7 впритул наблизилася до показників конкурента HHVM. Слід зазначити, що зростання продуктивності був досягти за рахунок оптимізації і ніяк не вплинув на збільшення споживання ресурсів.
Якщо порівнювати з попередньою версією, то на мою думку, PHP 7 абсолютно позбавлений недоліків. Виходячи з наявної інформації, можна зробити прогноз, що темпи переходу на PHP 7 будуть досить швидкими. Раніше я вже описував процес установки PHP 7 з початкових кодів або іншими пакунками Debian, в цьому записі я розповім як швидко встановити PHP 7 в Cent OS 7.
На даний момент в офіційному репозиторії Cent OS 7 відсутні пакети для установки PHP 7. Зв'язки з чим, варто трохи почекати з перекладом на PHP 7 серйозних комерційних проектів. Зате буде не зайвим встановити PHP 7 на тестовий серевер, щоб заздалегідь перевірити сумісність додатків і ознайомитися з новими можливостями мови PHP 7.
У цьому записі я опишу свій досвід установки PHP 7 для використання його в поєднанні з веб-сервером Nginx. Для установки я використав систему CentOS 7.1 і пакети PHP 7 з неофіційного сховища IUS.
Установка PHP 7 в Cent OS 7
Перед установкою PHP 7 нам необхідно підключити до Cent OS репозиторій IUS. Для цього нам необхідно завантажити та виконати спеціальний скрипт, після його запуску репозиторій IUS вони будуть додані в систему.
Переходимо в каталог tmp і завантажуємо скрипт на сервер:
Потім виконайте скрипт командою:
Якщо на сервері присутня PHP, видаліть усі встановлені пакети. Для першої установки PHP 7 на сервері, наступний пункт потрібно пропустити.
Щоб встановити PHP 7 і модулі php-fpm. php-mysqlnd. виконайте команду:
Налаштування PHP 7 для роботи з Nginx
Після завершення установки PHP 7, нам потрібно внести зміни в конфігурацію PHP-FPM і Nginx. За замовчуванням в PHP 7 для з'єднань використовує локальний TCP-порт. Загальновідомим фактом є те, що для кращої швидкодії PHP-FPM і Nginx бажано використовувати Unix-сокет.
Закрийте файл і збережіть зміни. Тепер нам необхідно змінити конфігурацію Nginx, для того щоб веб-сервер використовував сокет під час взаємодії з PHP-FPM. Відкрийте файл:
Нам необхідно переключити спосіб взаємодії Nginx і PHP-FPM з tcp-порту 9000 використання сокета. Для цього змініть вміст файлу наступним чином:
Закрийте файл і збережіть зміни. Щоб нові директиви вступили в силу нам необхідно перезапустити PHP-FPM і Nginx:
Ви можете перевірити статус кожного сервісу, використовуючи systemctl:
Перевірка роботи PHP 7
Після того як ми встановили PHP 7 і підготували до роботи веб-сервер Nginx, необхідно переконається, що все налаштовано правильно. Почніть з перевірки версії PHP, для цього виконайте команду:
Потім створимо в кореневому каталозі веб-сервера файл info.php:
Скопіюйте в файл наступний код:
Якщо ви правильно встановили та налаштували PHP 7 в CentOS, ви повинні побачити сторінку містить інформацію про конфігурацію PHP 7.
Проблеми під час установки PHP 7
Далі я розповім про невелику проблему, з якою я зіткнувся під час установки PHP 7 на CentOS 7.1.
Дуже часто хостери вносять свої зміни в шаблони контейнерів віртуальних машин. У моєму випадку, проблема була викликана тим, що CentOS 7 використовувала криві дзеркала centos-base і testing репозиторіїв. Для тих, хто зіткнувся з подібною проблемою, відкрийте файл:
Щоб встановлювати пакети з офіційних репозиторіїв CentOS 7, використовуйте конфігурацію нижче: