Как добиться того, чтоб сайты (которые пишутся с помощью php-фреймворков) на локальном веб-сервере просто летали?
Какой локальный сервер использовать?
Пробовал много чего: vagrant, ubuntu-сервер разворачивал сам. Но эти варианты для меня не удобны. Приходится использовать удалённое подключение. Но скорость работы сервера там хороша!
Под линуксом не работаю. Только Windows (сейчас 10 версия). Всегда было интересно, почему php+apache на windows работает намного медленнее, чем на Ubuntu?
Комп, вроде, не очень слабый у меня:
QuadCore AMD Athlon II X4 630, 2800 MHz (14 x 200), 8 гигабайт оперативки. Может, какие-то программы апач глушат?
Порт 80 в скайпе вырубил. Антивирус - ESET NOD32 9. Может NOD32 виноват?
Сейчас остановился на XAMPP. Но он тоже далеко не быстрый. Хочется быстрее. Да и такое ощущение, что со временем, он становится ещё медленнее.
Пробовал и по отдельности устанавливать PHP+Apache+MySQL в Windows. Ну, так себе. Может, есть какой-то секрет? Какие-то трюки и фишки?
Хотелось бы что-то вроде XAMPP'a, чтоб просто настраивалось и работало очень быстро.
Подскажите, пожалуйста.
P.S. NGINX вообще ни разу не пробовал. Его хвалят, но как его устанавливать и настраивать в Windows я не нашёл.
Да и неужели разница существенна? Неужели для локалки Nginx - на 10 голов выше Apache по скорости?
Подобная ситуация. У меня когда-то летали сайты на локальном сервере, а потом, после переустановки системы, стали тормозить. Пробовал и openserver и denwer с разными версиями Apache и MySQL, без разницы. Чтобы проверить виноват ли NOD32, отключите его.
Я понимаю, что надо писать так чтоб, летали. Эта фраза немного не в тему. Вы не поняли меня. Просто я заметил: CMS MODX Revolution, после установки, чистая на Ubuntu Server - 75 мс, Windows - 350 мс.
И дело не в шашечках. Я не хочу Linux ставить. Мне нужна windows 10. Много нужного софта и т.п.
И я совершенно не рассматриваю её, как серверную ОС. Хотелось бы так: установил аналог XAMPP, только в разы быстрее, и работаешь. И тот же WP у тебя после установки отдаётся за 50 мс, а не за 400.
Про Линукс я всё понимаю. Крутой, все программисты его любят. А я не люблю. Сидел на нём. Больше не хочу.
Denwebart, всё дело в CMS и фреймворках - они очень тормозные, вот серьёзно. А насчёт того, почему летает под Linux... Ну, тут моих знаний не хватает, трудно сказать. Возможно, дело в более оптимизированной файловой системе, а вовсе не в веб-сервере. Уж сколько я читал жалобы людей про тормоза докера на Windows (при любых настройках, когда надо лопатить много мелких файлов)...
Denwebart: Тогда есть сервер легче ngnix, это lighttpd, его например яндекс в некоторых проектах использует, при это он легок настраивается. Сборку под венду можно тут взять lighttpd.dtech.hu
Denwebart, не могу согласиться, что в Windows плохо даже на HDD (сам работал). Ставил на Windows 7 SP1 Apache 2.4 и PHP (5.3, 5.6, 7.2, 7.4 и 8.0). Всё летает. Также работал с проектами на Symfony (2.x и 5.x). Да, пятёрка подтормаживает, по крайней мере на этапе создания кэша шаблонов в большом проекте, но в остальном - терпимо. Двойка - вообще летает.
Я не понимаю, что у вас тормозит - у вас или процессор ужасно медленный, или медленная оперативная память, или тяжеленные неоптимизированные CMS-ки. Сам PHP (как и Apache) не тормозит ни раз на винде.
Секрет есть) Скорее всего проблемы с производительностью есть в тех частях сайта где вы делаете SQL запросы.
Решение: поменяйте в конфиге подключения к бд
На счёт NGINX, да, его хвалят. На Habre есть много статей по производительности NGINX и Apache. Сам же пользуюсь Apache'м, т.к. он лёгок в установке и настройке.
На счёт производительности: Всё зависит от того, как оптимизированы ваши скрипты, sql-запросы.
В качестве WAMP использую Open Server (на локалке), а на виртуалке - LAMP (на Ubuntu).
Спасибо. Пробовал Open Server. Ставил на него MODX Revolution. Там после установки на фронте - ничего нет. То есть, белая страница. В веб-инспекторе firefox - 350 милисекунд. ЧТО??? На виртуалке (Ubuntu Server) - 75 милисекунд. Open Server был сразу же удалён. Или я что-то сделал не так? Установил и сразу работал. В инете много мануалов по его настройке. Комп, вроде мощный. Почему он у меня тогда так медленно работает? Тот же XAMPP работает быстрее Open Server.
Владислав Турчинский: ну вы попробуйте сами сравнить и увидите что нет оно не так
большинство бенчмарков видимо сравнивают сколько например оно памяти потребляет, что как бы мне все равно так как память это не скорость или например отдачу статики в которой вообще пхп не участвует.
Сижу на OpenServer на php 5.6. На OpenServer потому что Docker имеет проблему со скоростью в shared-папках, на линуксе (убунте) шрифты и интерфейс не то. А php 5.6 потому что проект так сейчас требует. И получается довольно медленно все. Примерно в 3-5 раза медленее чем в линуксе.
Что может помочь ускорить работу:
- если в проекте есть кэш, то включить, хотя бы частично;
- opcache наше все, обязательно;
- переход (в моем случае, например) на PHP 7 или 7.1;
- SSD (даст как в сумме все вышеперечисленное).
Apache менять на Ngnix не вижу вообще смысла. На сами запросы тратится меньше 1% по сравнению с работой PHP и MySQL.
Откройте5 диспетчер задач и посмотрите как у вас там что загружено
ПОставьте дебагер и посмотрите почему у вас долго выполняются пхп скрипты, оптимизируйте конфиг мускула, так как по дефолту там не включен например кеш.
ssd в первую очередь нужно ставить. это не из-за веб сервера тормоза, а из-за винчестера
второе если это сервер, то нужно серверную винду ставить, а не винду которая заточена под игры, документы
третье, проверить список запущенных задач, там может быть пачка процессов которые жрут и память, и проц
nginx на порядок лучше апача, он заточен под высокие нагрузки, а для разработок без разницы и пача и nginx одинаково
И еще opcache для php нужно настроить
Пробовал много чего: vagrant... Приходится использовать удалённое подключение.
Если не секрет, что там неудобного? То есть - удалённое подключение для чего? Оно ведь нужно разве что конфиги править, да демоны перезапускать. Но судя по тому что вы используете XAMPP и хотите всё из коробки, то вряд ли этим так уж часто занимаетесь. У меня вот Mac, я просто запускаю виртуалку вагрантом и обычно даже не логинюсь в неё, висит она в памяти и всё.
Был раньше на VMWare Player + Ubuntu Server 14. Сам всё разворачивалось. Отдаю должное, dev-окружение работало в разы живее опенсервера (пустой проект на Laravel 4 - 27 мс, против опенсерверовского - 120-150 мс).
Файлы проекта были на Ubuntu Server. Для PHPStorm пришлось настроить удалённое подключение, чтоб файлы на Ubuntu Server автоматом сохранялись. Были какие-то косяки.
Знаю что в vagrante как-то можно что-то примонтировать, чтоб папка Windows сразу синхронизировалась с виртуалкой.
Но из-за этого страдает, опять же, скорость работы dev-окружения.
Подскажите, пожалуйста, как правильно настроить на Windows? Есть ли супер понятная step by step настройка? Какое сейчас вообще dev-окружение является самым популярным в мире среди PHP-разработчиков?
Вот вам step-by-step. Под Виндой не проверял, но должно работать везде одинаково.
1. Поставить VirtualBox.
2. Поставить Vagrant.
3. Поставить любой готовый образ для Vagrant (я пользуюсь Scotchbox):
vagrant init scotch/box
vagrant up
Всё. Теперь у вас есть работающая виртуалка, доступная по адресу 192.168.33.10. На ней уже работает весь LAMP и куча всего, что может ещё понадобиться. Папка, из которой запускали vagrant up будет видна в виртуалке в /var/www/
Vagrant - обёртка для VirtualBox, про VMWare даже не знаю.
Но вообще - не всё ли равно? Там ведь с самим VirtualBox-ом дел не приходится иметь.
vagrant up
vagrant ssh
И вот вы внутри виртуалки. Делайте что хотите. Сам VirtualBox настраивать отдельно не надо.
Denwebart
Нет, они видно одновременно и там, и там. Просто поставьте, все вопросы отпадут. Там дел на 15 минут.
Дмитрий Кулик
Веб-студия, текучка небольших проектов. Легче виртуалку каждый раз поднимать, чем разбираться, что осталось от старого проекта и почему оно мешает новому.
Все помнят, что в Windows 10 Microsoft засунул Ubuntu Linux, и его можно установить штатными средствами прямо через панель управления?
Как поведут себя веб-приложения во встроенной в Windows убунте?
А разработку, наверное, можно продолжать в привычных и удобных IDE под Windows.