Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Тренд переходу на PHP 7 набирає обертів. Бо це швидше працює (об'єктивно!), Це зручніше для розробки (але це не точно, ніби як).

Той же WordPress вже давним-давно вміє працювати на нових версіях PHP. Та й інші популярні CMS не відстають. Тому є сенс переводити цілком сервери на цю версію. Але тут є заковика в тому, що софт в офіційних репозиторіях дистрибутивів Linux не поспішає оновлюватися. Для установки чогось нового як правило потрібно милицях з додатковими репозиторіями. Напевно немає ніяких з цим проблем якщо ви використовуєте віртуальні хостинги. А ось якщо ви тримаєте сайти на власних серверах або VPS, то тут вже потрібно самостійно морочитися з оновленням і установкою нової версії PHP. І оскільки в 80% випадків на серверах використовується панель управління ISPmanager 5, то мова буде про налаштування PHP 7 саме в ній. Чому про це пишу я, а не саппорт ISPsystem? А хз, тому що в їх мануале нічого про це не сказано.

Які версії PHP встановлені в поширених дистрибутивах Linux за замовчуванням?

Хостери зазвичай пропонують такі OS для установки на VPS або Дедик:

Звичайно, трапляються й інші варіанти, або навпаки, може не бути щось з цього списку. Але новітні версії - Debian 8, Centos 7 і Ubuntu 16.04 будуть практично у будь-якого хостера. З цих трьох похвалитися встановленим PHP 7 може тільки остання. Але у неї є інші проблеми - вона відносно нова і в ній можна загрібає якісь незрозумілі глюки і баги. З мого досвіду Ubuntu на серверах можна використовувати LTS версії (як раз парні 04) лише років через 2 після випуску. Як мінімум це простіше, ніж потім довго шукати і виявляти проблеми, яких в принципі не повинно бути. У мене неодноразово такі виникали з продуктивністю деякого софта в новітніх версіях Ubuntu.

Про версіях Ubuntu

Про версіях Ubuntu

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Яку OS краще ставити на свій сервер?

Однозначно щось з вищеозначених списку, тим більше якщо збираєтеся ставити панель ISPmanager Lite 5 (де її купити дешевше ніж у розробників?)

Взагалі, я великий любитель якраз Убунту. Бо багато років і багато серверів присвятив роботі саме з нею. Це прекрасна і зручна OS для сайтів на вашому сервері. Але то був корпоративний сектор, де все збирається, налагоджували і налаштовується індивідуально. Однак коли я почав працювати з серверами клієнтів з вебмайстрів - то зіткнувся з тим, що ні Ubuntu, ні навіть Debian не такі хороші як Centos, і Centos 7 зокрема. Її ж рекомендують і самі розробники панелі управління ISPmanager. На практиці - в deb-based системах (ubuntu теж до них відноситься) з цією панеллю стикався з деякими глюками. З centos - практично не бувало.

Взагалі тут питання зручності адміністрування - різниці в роботі софта і тим більше сайтів практично немає між ними. Ніякої різниці в продуктивності - тим більше. А ось в установці і настройці софта - різниця може бути вже пристойною.

В Debian і Ubuntu софт при установці йде з якимись базовими настройками. Він навіть запускається і працює відразу після інсталл, додається в автозавантаження. У Centos такого немає. Конфіги по-замовчуванню, софт не стартує автоматом і деякий потрібно попередньо налаштувати, інакше він просто не запуститься. Наприклад ті ж сервери СУБД - вони встановлюються неіініціалізірованнимі. І їх потрібно форматувати (створювати системну базу) вручну перед запуском.

Той же PHP 7 - в centos його легко встановити просто додавши додатковий репозиторій. Хоч в 6-ю, хоч в 7-ю версію. В Убунту 14.04 або Debian php 7 теж ставиться з доп. Ріпне. Але вона там ставиться паралельно дефолтной п'ятої. І щоб змусити апач на ній працювати потрібна доп. налаштування. Але при використанні ISPmanager 5 все стає набагато простіше.

Установка PHP 7 в Centos з додаткових репозиторіїв

Таким способом я користувався раніше. Справа в тому, що можливість, про яку я зібрався розповісти з'явилася в ISPmanager відносно недавно. Тому доводилося ставити PHP 7 тільки зі сховищ Remi. Є й інші, але краще з нього. У ISPmanager є можливість установки альтернативних версій PHP. Але їх раніше можна було використовувати тільки в режимі CGI. А цей режим підходить не всім і не для будь-якого сайту. (Про режимах детально недавно я писав тут). Раніше для Apache і PHP-FPM використовувався загальносистемний PHP - який називається в панелі native. І його версія збігається саме з тими, що я привів в табличці на початку статті. Зокрема в Centos 7 це буде 5.4. Сооветственно, якщо native оновити до потрібної версії - apache запрацює саме на ній. Так раніше і робилося.

Качаємо і встановлюємо репозиторій Remi:

Дозволяємо його використання:

У файлі /etc/yum.repos.d/remi-php70.repo потрібно для першого ріпа [remi-php70] дозволити можливість використання - в enabled має бути значення 1. По-замовчуванню там 0, що означає репозиторій не використовується. Є й інший спосіб його задіяти, за допомогою опції инсталлера пакетів, але я використовую такий, бо простіше запам'ятати і зрозуміліше.

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Ну і все, далі можна встановлювати:

yum install -y php

Це оновить той самий native php до версії 7.0. Після поновлення можна перезапустити панель, щоб вона «побачила» оновлення:

/ Usr / local / mgr5 / sbin / mgrctl -m ispmgr exit

Для цього достатньо просто ось так зупинити його з консолі і перезайти в браузері. Ну або можна цього і не робити, в будь-якому випадку на сервері вже php 7 і саме він буде використовуватися в режимі модуля Apache або php-fpm. (До речі, з консолі взагалі можна дуже багато чого робити в ISPmanager 5, наприклад масово додавати домени і бази даних)

Але це шлях - так званий «милиця». З деяких пір користуватися ним не слід.

Включення PHP 7 як модуля Apache в панелі ISPmanager 5

Оскільки з регулярними оновленнями панелі з'явилася можливість використовувати будь-яку версію PHP, з тих що встановлюються в якості альтернативних і раніше були доступні тільки в режимі CGI. Так званий - селектор версій PHP. Шикарна можливість, я рекомендую використовувати ISPmanager тільки за однієї це. Ніде більше такого зручності і простоти немає. Це кажу я, адмін, який без удаваної скромності собаку з'їв на налаштуванні серверів без панелей, а тепер вже і з панелями. Тільки тут можна легко і просто виставити для кожного сайту свою версію PHP - від древньої 5.2, яка була актуальна коли я ще не почав працювати навіть, до новітньої 7.1.

В меню можливості треба встановити ці самі альтернативні версії. Після чого з'явиться можливість юзати селектор для кожного сайту, але тільки в режимі CGI.

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

За замовчуванням альтернативні версії включаються тільки для режимів CGI і PHP-FPM (з недавніх пір).

А ось в режимі модуля Апача запустити ці версії відразу не вийде. Відповідна кнопка в меню PHP просто неактивна.

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Досить довго я не міг зрозуміти чому так, і як же все таки використовувати цю фічу. І просто ставив потрібну версію PHP з Ремі, вищеописаним Костильна способом. Поки сьогодні не спитав у саппорта таки - а де ж? Причому, я попередньо сумлінно погуглити, знайшов і почитав офіційну доку про налаштування версій PHP і нічого в ній не знайшов.

Виявилося, скринька відкривалася просто:

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Потрібно в меню «Можливості» клікнути двічі на потрібної версії PHP. Зокрема 7.0. І там є відповідна опція установки даної версії php як модуля Apache.

Після чого назад йдемо в розділ PHP і там для потрібної версії кнопка стає активною.

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Ну, тут я вже перемкнув на 7-ю версію, тому активну кнопку показую на нативной версії 5.4.

Весь цей вищеописаний спосіб повинен працювати і в Debian, і в Ubuntu. На практиці поки що не перевіряв. Перевірите - відпишіть пліз. А ось «костильного» спосіб в цих ОС буде ще Костильна ніж в Centos, бо там PHP 7 ставиться паралельно 5-й версії і в системі виходить ДВІ версії нативного PHP. А тут з одного б розібратися 🙂 Саме тому я рекомендую centos.

Включаємо альтернативну версію PHP 7 для режиму NGINX + PHP-FPM в ISPmanager 5

Тут все досить просто. Після установки альтернативної версії вона буде встановлена ​​і для PHP-FPM за замовчуванням. Досить включити потрібну версію в налаштуваннях користувача:

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Після цього всі сайти в режимі PHP-FPM у цього користувача будуть працювати на php7.

Як перевірити версію PHP конкретного сайту і де знайти її налаштування, файл php.ini?

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Причому, зверніть увагу, основний конфігураційний файл альтернативної версії PHP включеної у такий спосіб знаходиться зовсім не там, де ви очікуєте. Інколи це може привести до тривалих пошуків і нерозуміння чому не вдається змінити той чи інший параметр в конфігурації PHP. Ви ж його шукаєте в /etc/php.ini, але сайт використовує php, сконфігуренний зовсім в іншому місці.

Юзайте phpinfo в будь-який незрозумілій ситуації, це може позбавити вас від пристойних втрат часу і нервів.

Ну на цьому у мене все, з практичної адмінській частиною розібралися. Далі трохи філософії.

А навіщо потрібно використовувати PHP 7?

Php 7 в ispmanager 5 - як встановити в режимі модуля apache або php-fpm способи установки php

Як бачите, практично в 2 рази швидше, ніж попередні версії. Наприклад, на еталонному сервері c SSD еталонний порожній WordPress буде показувати близько 400-500 мілісекунд TTFB. А ось на php 7 з включеним і налаштованим акселератором opcache wp може працювати з часом відгуку 150-250 ms. А може і не працювати 🙂 Бо ви можете якийсь уёбіщний чудо-преміум-шаблон з темплейт-монстра поставити на нього, і потім охуєваю чому він вантажиться по 3-5 секунд (це тільки TTFB, а візуально там і все 10-20 може бути). А ще й відчувати себе долбоеб, бо на демке розробників все літає, за 100-200 ms відкривається. Вам адже невтямки, що там все закешовану до ебеням, їм же не треба щоб ви якось взаємодіяли з сайтом, треба просто впарити його вам 🙂 І що там сам wordpress навіть не бере участі в генерації сторінок - все робить nginx, а він з кешу віддає миттєво. Але це так, ліричний відступ, з наболілого.

А взагалі, на тему оптимізації і розгону часу відгуку накопичилося пристойно досвіду і коли-небудь я, скоріше за все виллю, його на ваші голови, мої дорогі Новомосковсктелі 🙂 Причому, оптимізація та прискорення статейніков це одне, про це я вже дещо писав. А ось на тему оптимізації інтернет-магазинів і сервісів розмова окрема, і думаю це особливо цікаво має бути. Так?

Надіслати відповідь