Оптимизация установки и настройки 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.6Gb причем установка займет около часа, придется договариваться с хостингом относительно особых условий «содержания» веб-ресурса.
Выбрав перспективную 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 - идеальное решение практически в любой ситуации и любой области применения.