Где находится файл php ini openserver
В отличии от других локальных серверов, Open Server достаточно часто обновляется и для его обновления не существует той самой волшебной кнопки с помощью которой в один миг можно получить новую версию.
Как безболезненно перенести данные старых проектов на новое программное обеспечение?
Ситуация, когда приходит время обновить версии своего программного обеспечения, не такая уж редкая. Одна из причин, по которой и был записан данный урок, прекращение поддержки версии PHP 5.2. Соответственно многие современные проекты нуждаются в более новых версиях для нормальной работы.
Прежде всего, чтобы приступить к обновлению, необходимо вначале установить Open Server на свободное место компьютера или внешнего устройства (влешки, диска).
Важно!
1. Прежде чем переносить папку с сервером в другое место, необходимо openserver остановить
2. Нельзя устанавливать новую версию поверх старой.
Сам процесс обновления подразумевает обычный перенос файлов и баз данных на новую версию Open Server. Для этого необходимо запустить старую версию и сделать экспорт всех баз данных.
Затем остановить старую версию сервера и запустить новую. Импортировать все базы данных в новую версию сервера. Файлы переносятся простым копированием из папки старой версии, в папку Open Server новой версии.
Форум
Подскажите, как для Open Server 4.7.3 установить модули для PHP 5.3.18?
Конкретно интересуют модули eaccelerator и ldap. Откуда брать, что делать?
Пожалуйста, помогите хотя бы с ldap.
Задонатил, когда первый раз скачал и ещё раз к НГ задоначу, если поможете
ldap есть в комплекте, достаточно раскомментировать строчку extension=php_ldap.dll в php.ini вашей версии PHP. Если будет ругаться при запуске сервера — проверьте наличие указанных постом выше библиотек в той же windows\system32 (оттуда они наверняка подхватятся, и не нужно ничего никуда прописывать).
eaccelerator придется вручную добавлять и прописывать в php.ini. Мануалов по его установке в интернетах тьма, например вот.
1. Ldap реально проглядел Попробую.
2. Бинарники eaccelerator есть только для PHP 5.3.3, они подойдут для PHP 5.3.18 разве?
И как правильно настроить кэш директорию для OpenServer, чтобы он остался portable?
Использование Composer с OpenServer на Windows
Composer не является менеджером пакетов в том же смысле, что и Yum или Apt. Да, он имеет дело с «пакетами» или библиотеками, но управляет ими на основе каждого проекта, устанавливая их в каталоге (например, vendor) внутри вашего проекта. По умолчанию он не устанавливает ничего глобально. Таким образом, это менеджер зависимостей. Тем не менее, он поддерживает глобальный проект для удобства с помощью глобальной команды. Эта идея не нова, и композитор сильно вдохновлен npm в Node.js и менеджером пакетов в ruby.
- У вас есть проект, который зависит от ряда библиотек.
- Некоторые из этих библиотек зависят от других библиотек.
Что делает Composer:
- Позволяет объявлять библиотеки, на которых вы зависите.
- Определяет, какие версии пакетов могут и должны быть установлены, и устанавливает их (что означает, что они загружаются их в ваш проект).
Для запуска Composer требуется PHP 5.3.2+. Также требуются несколько чувствительных настроек php и флагов компиляции, но при использовании установщика вы будете предупреждены о любых несовместимостях.
Для установки пакетов из источников вместо простых zip-архивов вам понадобятся git, svn, fossil или hg в зависимости от того, как пакет управляется версией.
Composer является многоплатформенным, и разработчики стремятся сделать его одинаково хорошо работающим в Windows, Linux и OSX.
Настройка OpeServer
Для начала необходимо выбрать один из версий модулей PHP 5.3.2+, с которым устанвалвиваемый Composer будет работать. Делается это в настройках
Установка при помощи инсталятора Windows
Установщик загрузит композитор для вас и настроит переменную среды PATH, чтобы вы могли просто вызвать композитор из любого каталога.
Далее проверяем версию, чтобы убедится на то, что Composer удачно установился командой
Чтобы выполнять команды Composer по команде composer добавляем путь в PATH
Она создаст .bat файл и в дальнейшем можно будет работать без указания php composer.phar, просто указывая composer Т.е. команда проверки версии (которая была выше) будет выглядеть так:
Установка при помощи CMD Windows
Чтобы быстро установить Composer в текущем каталоге, запустите в своем терминале следующий сценарий
Этот скрипт установщика будет просто проверять некоторые настройки php.ini, предупреждать вас, если они установлены неправильно, а затем загрузить последнюю версию composer.phar в текущем каталоге. 4 строчки выше, делают следующие действия:
- Загружает установщик в текущий каталог
- Проверяет установщик на SHA-384, который вы также можете перекрестно проверить здесь.
- Запускает установщик
- Удаляет установщик
Далее проверяем версию, чтобы убедится на то, что Composer удачно установился командой
Чтобы выполнять команды Composer по команде composer добавляем путь в PATH
Openserver настройка php с помощью профилей
При входе в настройки openservser , появится окно с множеством различных вкладок (13) в виде меню.
Для нашего конкретного случая, главными из них будут «Основные» и «Модули». В основных параметрах настраиваются профили, а в модулях-конфигурация сервера для каждого профиля отдельно.
Находясь в меню «Основные», в поле «Имя профиля», необходимо ввести нужное имя и нажать кнопку «Создать профиль», чтобы придуманный профиль появился в списке всех остальных профилей, которых кстати, может быть очень много.
Затем курсором просто выбрать новый профиль и перейти в меню «Модули», где настроить нужные параметры для нового профиля и сохранить. После чего, для сохранения новых установок, сервер будет перезапущен.
На практике все выглядит очень просто. Выбрав нужный профиль, необходимо нажать на кнопку «Загрузить профиль». Выбранные настройки будут доступны после перезагрузки сервера.
Вот так просто, используя профили openserver, можно быстро выбирать нужные настройки php любой версии.
Установка web сервера (OpenServer)
Возможно, потребуется разрешить работу:
6. Настройка версий. Заходим в настройки Open Server:
7. Готово. В следующей статье я покажу как конфигурировать локальные домены и развернуть проект PHP Start.
Поделитесь в социальных сетях
1. подготовка
xdebug уже встроен в OpenServer и качать нам его не понадобится
2. редактируем php.ini (e:OpenServeruserdataconfigPHP-5.4.17_php.ini)
должны быть эти обязательные настройки перезапускаем OpenServer
смотрим чтобы была временная папка xdebug >
e:OpenServeruserdatatempxdebug
код закладок имеет такой вид >
4. настройка PHPStorm
Run > Edit Configuration > Defaults > PHP Remote Debug >
Servers > сервер указанный в пред. настройке
Ide key(session id): > PHPSTORM
5. открываем нужную страницу в браузере которую будем отлаживать
нажимаем с закладок Start debugger (у меня start Xdebug, кому как удобно название)
в phpstorm включаем Listen PHP Debug Connections (значок телефонной трубки)
в коде сайта определяем точку остановки > Ctrl + F8
ОБНОВЛЯЕМ страницу в браузере, тем самым увидели остановку сайта и перехват штормом всех данных, которые получили до точки прерывания
6. профилирование в phpstorm
нажимаем с нужной страницы сайта Start profiler, обновляем, переходим по страницам сайта для отслеживания их работы
этим мы записали лог выполнения скриптов страниц в файлы > e:OpenServeruserdatatempxdebugcachegrind.out.[путь_к_странице]
где каждой странице создается файл
если обновить или зайти по уже ранее открытой странице сайта, обновится содержимое лог-файла
когда прекратили сбор информации нажимаем с закладок Stop profiler
Openserver настройка php для разных cms-систем
Openserver настройка php настраивается в модулях и является приоритетными настройками при использовании разных cms-систем, скриптов и приложений. Нельзя будет сделать установку системы поддерживающую версию php 5.6, если сам сервер настроен на более мощные параметры, например joomla, для которой нужно установить версию php не ниже 7.
Обратная ситуация, когда рекомендуемые параметры установки движка, выше чем настройка openserver, так же не желательна.
По этой же самой причине и уже готовые сайты, находящиеся на локальном сервере openserver, при изменении настроек модулей, могут быть недоступны. Трудно потерять данные, если конечно таких сайтов много. Для одной cms-системы можно настроить один раз и не обращать внимание на все остальное.
Но давайте рассмотрим вариант когда на локальном сервере openserver, установлено несколько вариантов сайтов, с разными системными требованиями. Для примера я взял скрипт службы поддержки osticket, с поддержкой версии php 5.6 и популярный движок joomla, для которого необходима версия php не ниже 7.0.
Разместить оба эти сайта на openserver, не получиться, если не создать специальные профили, в которых будут указаны необходимые параметры для каждого сайта отдельно.
Описание проблемы
Есть сайт. Работает на WP + wooCommerce. Количество продуктов ~21 000, категорий ~4 000. Куча своих таксономий, пользовательских типов записей. Генерация одной страницы занимает 4-5 секунд, иногда доходит до 10. Пользователи со всей статикой и с задержками сети ждут ещё 2-3 секунды. Задача: надо выявить что так тормозит сайт.
Конфигурация сервера: CentOS 8, ISPmanager 6 Lite. RAM 16 Гб, 4 процессора (именно какие не смог узнать, там VDS не показал с теми доступами что у меня были, а я сильно не интересовался, ну тут это не особо важной роли играет).
Для такой конфигурации и трафика который не превышает в сутки 500 уников такая долгая генерация однозначно патология. Взялся изучать.
About
Imagemagick build for OpenServer PHP_8.0 (should also work with vanilla Windows PHP 8.0.x x64 ThreadSafe)
Где разместить файл конфига? Как сделать так, чтобы при запуске апача он читался (может в основном конфиге путь к нему указать)? Какую инструкцию в доп. файл добавить?
- Вопрос задан более трёх лет назад
- 642 просмотра
Для изменения настроек в отдельном проекте, используется файл файл .htaccess в папке проекта (корне).
Dark_Scorpion, это общий файл php.ini, да. Но вопрос не в этом. Как сразу для всех хостов изменить настройки понятно. Вопрос в том - как изменить для отдельного хоста.
В поиске куча вариатов, в том числе тут:
Как использовать разные версии PHP одновременно для разных хостов в Open Server?
Но если кратко в OS есть для это прямо на главной странице настроек "профили", создаете нужный профиль и переключаетесь в 1 клик
У меня другая задача и кучи вариантов в поиске на этот счет нет. Мне необходимо сделать разные настройки PHP для разных хостов в рамках одного профиля. Или я могу сделать два профиля с PHP 5.6, но разными настройками в php.ini?
zhdoon, а в чем необходимость делать это в рамках одного профиля? Думаю разработчики не ожидали, что такое кому-то понадобится. На мой взгляд профили решают все задачи. Не представляю зачем это делать внутри одного.
Максим Тимофеев, если бы мой вопрос был сформулирован, как "решают ли профили все задачи по мнению Максима Тимофеева?" или "что ожидали разработчики опенсервера?", то я бы выбрал ваш ответ решением. Боюсь, что мне очень долго придется вам объяснять, зачем мне нужно сделать так, а не иначе. Но открою вам секрет - это обычная практика, возможность настраивать PHP есть, пожалуй, во всех известных хостинг-панелях.
zhdoon, Я же Вам сказал, что в openServer никак, только профилями или средствами самого apache. Вы ждете чуда?
Привет, Хабр! Это мой первый пост, поэтому поделюсь с вами кейсом ускорения работы одного сайта на WP + WooCommerce. Сам занимаюсь веб-разработкой, последние два года только на фрилансе. Не претендную на идеальную статью, я сам каждый день учусь новому, но в статье максимально стараюсь избегать неточностей.
Статья будет полезна джунам и миддлам кто разрабатывает сайты, кто занимается оптимизацией сайтов и кто хочет посмотреть на работу php кода "с высоты". Для себя из полезного можно узнать как связать вместе OpenServer, PhpStorm и xDebug. Один раз настраиваете и можно потом запросто делать отладку. И так, начнём.
Openserver php ini
6. Добавление PhpStorm в закладки
7. Запуск PhpStorm из закладок. В этом случае PhpStorm будет работать с локальными переменными OpenServer
8. Открываем настройки PhpStorm, комбинацией клавиш: Ctrl + Alt + S. Выбираем интерпретатор указанный в настройках OpenServer
9. Установка портов
10. Указание IDE Key, такой же как и в php.ini
11. Добавляем сервер Отладки
Ну вот и все PhpStorm настроен на отладку!
А теперь проверим его в работе!
Если есть вопросы пишите в
Всем удачного программинга!
Ну что, чешутся руки установить веб-сервер и написать первую программу на PHP? Сейчас всё будет.
Первым делом идём на официальный сайт OpenServer и скачиваем программу. Я рекомендую скачать BASIC-комплектацию, для наших нужд её вполне хватит. Однако можете посмотреть список программ, которые включены в другие пакеты. Возможно, найдёте что-то полезное, будь то какой-нибудь редактор кода или GUI-клиент для СУБД MySQL.
Итак, приступим. Первым делом нужно скачать саму программу.
Установка
Запускаем установщик и задаём директорию для установки программы. Установка представляет собой простую распаковку.
После завершения установки окно молча закроется.
Настройка
Переходим в папку с распакованным ПО: C:OpenServer.
Здесь мы видим файлы для запуска программы OpenServer для разных версий системы и 3 папки:
- domains – папка, предназначенная для хранения Ваших сайтов. Внутри неё мы и будем создавать наши проекты, например: myproject.loc;
- modules – папка, содержащая в себе исполняемые файлы модулей и необходимые для их работы библиотеки, дополнительные файлы;
- userdata – папка, в которой находятся пользовательские данные СУБД, файлы кэша, логи, а также файлы конфигурации модулей.
Запустим один из exe-файлов в корне, в зависимости от разрядности вашей ОС. В моём случае это Open Server x64.exe.
Выбираем язык и соглашаемся с установкой необходимых библиотек:
Перезагружаем компьютер. После перезагрузки снова запускаем наш exe`шник. В трее появляется значок с красным флажком.
Жмём по нему правой кнопкой мыши и выбираем пункт “Настройки”. Откроется главное окно программы. Перейдём во вкладку “Модули” и выберем версию PHP: PHP 7.0 и версию Apache: Apache-PHP-7.
Затем перейдём во вкладку “Домены”, выберем “автопоиск доменов” и в качестве корневой папки домена выберем пункт с наибольшим числом вариантов. Вы также можете дописать сюда свои варианты.
После чего нажимаем “Сохранить” и закрываем окно настроек.
Включение акселератора OPCache
Помните в прошлой статье я говорил об акселераторе? Давайте включим его. Это делается в файле php.ini. Для того, чтобы отредактировать его, щелкнем правой кнопкой мыши по флажку и выберем пункт Дополнительно > Конфигурация > PHP-7. Здесь нужно убрать комментарии для строк:
Должно получиться так:
Сохраняем файл. На этом конфигурация завершена.
В одном из прошлых постов мы рассказывали про PEAR, это, так сказать, вводная статья или краткий ликбез что такое PEAR.
Теперь настало то самое время, чтобы установить его на наш компьютер.
Замечание. Предполагается, что у вас установлен уже рабочий сервер с интерпретатором PHP 5.x.x, насчет ранних версий не знаю, не устанавливал.
Следует отметить, что PEAR может уже быть в дистрибутиве PHP 5, если нет то скачайте и добавьте его, как выше указано ;
2). Открываем окно командной строки и перемещаемся в папку PEAR в установленном PHP, набрав команду:
3). Создаем в корневой папке php C:OpenServermodulesphpPHP-5.5.4 файл с go-pear.bat , этот bat файл нам необходим, чтобы задать в командной строке последовательность операций для настройки нашего PEAR. Открываем этот файл в любом текстовом редакторе и пишем внутри код:
Следует отметить, что файл go-pear.bat может уже быть в дистрибутиве, если нет то добавьте его, как выше указано с кодом;
4). Открываем окно командной строки и заходим в папку с файлом go-pear.bat, набрав следующую команду:
и жмем на ENTER, мы запусти файл go-pear.bat и на экране выводится текст с просьбой подтверждения и вводим букву l + yes,
выведется список путей установки и порядковый номера и набираем цифру 11 , жмем ENTER и указываем путь к
конфигурационному файлу pear.ini, который находится в корневой папке PHP, иначе говоря вводим путь к этому файлу в виде C:OpenServermodulesphpPHP-5.5.4pear.ini и жмем ENTER. Далее жмем цифру 12 и жмем ENTER,
вводим путь к корневой папке PHP C:OpenServermodulesphpPHP-5.5.4 и жмем ENTER и еще раз ENTER.
5). Чтобы пройти дальше нам нужно запустить команды PHP и чтобы эти команды выполнялись в командной строке нам необходимо будет удостовериться, что в Переменных средах указан путь к корневой папке PHP и для этого заходим в ПУСК курсором на Компьютер жмем правую кнопку мыши, из списка выбираем самый нижний пункт свойства, заходим на страницу с информацией ОС, смотрим слева и видим там пункт наверху Дополнительные параметры системы, жмем на него, выскакивает окошко и там жмем на кнопку Переменные среды видим в верхней части переменную Path и пути разные, которые отделяются друг от друга точкой с запятой, вот ставим точку запятую к последнему пути и вставляем наш путь в виде C:OpenServermodulesphpPHP-5.5.4, все , указали, сохраняем и выходим;
6). Открываем файл конфигурации PHP , у меня он лежит в папке C:OpenServeruserdataconfigPHP-5.5.4_php.ini и находим пункт
и смотрим , чтобы был указан правильный путь к папке PEAR;
7). Создаем в корне PHP файл pear.bat со следующим кодом :
8). В корне создадим еще один файл go-pear-conf.bat для донастройки конфигурационного файла pear.ini со следующим кодом:
и запускаем его через командную строку;
9). Чтобы проверить, что у нас все установилось правильно и что PEAR функционирует запустим в режиме командной строки команду pear C:UserWebSofter> pear config-show , который выведет весь список PEAR-команд;
10). В дистрибутиве PHP 5.5.x PEAR уже включена и необходимость в скачивании отпадает, только если вы не хотите обновить PEAR, нужно отметить, что данная настройка проводилась со сборкой OpenServer, так что, если вы настраиваете локальный сервер на других сборках на подобие Денвера, то особой разницы нет, главное присмотреть, чтобы пути к корневым папкам и файлам совпадали. Удачного дня! );
Скачав последнюю версию laravel и настроив рабочее окружение, попытался выполнить в консоли:
php artisan migrate:install
could not find driver
Как видите: тут меня ждал облом. Вначале я стал грешить на неверные настройки mysql. Но сам сайт великолепно работал. И я пошел гуглить. Не буду описывать все попытки решить данную проблему. Сразу приведу 2 готовых совета.
Закладки
Запускаем Open Server. Переходим в настройки. Выбираем вкладку «Закладки». Заполняем поля:
Имя: Консоль
Категория: Tools
Выполнить: cmd
Жмем «добавить».
Теперь мы можем запускать «правильную» консоль через меню «Мои закладки».
Данный способ прост. Но он не подходит при интеграции различных IDE с PHP. Для этого случая стоит воспользоваться вторым советом.
Символическая ссылка
В силу специфики работы самого Open Server для решения данной проблемы необходимо создать символическую ссылку на файл /userdata/temp/config/php.ini . Проще всего это сделать, используя FAR-менеджер, или любой другой инструмент. Для продвинутых пользователей есть консольная команда mklink :
ВНИМАНИЕ . Путь для источника и назначения указывается относительно вашего каталога с Open Server! При выборе каталога с назначением выбираем нужную версию PHP!
mklink "z:SoftOpen Serveruserdatatempconfigphp.ini" "z:SoftOpen ServermodulesphpPHP-5.3.14php.ini"
P.S. Для того чтобы не писать каждый раз путь к php.exe, воспользуемся еще одним финтом. Нам нужно добавить в переменную PATH путь к каталогу с php.exe. Для этого нужно открыть Дополнительные параметры системы. Это можно сделать тремя способами:
ВНИМАНИЕ . Ни в коем случае не удаляйте значение переменной! Необходимо дописать в конец
;z:SoftOpen ServermodulesphpPHP-5.3.14
После чего открываем консоль. Переходим в каталог с проектом:
Z:SoftOpen Server> cd domainslgnd.local
Набираем нужную команду:
Z:SoftOpen Serverdomainslgnd.local> php artisan migrate:install
Migration table created successfully.
Создание локального сайта на OpenServer
Создание локального сайта основывается в создании папки с именем домена. В эту папку будут загружаться все файлы локального сайта.
Создать домен на OpenServer можно одним из двух способов:
Способ 1 (ручной)
- Кликните меню OpenServer. Выберите пункт «Папка с сайтами». Откроется папка domains. Создайте паку присвоив ей именя домена. По умолчанию там уже есть localchost.
- Кликните желтый флаг для перезапука OpenServer. Домен для будущего сайта готов к работе.
Вариант 2 (автоматический)
В настройках выберите вкладку «Домены». Создайте домен и папку для сайта. Впишите название домена и папку для сайта. Для избежания путаницы присвойте им одинаковые имена. Далее выберите пукт «Добавить» и «Сохранить». OpenServer перезапустится после вашего подтверждения автоматически. Домен успешно создан.
Как обновить php в openserver
PHP-8.0-imagick for OpenServer
Инструкция по установке (English version below)
- Распаковать содержимое папки PHP_8.0 в папку \modules\php\PHP_8.0\ .
- Нажать на иконку OpenServer в трее правой кнопкой мыши и выбрать: Дополнительно -> Конфигурация -> PHP_8.0 .
- Найти в файле конфигурации блок Extensions , добавить туда следующую строку: extension = imagick
- Сохранить файл конфигурации, перезапустить OpenServer.
- Unpack content of PHP_8.0 directory into the \modules\php\PHP_8.0\ directory.
- Right-click the OpenServer icon in the system tray and click: Advanced -> Configuration -> PHP_8.0
- Find the Extensions block and add the line below: extension = imagick
- Save configuration and restart OpenServer.
Разворачиваем среду отладки
С помощью плагина Duplicator быстро взял копию сайта. Исключил все медиа, изображения, архивы и папку wp-content/uploads целиком. Они нам не нужны для анализа, но могут здорово раздуть архив что сервер упрётся в лимит, либо браузер покажет 504 Gateway time out.
У меня установлен OpenServer версии 5.3.8, создаю директорию, закидываю файл с архивом и с файлом installer.php что выдаёт duplicator. Перехожу по адресу mydevsite.domain/installer.php и заполняю все данные что просит dup-installer. Не буду тут долго останавливаться, поднять копию сайта проще простого.
Открываю проект в phpStorm. IDE довольно удобный, но для текущего кейса можно было и без него обойтись. Поэтому если у вас другой IDE не торопитесь уходить, нам он нужен только для просмотра логов xDebug.
Включить xDebug в OpenServer
Если у вас как и у меня установлен OpenServer то отдельно устанавливать расширение xDebug не надо, он уже установлен, достаточно в конфигурации php.ini раскомментировать нужные строчки и немного настроить. Если что-то другое документация к xdebug тут.
Чтобы открыть php.ini надо проделать следующее:
Клик по иконке OpenServer в нижнем меню -> Дополнительно -> Конфигурация -> php7.4.
У меня php версии 7.4, если у вас другая версия там будет соответствующее название.
В открывшемся окне с конфигами находим строчку ;zend_extension = xdebug и убираем с начала строки точку с запятой (раскомментируем). Чуть ниже в окне будут уже сами конфиги xdebug. Опускаемся или находим поиском строку [xdebug] и вносим правки ниже:
Тут xdebug.mode указывает что мы хотим профилировать и трассировать код. По умолчанию там стоит off. Есть ещё другие режимы, но на них не буду останавливаться, этих двух нам достаточно. xdebug.start_with_request указывает что включать режим отладки надо не всегда, а только если передать специальный параметр (через POST, GET или COOKIE, удобнее всего GET параметр). И да, этот параметр по умолчанию закомментирован, не забудьте раскомментировать.
Как выглядит конфиг php.ini у меня.
Всё. xDebug готов, перезапускаем OpenServer. Теперь при переходе на любую страницу нам достаточно прописать ключ get параметра XDEBUG_PROFILE и php будет собирать отладочную информацию и записывать в папку что указан по пути xdebug.output_dir (у меня стоит путь по умолчанию). Про другие особенности можно прочитать тут.
Вид URL будет иметь такой вид mydevsite.domain/?XDEBUG_PROFILE если надо собрать информацию с главной страницы. В моем случае я снял снепшот с главной страницы.
Просмотр логов в красивом виде
Для просмотра логов я использую phpStorm. Но гугл подсказывает что для vsCode или Atom тоже есть решения. В самом верхнем меню находим раздел Tools и в списке Analyze Xdebug Profiler Snapshot. Нас попросит выбрать файл, переходим по пути где указали запись файлов, у меня по умолчанию это >/userdata/temp/xdebug/
Если всё сделано правильно там будет записанный файл с названием cachegrind.out.> . Выбираем, ждём когда phpStorm обработает всё и вуаля, у нас есть работа скриптов с высоты.
Доступ к доменам
Для открытия доменов, созданных на локальном сервере, выберите в меню OpenServer вкладку «Мои сайты». Кликните нужный домен и сайт откроется на локальном сервере.
Установка OpenServer
Устанавить OpenServer можно очень просто. Для этой платформы не нужно создавать виртуальный диск, как для Denwer. Просто запустите .exe файл OpenServer (open_server_5_3_7_full.exe). Управлять работой OpenServer из в трея Windows.
После установки платформы появиться директория OpenServer с четырьмя папками (domains, modules, progs, userdata) и два значка запуска OpenServer для версий Windows (32-бит и 64-бит).
Кливнув значок OpenServer сработает и в панели задач Windows (в трее) появится красный флажок OpenServer. Это значит, что OpenServer открыт, но еще не запущен.
После нажатия на красный флажок, откроется окно управления OpenServer. Здесь все на русском языке и меню разделено на функциональные зоны. Запускается локальный сервер зелёным флагом.
Openserver Maximum execution time of 300. Help! 🙂
MoMM, в openserver конфиг правится по этому адресу:
Есть еще один конфиг, который перезаписывается при каждом запуске. В него бесполезно вносить настройки. Он находится тут:
Вы в какой конфиг вносили правки?
именно он и поправлен, только я 5.5 пользуюсь. мкасимальный размер файла нормально изменился на 2048, а вот время исполнения никак не хочет меняться и постоянно ошибка рочно через 300 сек, хотя прописывал уже и 30000 и 3600.
там 0 (без ограничений) работает в этом месте?
дык каждый раз перезагружаю
Можете ещё попробовать в начало скрипта вставить:
или сколько хотите.
LEOnidUKG:
Можете ещё попробовать в начало скрипта вставить:
в начало PHP-5.4_php.ini ?
Это в начало php файла.
MoMM, Советую такие большие файлы заливать через консоль openserver. Это проще простого.
Для этого открываем консоль:
Переходим в директорию mysql (проверьте свой путь и версию mysql)
Копируем базу в корень диска С. Далее вводим:
Эта команда подходит когда заранее создана база "test" и у пользователя root нет пароля.
Есть разные способы установки всего необходимого программного обеспечения для работы с PHP. Мы можем устанавливать на компьютер компоненты по отдельности, а можем использовать уже готовые сборки на подобие Denwer, EasyPHP или OpenServer. В подобных сборках компоненты уже имеют начальную настройку и уже готовы для создания сайтов.
Используя локальный веб-сервер OpenServer на своём компьютере можно создавать сайты без выхода в глобальную сеть Интернет и без использования сторонних серверов. Именно так вы сможете в спокойном режиме сделать сайт, протестировать его, не торопясь выбрать хостинг для сайта, например, beget.
Программа OpenServer относится к платформам типа WAMP (Windows, Apache, MySQL, PHP).
OpenServer — это платформа для создания локальных сайтов, которая прочно завоевывает верхние позиции в линейке локальных серверов. Причин этому несколько, и вот основные:
- Платформу можно устанавливать стационарно (на домашний компьютер) и портативно без установки на операционную систему;
- Open Server имеет удобный интерфейс доступный из панели задач Windows;
- Платформа имеет богатый набор из 29 компонентов программного обеспечения.
Выявляем проблемный участок кода
phpStorm показывает логи в красивом и удобном виде. На первом окне смотрим сколько вообще времени заняло выполнение скрипта. Но нас интересует вкладка Call Tree (ниже выделил куда кликать).
И так у нас уже есть какие-то цифры. Раскрываем по одному файлы чтобы понять где лежит проблемный участок. Нас интересует ветка с файлом template-loader.php, нам надо ускорить написанную с нуля тему, а не копать в сторону ядра WP/
Ориентируясь цифрами, сколько процентов какая ветка сожрала, опускаемся до нужного файла и участка кода. В моем случае функция get_heder использовала 42% от всего времени. Смотря ещё глубже нахожу что это функция get_catalog_menu который жрал 36%. Кавабанга!
Файл header.php Опускаемся ниже и находим функцию тяжеловес
Находим файл в котором находится функция. Можно кликнуть по ПКМ и сделать jump to source. В нашем случае это оказался файл menu.php.
Вкратце - функция выбирает каждый раз все 4 000 категории и как-то делая проверки строит из них меню. Каждая проверка условии для одной категории это одно обращение к БД. В целом кусок кода довольно тяжелый.
Разработчик учёл что эта функция сильно нагружает код и сделал кеширование через WP Object Cache. Но не учёл что кеш работает только если сервер поддерживает кеширование и на сайте WP установлен плагин для объектного кеширования. А в моем случае на сервере он не работал и кеш не создавался. Про эту особенность можно прочитать тут.
Решение
Заказчик сказал что сайт мало когда редактируется, категории тем более, поэтому не стали переделывать код и оставили всё как есть для удобства. Только вместо объектного кеширования сделал хранение кеша в транзиентах.
И была такая же функция, только для менюшек в сайдбаре. Их тоже сделал чтобы кешировались. Итог - сайт летит.
Поверх всего провёл ещё ряд других оптимизаций и настройку сервера (сжатие gzip, время жизни кеша для статики, апдейт версии php до 8.0, очистка базы данных от мусора, вынесение стилей и скриптов в отдельные файлы).
Результаты ДО. ~9 секунд на выполнение. Результат после. Выполение занимает ~6 секунд.
Результаты до/после тут только после исправления всего двух функций. После были выполнены ещё другие мелкие оптимизации, настроен плагин полностраничного кеширования и суммарно для конечного пользователя сайт работает раза 4-5 быстрее. Отклик кешированных страниц занимает ~400мс, а не кешированных в зависимости от типа 1,5-2 секунд.
В целом заказчик доволен. Мы не ставили цель разогнать сайт до максимума на данном этапе. В будущем возможно с ростом трафика будем ещё переделывать кодовую базу. Пока на этом всё. Мне будет интересно прочесть комментарии от других разработчиков что можно было делать лучше, а где были допущены ошибки.
Способ 1.
Открываем системный трей (1.) и щелкаем правой кнопкой мыши по флажку (2.) Open Server. Переходим по пути:
Обратите внимание, что у вас, может отличатся версия PHP, в зависимости от того, какую версию вы выбрали. В моем примере, это PHP 7.3.
В открывшемся окне
После этого, все должно работать.
Способ 2.
Первичный анализ
Для начала сделал бекапы. Установил плагин Query Monitor который абы как показывает запросы в БД. Зацепка есть: около ~15000 запросов.
На первый взгялд не понять в чем проблема. Тяжелых плагинов нет, тема не на каком-то Elementor или WP Bakery, создан с нуля и расширена плагином Advanced Custom Fields, все файлы разбиты по папкам и названы адекватно. Копаем глубже.
Читайте также: