Оптимізація установки і налаштування PHP – перспективне заняття. Це робиться швидко, особливих витрат не тягне, але, орієнтуючись на використання PHP як основи системи об’єктів, створеної для вирішення завдання, важко досягти бажаного результату.
Використання й установка PHP
PHP працює в моменти підготовки сторінці до передачі в браузер відвідувача, в фоновому режимі і в алгоритмах, що використовують механізм AJAX для оновлення елементів сторінки без її перезавантаження.
Виклик PHP здійснюється через http-сервер, коли він виявляє на сторінці PHP-код. Виклик PHP з командного рядка або іншим чином також можливий, але ці варіанти використовуються за межами задачі обміну інформацією між сервером і браузером.
Приклад установки PHP 7 на Windows 10 показаний нижче.
Цей приклад демонструє результат функції PHP phpinfo(), яка була викликана на локальному домені відразу після установки PHP.
Zip-архів інтерпретатора був завантажений з офіційного сайту розробника, розгорнутий в папці призначення «C:/SCiA/PHP», і на нього була вказана посилання у файлі «httpd.conf» сервера Apache (перша вставка). Для того щоб можна було починати роботу сайту з виклику PHP, додатково зазначено, що «index.php» має пріоритет перед «index.html» (друга вставка).
Таким чином, установка PHP включає в себе п’ять дій:
- завантажити офіційний пакет інтерпретатора (zip-архів);
- розгорнути zip-архів у робочій папці PHP;
- вставити вказівка на місце розміщення PHP файл Apache «httpd.conf»;
- помістити шлях до місця розміщення PHP в змінну оточення операційної системи – path;
- змінити файл налаштувань php.ini.
Останній пункт на початковому етапі можна пропустити, обмежившись мінімальними змінами. Настройка конфігурації інтерпретатора часто залежить від завдань, які він вирішує. Наприклад, дуже часто, але не завжди використовується MySQL, а отже, включати або не включати розширення для роботи саме з цією базою даних, – питання конкретної задачі.
Встановлення PHP на Debian значно відрізняється:
- apt-get install php5-common libapache2-mod-php5 php5-cli
За логікою роботи систем сімейства Linux, відбувається автоматичне визначення потрібних залежностей і доступних можливостей. Те, що в середовищі Windows потрібно спеціально встановлювати, уточнювати або вказувати, в сімействі линуксоидов робиться автоматично.
Немає принципової різниці, що встановлювати раніше – Apache MySQL, але PHP повинен бути встановлений в останню чергу.
Загальний опис php.ini
Встановлення PHP на Windows не вимагає особливої уваги до файлу ініціалізації, але деякі пункти слід включити відразу. Зазвичай відразу дозволяють роботу розширень: curl, fileinfo, gd2, gettext, mbstring, mysqli, openssl. Решта розширення підключаються по мірі потреби.
У файлі ініціалізації можна вказати параметри самої мови PHP. Наприклад, використання спрощеного синтаксису («» вместо «
Для багатьох задач істотно управління ресурсами, наприклад, максимальний час виконання скрипта (max_execution_time) або обсяг виділюваної пам’яті (memory_limit).
Файл php.ini» дозволяє управляти обробкою помилок, протоколюванням операцій, веденням журналів подій. Обробка даних може управлятися через пріоритети, встановлені в директиві «variables_order». Тут можна визначити, що важливіше: GET, POST Cookie або інші об’єкти мови.
PHP дозволяє завантажувати файли на сервер. Однак без санкції від «php.ini» неможливо завантажити файл (file_uploads). Крім того, можна визначити, куди будуть завантажуватися тимчасові файли і який максимальний обсяг завантаження (upload_tmp_dir, upload_max_filesize).
PHP може завантажувати за одну операцію один або декілька файлів. У цій операції він підтримує можливості JavaScript, який через механізм AJAX може передати інформацію про даних, що підлягають завантаженні.
В останніх версіях MySQL вбудований в ядро PHP, але використовувати можливість вказівки хоста, імені користувача і пароля через «php.ini» потрібно при дотриманні правил безпеки. Якщо немає проблем з роботою хостингу і немає шансів, що файл з конфігурацією веб-ресурсу вивалиться при збої у вікно браузера, то декларація конфіденційних даних «php.ini» безумовно краще їх зазначення в коді веб-ресурсу.
Зовнішні умови роботи PHP
Встановлення PHP виконується на сервер, як правило, Apache. Робота HTTP-сервера залежить від багатьох факторів, але саме його конфігурація визначає, як виконуються запуск і робота додатків, підвішених на сервер.
Зазвичай під Windows встановлюється PHP Thread Safe, тобто багатопотоковий варіант. У цьому випадку має істотне значення налаштування Apache. Зокрема, налаштування директив MPM, MaxRequestsPerChild, MinSpareServers, MaxSpareServers, MaxClients, оптимізація файлового кеша і кеша оперативної пам’яті.
У більшості випадків все доведеться перевіряти досвідченим шляхом. Кожен веб-ресурс має свою унікальну інформаційну структуру і динаміку інформаційних процесів. Те, що можна знайти в Інтернеті описаним, як відмінно працюючий варіант не спрацює аналогічно в іншому конкретному випадку.
Суттєвими моментами в умовах роботи PHP є власне код, адекватно враховує налаштування в «php.ini», мінімальна кількість сторонніх шаблонів і напрацювань популярних систем управління сайтами.
Краще відповідальні місця в коді переписати вручну, ніж покладатися на движки відомих CMS, які заради власного рейтингу жертвують продуктивністю.
Системи управління сайтами
Встановлення PHP і настройка php.ini – дві-три хвилини роботи на правильно поставленому Apache і справно працює MySQL. Проблема, однак, трапляється в тому, що орієнтація на ту чи іншу CMS обумовлює другий, більш вимогливий рівень налаштувань.
Питання різкого зниження продуктивності при використанні будь-якої системи управління сайтом можна навіть не обговорювати. Наприклад, просту сторінку, зроблену вручну, можна записати у 3-4Kb коду, її аналог на “Битриксе” – 1.6 Gb причому установка займе близько години, доведеться домовлятися з хостингом щодо особливих умов «змісту» веб-ресурсу.
Вибравши перспективну CMS, можна відразу планувати зміну тарифного плану: хостер обов’язково поставить умову переходу від віртуального хостингу (дисковий простір) на виділений сервер (фізичний або віртуальний).
Проте перспективна CMS візьме на себе значну частину функцій, які в іншому разі довелося б робити вручну.
Ціна рішення: установка PHP продовжиться в установці CMS. Програма установки CMS зажадає дотримання необхідних їй умов хостингу. Це позитивний момент, бо не доведеться думати, як і що робити. Але тут є і негативний аспект: розробники CMS переслідують мету оптимізації у межах своїх представлень, а не в контексті конкретної задачі.
Об’єкти PHP і робота сервера
Встановлення PHP в Ubuntu Server може виконуватися різними способами – все залежить від його версії і версії операційної системи. У Windows все доводиться робити самому, і процес виходить прозорим.
Не можна сказати, що дана обставина є недоліком сімейства линуксов, але момент невизначеності все ж є.
Етап фізичної налаштування – посилання на PHP з «httpd.conf» та уточнення файлу php.ini», потім етап логічного уточнення, якщо обрана перспективна CMS. В кінцевому підсумку фундамент сайту працює, далі слід функціонал.
Власне сервер і база даних постають перед основним кодом через інтерфейс. Як правило, кожен розробник відділяє основний код від коду роботи з базою даних, з браузером (відвідувачем), з сервером (завантаження файлів, імпорт, експорт тощо). Проблема основного коду – в тому, що кожен раз, коли відвідувач приходить на сторінку або запускається механізм AJAX, відбувається ініціалізація основного коду. Фактично кожен раз сайт готує сам себе до роботи.
Об’єкти браузера на JavaScript існують постійно, поки відвідувач знаходиться на сторінці. Об’єкти PHP активні тільки тоді, коли сторінка завантажується, оновлюється або виконується запит AJAX.
JSON або перенесення центру ваги
Оптимізація установки і налаштування PHP – перспективне заняття. Це робиться швидко, особливих затрат це не несе, але, орієнтуючись на використання PHP як основи системи об’єктів, створеної для вирішення завдання, важко досягти бажаного результату.
Система об’єктів PHP «живе» час від часу. Це означає, що кожен раз вона витрачає час на свою установку і настройку, а вже потім робить свою справу.
Використовуючи механізм обміну даними JSON, перенісши основну систему об’єктів на JavaScript, можна досягти більшого. Система об’єктів JS «жива» завжди, поки відвідувач на сторінці. Дії об’єктів JS транслюються на сервер, який робить те, що не може робити JavaScript, і повертаються назад.
Оптимізація поєднання JavaScript і PHP – ідеальне рішення практично в будь-якій ситуації і будь-якій області застосування.