LINUX.ORG.RU

PHP готовит экстренные обновления безопасности: потенциальная возможность удалённого выполнения кода на серверах

 , , ,


1

3

Команда PHP предупредила о выпуске двух критических исправлений безопасности. Администраторам рекомендуется заранее подготовить инфраструктуру к обновлению: опубликованные сведения об уязвимостях указывают на потенциальную возможность удалённого выполнения кода на серверах.

Две критические уязвимости

Разработчики PHP объявили о подготовке экстренных обновлений для двух уязвимостей — CVE-2026-109618 и CVE-2026-109619. Каждая из них получила оценку критичности 9,2 из 10 по CVSS v4.0.

Согласно официальному уведомлению, выпуск исправлений запланирован на 21 октября 2026 года, 14:00 UTC. Разработчики оставили за собой право опубликовать обновления раньше.

Технические подробности и перечень исправленных версий PHP должны быть опубликованы вместе с обновлениями.

Что известно о возможной атаке

Предупреждение появилось после утечки неподтверждённых сведений о предполагаемом эксплойте под названием PHP2Shell. В опубликованной видеодемонстрации, согласно сообщениям СМИ, инструмент позволял выполнять команды на веб-серверах, использующих PHP.

Среди упомянутых платформ: WordPress, MediaWiki, phpBB, Magento, Joomla, Laravel, Symfony, Drupal и WHMCS.

Компания watchTowr сообщила, что подтвердила существование обеих уязвимостей. По оценке исследователей, проблема может затрагивать версии PHP начиная с ветки PHP 5, выпущенной в 2004 году. Однако окончательный перечень уязвимых версий должен подтвердить официальный бюллетень разработчиков.

Если предположения об удалённом выполнении кода подтвердятся, злоумышленники потенциально смогут запускать собственные команды на уязвимых серверах. Последствия могут включать компрометацию веб-приложений, утечку данных и дальнейшее проникновение во внутреннюю инфраструктуру.

Массовые атаки могут начаться сразу после публикации исправлений

Исследователи компании Sansec предупреждают, что массовые попытки эксплуатации могут начаться уже через 15 минут после выхода обновлений. Это прогноз специалистов, а не подтверждение того, что массовые атаки уже происходят.

По одной из оценок, потенциально затронутыми могут оказаться около 1,3 млн подключённых к интернету узлов. Эта цифра также является предварительной оценкой, а не подтверждённым количеством уязвимых серверов.

Что рекомендуется сделать администраторам

  • Провести инвентаризацию. Определить все серверы с PHP, включая веб-сайты, CMS, интернет-магазины, API и внутренние приложения.
  • Назначить ответственных. Убедиться, что команда, отвечающая за PHP и веб-инфраструктуру, готова оперативно установить исправления.
  • Подготовить резервные копии. Сохранить файлы сайтов, конфигурации и базы данных, проверив возможность восстановления.
  • Запланировать окно обслуживания. Подготовить обновление PHP, проверку совместимости приложений и план отката на случай проблем.
  • Следить за официальными уведомлениями. Отслеживать сайт PHP.net и официальные бюллетени безопасности.

Если немедленно установить исправления невозможно, для критически важных публичных приложений стоит рассмотреть временное ограничение доступа из интернета до устранения уязвимостей.

Источники:

>>> Ars Technica: PHP maintainers tell web devs to prepare themselves for critical security patches

>>> Официальный сайт PHP

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от lonelywoolf

Да нет, похоже, это ты не очень умный. Покажи мне CRM, написанную на LUA. Или веб-фреймворк, написанный на Lua. Или если оно такое быстрое, почему не на нём написан тот же pytorch?

https://github.com/evandibona/dictionary-crm

https://luacrm.com/ru/

https://globalcio.ru/projects/54741/

Про обратную совместимость даже не смешно. С этого мы и начали, что тут аутсайдер как раз пхп.

LightDiver ★★★★★
()
Ответ на: комментарий от lonelywoolf

Внезапно да, питон иногда используется для встраиваемых систем. Но на порядок реже чем луа. Смотри четвертую цивилизацию, еву онлайн.

Пхп тут в принципе не сможет.

Но я про жит. Там возникает ряд проблем в том числе с экслойтами, с проблема античитов. Нельзя его туда. Скриптованному скриптованное.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Луа может все, что надо.

Баш тоже может всё, на нём можно даже си-компилятор сделать. Но это не значит, что «всё» надо на нём писать. У луа неудобный синтаксис, как впрочем и у питона.

firkax ★★★★★
()
Ответ на: комментарий от LightDiver

Первое. Это даже не CRM, это… Курам на смех. Плак-плак. Чтобы довести это до уровня надо потратить несколько десятков человеко-лет.

Второе… Нейрослоп на нейрослопе. https://luacrm.com/ru/help/troubleshooting - упс… LuaAI это за гранью. ДА и не нашёл я там ни стека технологий, ни нормальной справки, ни системных требований. От Lua там, похоже, только название и это скам какой-то. Должно быть стыдно.

Последнее - как раз то, для чего Lua и предназначен - местечковое решение некоторых проблем. Да, он там применён, но это не основной стек. Он там… Знаешь, он там применён потому, что кто-то его пропихнул. Реально про скорость за счет Lua - это тоже за гранью.

С этого мы и начали, что тут аутсайдер как раз пхп.

Это ты чего-то начал. А я тебя ткнул носом, что Lua тоже обратной совместимости не имеет. И плюсов по сравнению с тем же пхп для веба не имеет.

lonelywoolf
()
Ответ на: комментарий от firkax

Да, но баш неюзабельное говно из за синтаксиса и своих особенностей. На нем в приципе больно писать. Я хз как он стал популярным и почему. А луа универсален в написании. Баш в принципе сильно урезан и не может быть полноценным. Так что нет, на нем нельзя что угодно. На луа можно. Того же ООП в нем нету.

Я как раз о тебе думал. Какая то интерасная ситуация возникет. Тут минимум два лагеря: си и пхп против нормальных языков. Вы будто в осажденнм неизменном форте, вокруг которых жизнь, но вы считаете, что жизнь только у вас внутри.

Я вот понять не могу в чем же конкретно такая отличительная особенность этих языков. Вот ты можешь объективно сказать почему тебя так тянет к этим двум яыкам и почем неприязнь к остальным? Что именно тебе нравится в них и не нравится в остальных?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Пхп тут в принципе не сможет.

Ахахахаха. Сам придумал. Я про те встраиваемые системы где оперативной памяти что-то около 600 килобайт. ВОт это embedded. И питон там используется не тот, что ты обычно видел. Короче ты не в теме.

Там возникает ряд проблем в том числе с экслойтами

Бла бла бла. ну во-первых, ты опять начал путать области применения. Во-вторых, Jit не используется в embedded (обычно) ибо прожорлив до ресурсов. И Lua там рулит исключительно потому, что он мааааленький и нихрена не умеет. Ну как нихрена. Все он умеет, но не то, что нужно в других применениях. Это как RISC и CISC. Так вот Lua - RISC, а PHP или Python - CISC. И чтобы сделать некоторые банальные вещи на Lua - надо здорово подзадракониться, что делается в три строчки что на питоне, что на пыхе.

Хорош уже клоунаду разводить.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

И чтобы сделать некоторые банальные вещи на Lua - надо здорово подзадракониться, что делается в три строчки что на питоне, что на пыхе.

Чисто интереса ради - например что?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

На нем в приципе больно писать

Он же шелл, а не язык на самом-то деле. А ты попробуй lua в качестве шелла по пользуй, сравни, да.

. Так что нет, на нем нельзя что угодно

ути-пути. По приколу на нем написали полноценный веб-сервер. Вопрос желания и квалификации (и свободного времени, да).

си и пхп против нормальных языков.

Вот ты можешь объективно сказать почему тебя так тянет к этим двум яыкам и почем неприязнь к остальным?

Так это ты должен объяснять, почему ты ненавидишь всё кроме своего Lua. Я не говорю, что он говно, а вот ты в сторону питона и пхп несколько раз это слово использовал. Может, дело в тебе, таки?

lonelywoolf
()
Ответ на: комментарий от LightDiver

Чисто интереса ради - например что?

Я тебе предложил. Выдерни и пропарсь пару гигабайт строк из БД, построй мне красивые графики и сгенерь с ними хтмл. Напиши на Луа Rest API там. При этом ты можешь использовать только Lua и его расширения. Вперёд и с песней, ага.

lonelywoolf
()
Ответ на: комментарий от LightDiver

и почем неприязнь к остальным?

Свои фантазии сам объясняй. Нигде я про «неприязнь к остальным» не писал.

firkax ★★★★★
()
Ответ на: комментарий от lonelywoolf

Так это ты должен объяснять, почему ты ненавидишь всё кроме своего Lua.

А эта моя ненависть она в одной с нами комнате? Я пишу на си, го, питоне, расте, луа, js, котлин, баше, будь он неладен.

Но я не понимаю этого цепляния за два не самых лучших инструмента и отрицания всего остального.

LightDiver ★★★★★
()
Ответ на: комментарий от lonelywoolf

Ну как бы легко. https://github.com/lunarmodules/luasql

Есть и готовые решения, можно и свое сделать. Придется склеиваь разные инстументы, но можно.

А зачем только луа и расширения вообще? Что за тяга к максимализму? Можно сделать модули а раст, на си. С ним вообще все что угодно можно сделать. А вот что нельзя то?

LightDiver ★★★★★
()
Ответ на: комментарий от firkax

Это прослеживается в твоих комментариях за годы на этом ресурсе. Ненависть ко всему не сишному, не пхп. Тому же раст. Ко всему ИИному тоже. Я вот и пытаюсь понять в чем тут дело.

LightDiver ★★★★★
()
Ответ на: комментарий от firkax

Да ты понимаешь, это не только у тебя. Есть целый пласт таких же как ты с едиными реакциями. Это целое являение, основаннео на ограниченных инструментах и ненависти к остальнмы.

Мне интересны причины этого.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

А эта моя ненависть она в одной с нами комнате?

Ну только ты тут пока такимис ловами как «ненависть» и «говно» кидаешься.

Ну как бы легко. https://github.com/lunarmodules/luasql

Это кусок кода на Lua. При том не очень то и быстрый, да. И по сравнению даже с тем же пыховым oci8 работает медленнее. А ещё он не умеет в кучу функционала, который тебе при массовом производстве проектов понадобится. И это ТОЛЬКО выбрать данные из БД. На PHP на том же я этот же весь код уложу за счет расширений языка (читай уже написанных и скомпиленных либ) в один файл и на два порядка меньшее количество строк.

Если в Lua нужно что-то не поддерживаемое официально выгребать по всяким шитхабам для того, что есть из коробки от разрабов языка в других местах и ты считаешь, что луа там лучше… У меня для тебя плохие новости.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Это просто пример, нагугленный за секунду. Назови физические ограничения луа - что он не может. Я выше про баш назвал. Он, напрмер, не может ООП. Каких по твоему нет базовых и нструментов в луа?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Назови физические ограничения луа - что он не может.

Ты точно вменяемый? Даже CSS является тьюринг-полным языком, а значит, на CSS тоже можно написать ОС. Какие нахрен физические ограничения на тьюринг-полный язык по возможностям?

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Ну это ты же сказал, что на луа нельзя того, чего можно на пхп. Я вот могу сказать чего нельзя на пхп, что можно на луа - и выше описывал это. Как раз из за физических особеннотей пхп.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Ну это ты же сказал, что на луа нельзя того, чего можно на пхп

Я даже поиском по странице воспользовался. И слово «нельзя» я нигде не говорил. Таблетки забыл принять? Он неудобен для некоторых вещей. Точно так же, как PHP неудобен для других некоторых вещей. Ты же не будешь БелАЗ заводить ради того, чтобы мешок картошки с дачи домой привезти? Ну вот и PHP будет в нише Lua тем самым БелАЗом. Как и на жигулях 70 тонн угля перевезти… Ну можно. Но только полезность сего действия и затрачиваемое время - ну ты понял.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Хорошо, неудобен. Для чего и в чем? Я на нем пишу три года 24/7 и реализовал и базы данных и графику и анимации, наверное во всех сферах. В чем он неудобен? Почему?

Синтаксим вылизан посимвольно буквально и удобен. Возможности есть вообще любые. Размеры, потребления минималистичны. Что не так?

Я не пытаюсь проявлять агрессию и все такое. Мне просто любопытно что ты считаешь на нем неудобно делать? Конкретнее. Мне интересно с точки зрения практика.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Для чего и в чем?

Выше читаем. Он не развит. Он для другого предназначен. Напиши на нём аналог zammad, например. Или, прости господи, openproject. Ни тот, ни другой PHP не используют, это тебе для справки.

И вот тебе придётся реализовать столько всяких либ, что задача становится ну не на один год. При этом эта куча либ в других языках уже просто есть. Не надо изобретать велосипеды самому или тащить малопонятный код со всяких гитхабов. Оно уже базовая часть языка, понимаешь? И ящас не о расширениях, которые вычисляют число «пи» и всяких прочих лефтпадах, коих помойка. И после того, как это все будет реализовано - ты удивишься, когда оно будет работать медленнее тех же питонов и пхп и жрать больше памяти на каждый чих.

Размеры, потребления минималистичны. Что не так?

Пожалуй, только твоя вера в чудеса. Хотя я даже и не знаю. Верь дальше. Только веди себя по людски. Ты пришёл в тему про пхп и срешь тут, какое же пхп говно, притащил свой Луа, который слабо применим там, где используется PHP. И ноешь, ноешь, ноешь, что-то требуешь доказывать тебе. Ты меня утомил.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Он не развит.

Расшийруй в чем не развит.

Стоп. Я кажется понял. Ты про готовы модули, а не про сам язык? На нем нет модулей и поэому ты что то на нем не можешь?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

На нем нет модулей и поэому ты что то на нем не можешь?

Осспади. Ну вот напиши эти готовые модули. Подруби в стандартную поставку. У тебя интерпретатор Lua раздуется до таких же размеров и будет тем же PHP с другим синтаксисом. Ты это понять можешь, нет?

По поводу готовых модулей. В других языках это называется библиотеки, например. И вот реализация какой-нибудь mathplotlib требует огого каких усилий. Поэтому если тебе нужны ее возможности, то список языков, на которых ты будешь писать свою софтинку будет ограничен питоном и C/C++. Ну или дико может быть тем, что хорошо линкуется с сями. Потому, что сам ты эту либу будешь писать полжизни.

Так и с Lua. Обвесь его всей мишурой и он будет таким же жирным как и остальные. Оставь его там, где его применяют - там его место.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

А зачем его обвешивать? Ты сам сказал - это называтеся библиотеки и они подключаются сбоку. Когда мне в луа5.1 понадобился ютф, я написал работу с ютф, а не запихал это в сам луа. Понимаешь? Это никак не раздувает язык. И готовых либ для него не так мало, как кажется. Да и пишутся они не так долго, как тебе кажется.

Вообще все что угодно реализуется довольно шустро при желании. Просто у тебя этого желания нет. Ты привык брать готовое. Это тоже норма - самоограничения сознания.

И я не говорю, что брать готовое - плохо. Это удобно и нормально. Но когда берешь всегда готовое, написание своего кажется более сложным, чем есть на самом деле.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

я написал работу с ютф, а не запихал это в сам луа.

А в PHP написали библиотеку на C. И оно реализует гораздо больше того, что ты сам написал. И работает быстрее. И реализует гораздо больше чем то, что ты написал для себя.

Да и пишутся они не так долго, как тебе кажется.

Угу. Так легко и просто это только на словах. Напиши работу с DOM, XML, Curl. Работу с ODBC, работу с memcached, mail, bcmath, hash, sodium. Потом обнаружь, что они выполняются медленнее чем надо и перепиши их на C, добавь как либы непосредственно языка, а не отдельные функции. Потом накатай datetime, PDO полноценные. И вот у тебя уже в 500 килобайт интерпретатор языка не влезает.

Вообще все что угодно реализуется довольно шустро при желании

Шустро. Всё что угодно. Ты сам сказал всё что угодно. Сколько времени у тебя уйдет на реализацию mathplotlib? А на zlib, openssl? ImageMagick, XML? При том, что использоваться будет почти всё, что используется в возможностях PHP?

Но когда берешь всегда готовое, написание своего кажется более сложным, чем есть на самом деле.

Да дело не в сложности, а в затрачиваемом времени. И дело не в том, что оно даже его писать можно, дело в поддержке всего этого. Понимаешь, каждый новый проект будет требовать новых возможностей. Того, чего ты для себя ранее не делал. А уж написать полноценный парсер JSON уже не такая тривиальная задача, как тебе кажется. Это не «хренак хренак и в продакшн». А если тебе ещё нужно что-то вроде PHP-ZTS, то твой Lua становится чем-то весьма и весьма не удобным, ибо реализовывать становится просто неприлично много.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

А в PHP написали библиотеку на C.

Ну и в луа напишешь на си. Только жрать будет меньше в итоге, а работать быстрее. И ютф есть в более новых версиях луа, к слову. А там где оно встроено сейчас ты ни на чем не напишешь, кроме луа. Но делается это буквально в несколько строк. Я претензий не понимаю, тут пхп вообще не пример, а скорее антигерой.

Так легко и просто это только на словах.

Нет, не на словах. Я много чего реализовал уже вручную. В том числе форумы с нуля на луа с разметкой итд. У меня вообще ограниченная песочница, где нет твоих любимых готовых либ. Вообще. И если что то хочешь - пиши с нуля. Я и пишу. И форумы и хтмл, и базы данных, графику, анимации, системы сервер-клиент и клиент-сервер-сервер-клиент. Это не сложно, попробуй.

И да. Сжатие данных я тоже реализовывал - это пишется за дни минимально. Вручную. А сейчас с ИИшками небось и за часы можно.

Дело не во времени, не в желании, вообще ни в чем, кроме физической возможности и необходимости. Тебе надо и есть возможость ты берешь и делаешь. Все. Нет возможности - не делаешь. В луа возможность есть.

И да, у луа есть свои косяки, но это лишь мелкие недостатки, как работа с длиными строками, а не косяки архитектуры в целом, как у пхп, который просто тупо не может там, где может луа.

Понимаешь, луа чисто физически может там, где сейчас пхп. Но на это может потребоваться время и труд. А пхп не может там, где сейчас может луа. В этом и разница. И никакое время это не решит.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Ну и в луа напишешь на си. Только жрать будет меньше в итоге, а работать быстрее.

Ааааа. Ты вот щас серьезно? Как минимум, от того, что ты пишешь под Lua код сам по себе быстрее не становится.

И ютф есть в более новых версиях луа, к слову.

ну возьми мне строку utf8mb3 с general_ci и преобразуй её в utf8mb4, да ещё collation возьми uca1400_ai_ci. А таких вариантов мильен.

Я много чего реализовал уже вручную. В том числе форумы с нуля на луа с разметкой итд.

И хоть один по возможностям до уровня phpbb (хотя бы) дошёл?

И если что то хочешь - пиши с нуля. Я и пишу. И форумы и хтмл, и базы данных, графику, анимации, системы сервер-клиент и клиент-сервер-сервер-клиент. Это не сложно, попробуй.

Ну напиши мне что-то вроде openproject. Хотя бы. Или вышеприведённого zammad, раз ты все это прямо пишешь так по твоим словам получается очень быстро. Озолотишься, если оно будет работать хотя бы в 3 раза быстрее при тех же возможностях. А оно же на некоторых и на порядок быстрее получается. Выкинешь нахрен bitrix и BPM с рынка.

Сжатие данных я тоже реализовывал - это пишется за дни минимально. Вручную

А я пишу за минуты и больше об этом не думаю. Разницу чувствуешь?

Дело не во времени, не в желании, вообще ни в чем, кроме физической возможности и необходимости.

Дело во времени и стоимости. В том числе и владения продуктом. Сколько по времени ты на своём Lua будешь организовывать ЭТП площадку полноценную? Даже с командой в 10 человек? На PHP прототип делается месяц, а после учитывания всех требований заказчика MVP выкатили через три. Ты на Lua даже имея такую команду затратишь на порядок больше времени. И это без учета аналитики (аналитики проекта, а не того, что ты можешь подумать).

И да, у луа есть свои косяки, но это лишь мелкие недостатки, как работа с длиными строками, а не косяки архитектуры в целом, как у пхп, который просто тупо не может там, где может луа.

Ну ты же сейчас сам говоришь. Со строками твой lua вообще медленно работает, особенно при их конкатенации (сильная сторона PHP). А ещё твой Lua значительно медленнее, чем php. В разы, что бы ты там ни говорил. Сопоставимую с php-fpm скорость (мы же про современный PHP) показывает только LuaJIT. И так далее.

Ты просто пользуешься Lua, он тебе нравится, но не надо становиться его фанатиком.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Ааааа. Ты вот щас серьезно? Как минимум, от того, что ты пишешь под Lua код сам по себе быстрее не становится.

Да, абсолютно серьезно. Луа быстрее, чем пхп в любом виде в разы. От 3 до 10 раз. Ты напишешь модуль на си, но вокруг него будет луа или пхп. И все на си ты не напишешь. И затык будет в скриптовании.

А я пишу за минуты и больше об этом не думаю. Разницу чувствуешь?

Вижу конечно. Думать вообще больно. Только твои проблемы вылазят не через минуты и не через дни, а когда проект разрастается. Мои же проблемы - затраты в начале, но проект на порядки медленнее заходит в тупик.

ЭТП площадку полноценную

Ты про лор? Врядли команде 10 человек понадобится месяц. С учетом готового примера, конечно. Я очень мого фич позаимствовал отсюда, все это пилится не то что просто, а мгновенно. Это придумать изначально сложно, как сделать удобно, а реализовать готовую идею можно легко. Я реализовывал кучу идей отсюда и на node.js в своем войсе и на луа в песочнице (луа5.1). А я даже не программист замечу. Профессионалам тут сложностей нет.

Не обращай внимание на это, я хз, я не программист и не смогу оценить время. Я пилю свое буквально 24/7. Сутки, двое, пока сил не хватает даже на моргать иногда. Просыпаюсь и снова пилю. Иногда сутками забывая поесть. У меня сроки проектов совсем не такие, как у нормальных.

Со строками твой lua вообще медленно работает, особенно при их конкатенации (сильная сторона PHP).

Это не такая большая проблема, как те, что есть у пхп. Работать можно через таблицы, например - на порядок быстрее. А пхп туда, где работает луа, ты не запихаешь никак вообще.

Да, мне нравится луа. Но есть и причины. Это не фанатизм, а осознанное действие. Вот Фираксу нарвится си и пхп, но причин он назвать не может. Он просто фанатик. Он любит одно и ненавидит другое.

И мне нравится далеко не только луа. Я пользуюсь доступными инструментами там, где надо. Но луа действительно объективно прекрасен, как база. Просто сам по себе. По своим возможнстям, архитектуре, синтаксису. Это не просто инструмент, а вылизанный годами шедевр, заточенный под минимализм. На фоне монстров типа пхп, он очень достойно выглядит.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Луа быстрее, чем пхп в любом виде в разы. От 3 до 10 раз. Ты напишешь модуль на си, но вокруг него будет луа или пхп. И все на си ты не напишешь. И затык будет в скриптовании.

Ну я не хочу говорить, что ты врёшь, поэтому попрошу привести методику тестирования. Ситуация обратная, вот пруф с примерами кода. Там даже фреймворк написанный на php быстрее голого Lua: https://spinspire.com/articles/choosing-between-php-lua-go/ Кстати, сравни объемы написанного на PHP и на Lua. Ага ).

Только твои проблемы вылазят не через минуты и не через дни, а когда проект разрастается. Мои же проблемы - затраты в начале, но проект на порядки медленнее заходит в тупик.

Я опять не хочу говорить, что ты врёшь. Поэтому просто предположу, что ты действительно больших проектов на сотни тысяч строк кода и в глаза не видел. Ситуация то как раз ровно обратная.

Ты про лор? Врядли команде 10 человек понадобится месяц.

Я про Электронную Торговую Площадку. RPS около 10к, запрос должен быть обработан МАКСИМУМ за 0.1 секунды, т.к. аукционы там тоже проводятся. Товарных позиций около 40 тыс. штук. Ты ПОНЯТИЯ не имеешь, о чем говоришь. Даже ЛОР с нуля реализовать не так просто и быстро. Я не хочу говорить, что ты врешь, ты, скорее, не имеешь опыта нормального коммерческой разработки.

Это не такая большая проблема, как те, что есть у пхп.

Ну давай составим список проблем Lua и PHP. Начинай. Приведи список фатальных недостатков PHP по сравнению с Lua. И PHP в сферу Embedded не лезет ну вот вообще никак. Я просто опять не хочу говорить, что ты врёшь.

А пхп туда, где работает луа, ты не запихаешь никак вообще.

Он для этого и не предназначен. И да, не такой уж он и большой. Только назначение у него совсем не эмбеддед. Но опять не хочу доколупываться до формулировок, т.к. за исключением embedded где запустится Lua - там же запустится и PHP. А в Embedded PHP не лезет.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

оэтому просто предположу, что ты действительно больших проектов на сотни тысяч строк кода и в глаза не видел.

Я их написал. 140 тысяч строк уже проект. За 3,5 года.

Ну давай составим список проблем Lua и PHP. Начинай.

Начинаю. Пхп нельзя встроить в игру, как луа, как скриптовый язык. Не, физически можно, но так же можно и машину не в гараж ставить, а в квартире. Он жрет совсем не то, что луа. Мой проект на разной нагрузке может потреблять до пары сотен метров озу, при лимите в пару гигов, замечу на всю игру в целом. ПХП бы тут просто выжрал бы все и игра бы сдохла. Луа это конструктор, к которму можно добавить все. ПХП это монстр, которого урезать не так просто, как кажется.

Луа тут просто занимает более широкую нишу. Он может все то же, что и пхп, но еще и больше. Блин, в этом и дело, что пхп не предназначен для того, что может луа. А луа может все то, что может пхп.

Повторюсь, я НЕ программист. Я просто сел однажды и начал писать на луа. Потом поключились раст, го, питон и прочие. Просто потому что мне надо было. Возможно я чего то не понимаю, но это мой личный опыт.

И да, я пытался писать на пхп. Для моего опыта преимущество не нашел, нашел кучу несовместимых с разработкой косяков и выбрал другие инструменты. Не луа, замечу, но при желании можно было.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Я их написал. 140 тысяч строк уже проект. За 3,5 года.

Это… Короче, всё, хватит. 140 тысяч строк за 3 года это просто смешно. У нас шестимесячный проект больше весит ;)

ПХП бы тут просто выжрал бы все и игра бы сдохла.

Ложь. Просто ложь. Зависит от того, как код напишешь.

ПХП это монстр, которого урезать не так просто, как кажется.

Ну то есть у тебя кроме размера интерпретатора и аргументов то нет, получается.

Повторюсь, я НЕ программист

А нахрена вообще тогда начинаешь разговаривать о том, чего не понимаешь? Я вижу, что не программист. И вижу, что на спеца ты далеко не тянешь, т.к. за пределами своего узкого мирка ничего и не знаешь. И об этом тебе уже и так и сяк намекаю, но вот.

И да, я пытался писать на пхп. Для моего опыта преимущество не нашел, нашел кучу несовместимых с разработкой косяков и выбрал другие инструменты

Даааа…. ну не получилось у тебя использовать инструмент, возможно, гвозди микроскопом забивал. Взял другой. Но обсирать то зачем… )

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

У вас. Вы профессионалы и вас много, а я один и дохожу до всего на практике. Сам изобрел ООП, эндпоинты и многое друго до того, как узнал про готовое.

И уже четыре раза основной переписывал с нуля. Пока не нащупал нормальную архртектуру. Первая версия была 45 тысяч строк и пришла в тупик. Вторая 68 тысяч. Третья 90. И у меня далеко не один проект. Это один основной около 140 тысяч.

Ну то есть у тебя кроме размера интерпретатора и аргументов то нет, получается.

Это не про размеры интерпретатора. Это про потребление кода скриптами. Сделай тесты сам и сравни потребление на разных задачах. Разница до 90 раз в потреблении это действительно много. Но и в размере интерпретатора тоже, в принципе.

А почему другие инструменты у меня получилось? Может дело всетаки в инструментах?

Я просто описал свой опыт работы с языками.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 3)
Ответ на: комментарий от LightDiver

Сам изобрел ООП, эндпоинты и многое друго до того, как узнал про готовое.

Не красит такое высказывание. Это ты щас говоришь что вместо того, чтобы ознакомиться и взять правильное решение - сам изобрел велосипед. Хорошо, что с колеса не начал.

Сделай тесты сам и сравни потребление на разных задачах. Разница до 90 раз в потреблении это действительно много.

Да. И не в пользу Lua.

А почему другие инструменты у меня получилось? Может дело всетаки в инструментах?

Наверное потому, что у тебя не получилось, а у сотен тысяч других получилось. Может дело все же не в инструментах? Ну не дан тебе PHP. Не будешь ты на нем писать, ну и ок. Не твой инструмент.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Не красит такое высказывание. Это ты щас говоришь что вместо того, чтобы ознакомиться и взять правильное решение - сам изобрел велосипед. Хорошо, что с колеса не начал.

Изучать можно всю жизнь и всего не изучишь. А мне надо было работать и я работал, как мог.

Да. И не в пользу Lua.

Скинь тест.

Наверное потому, что у тебя не получилось, а у сотен тысяч других получилось.

Миллионы мух ошибаться не могут? Зачем тогда сделали интерсно другие языки? Есть же сишка, есть пхп. Чего тебе еще надо, да?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Скинь тест.

Выше скидывал линк. Ну.

Чего тебе еще надо, да?

Мне надо много чего. Например, плюсы мне надо. А ещё Питон оказывается иногда вполне себе не плох, на нем, кстати, Openstack написали. Но питон и пхп как-то попсово, в свое время вот взлетал Ruby. Вон мне браузерный скриптовый язычок надо. А то на пхп все реализовывать не особо. Ассемблер мне надо для некоторых вещей. А вот товарищу надо котлин - он что-то там под мобилки пишет. И ещё что-то, Dart вроде.

У каждой вещи есть свое применение. И если ты считаешь, что Lua во всем лучше чем PHP, а тебе вдруг аргументированно начинают возражать - ну… Возможно, ты не прав.

Миллионы мух ошибаться не могут?

А миллионы мух никода и не ошибаются. Потому, что для мухи говно - не то же самое, что для тебя - ей говно наоборот и еда и тепло. Этот прием используется в случае, когда собеседник не понимает предмета спора, потому что многие теряются и возразить ничего не могут, а так ты не более, чем обозвал всех разработчиков PHP мухами.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Lua во всем лучше чем PHP

Луа лучше, чем пхп в базе. В архитектуре. Но не в готовых модулях. Ты видишь разницу? Первое критично, второе - наживное.

Но если брать по готовым модулям, то js обходит вообще всех настолько, что пхп даже рядом не валялся. У меня как раз был выбор пхп и ли js взять для проекта и я его весь (включая серверную часть) написал на js. Ну точнее на ts, но это не принципиально.

https://spinspire.com/articles/choosing-between-php-lua-go/

Если ты про эту ссылку, она нерабочая. Можешь скинуть тест?

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver
<?php

header('Content-Type: application/json');

$db = new PDO('mysql:host=localhost;dbname=db;charset=utf8', 'user', 'pass');
$stmt = $db->query("SELECT * FROM node");
$result = array();
$result['list'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);

0.519 ms

json = require "cjson"

function json_result(key, data)
  local result = {}
  result[key] = data
  ngx.say(json.encode(result))
end

function json_error(...)
  local result = {}
  result["message"] = string.format(...)
  ngx.status = ngx.HTTP_INTERNAL_SERVER_ERROR
  ngx.say(json.encode(result))
end

mysql = require "resty.mysql"

local db, err = mysql:new()
if not db then
  json_error("failed to instantiate mysql: %s", err)
  return
end

db:set_timeout(1000) -- 1 sec

local ok, err, errno, sqlstate = db:connect{
  host = "127.0.0.1",
  port = 3306,
  database = "db",
  user = "user",
  password = "pass",
  max_packet_size = 1024 * 1024
}

if not ok then
    json_error("failed to connect: %s: %d %d", err, errno, sqlstate)
    return
end

result, err, errno, sqlstate = db:query("SELECT * FROM node")

if not result then
  json_error("failed to query: %s: %d %d", err, errno, sqlstate)
end

json_result("list", result)

0.877 ms LuaJIT Openresty. А если запустить с code cache OFF то 2.191 ms

Как видишь, не всё так однозначно. А так же может здорово зависеть от железа, настройки и всяких крутилок. И это LuaJIT который быстрее голого Lua. И объем кода. На PHP и на Lua. Он.. Разный.

Поэтому я и считаю Lua хорошим там, где PHP или Python ну просто не имеет смысла засовывать - например, в играх, где-нибудь в логике веб-сервера (вот если бы в Nginx не Lua а PHP или Python прикрутили - был бы номер, да), в embedded где не много памяти и нужно что-то компактное (в тех же Python и PHP возможности часто для Embedded избыточны. особенно в PHP). И т.д. и т.п. Я помню времена, когда 64M оперативки на сервере было вполне себе не слабым объемом (и это не времена дешёвых ВПС, это времена аппаратных конфигураций с такими объемами). И помню, когда PHP со всеми своими либами и веб-сервером влезал в несколько мегабайт. Он тоже был маленьким.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Это что за ересь? Ты этот код сам читал? Сравниваются апельсины с яблоками. Причем специально написано так, чтобы луа показал себя плохо. Так не пишут на луа. Я гонял тесты без сторонних инструментов чисто язык против языка. Попробуй сам.

Так что нет, не вижу. Тут нет сравнания языков, есть весьма кривое (возможно намеренно) сравнение инструментов.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Сравниваются апельсины с яблоками.

Тогда напиши код, который должен быть написан Lua. Вместе потестируем. А пока вижу только истерику. Ты же не балабол? Я тебя просил привести методику тестирования. Дважды. И хоть какой код привёл, оть какую методику тестирования. Покажи как надо.

lonelywoolf
()
Последнее исправление: lonelywoolf (всего исправлений: 1)
Ответ на: комментарий от lonelywoolf

А смысл? Упустим, что код луа некорректен. Пхп оценить не могу. Что с чем ты сравниваешь? Ты выдал мусорный код с одним запросом, где основное время работы - самой базы данных и общения между интерфейсами. Тут нет работы языков.

Более того, запусти этот тест не на одном запросе а на 1000 - блокирующие вызовы пхп заткнутся, упрутся в архитектуру. На одном время одинакоео - от языка зависит в меньшей мере. Луа же обработает тысячу и не поморшится.

Дай мне нормальный тест, который я у себе запущу. Мне самому интересно увидеть такой, чтобы пхп победил луа. Дай мне скрипт, который выведет результат. Где работа языка против языка.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

А смысл?

А смысл как раз таки в том, чтобы доказать свою точку зрения, а не шланговать. Напиши на Lua правильный код. А я это забенчу. А потом пойду к автору того бенча и поясню, в чем он не прав. Приведи мне методику тестирования.

Пхп оценить не могу.

Э нет. Стой, дружочек. Ты там кричал, что он в 90 раз медленнее чем Lua. А теперь вдруг правильность кода на нём оценить не можешь. Это как вдруг так такие перемены?

ы выдал мусорный код с одним запросом, где основное время работы - самой базы данных и общения между интерфейсами.

И таки на простейшем общении между интерфейсами твой Lua слил 50% в случае с LuaJit, а если мы без Jit это запустим, оно сольет в 4-5 раз? ))).

Тут нет работы языков.

А-та-та. А я думал, что любой код на языке, выполняющий нужную задачу - его работа. А нет, оказывается, бывает код, который задачу выполняет, написан на языке а к нему никакого отношения не имеет.

мусорный код

Но-но-но. Синтетический бенчмарк. Ты даже такое не сможешь.

Дай мне нормальный тест

Который ты дальше обосрешь. Потому, что и на Lua ты писать не умеешь и проекта то у тебя нет. Так, три строки написал. Ты только шланговать можешь и изворачиваться как уж на сковородке.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf
#!/usr/bin/env lua

local N = 100000

local function sh(cmd)
  local f = io.popen(cmd .. " 2>&1")
  local out = f:read("*a")
  f:close()
  return out
end

local function run(lang, script, label)
  local cmd = string.format("/usr/bin/time -v %s %s", lang, script)
  local out = sh(cmd)

  local rss = out:match("Maximum resident set size %(kbytes%):%s*(%d+)")
  local elapsed = out:match("Elapsed %(wall clock%).-%):%s*([%d:%.]+)")

  rss = rss and math.floor(tonumber(rss) / 1024) or 0

  print(string.format(
    "%-22s Память: %4d МБ   Время: %s",
    label, rss, elapsed or "?"
  ))
end

local tmp = os.tmpname()
local dir = tmp:match("(.*/)") or "./"

local empty_php = dir .. "empty.php"
local empty_lua = dir .. "empty.lua"
local load_php  = dir .. "load.php"
local load_lua  = dir .. "load.lua"

local function write(path, content)
  local f = assert(io.open(path, "w"))
  f:write(content)
  f:close()
end

write(empty_php, "<?php ?>")
write(empty_lua, "")

write(load_php, string.format([[<?php
$t = [];
for ($i = 0; $i < %d; $i++) {
    $t[] = "x";
}
$s = implode("", $t);
]], N))

write(load_lua, string.format([[local t = {}
local concat = table.concat
for i = 1, %d do
    t[i] = "x"
end
local s = concat(t)
]], N))

print("=== Пустой запуск ===")
run("php", empty_php, "PHP пустой")
run("lua", empty_lua, "Lua пустой")

print("")
print(string.format("=== Нагрузка: %d строк, сборка через concat/implode ===", N))
run("php", load_php, "PHP implode")
run("lua", load_lua, "Lua table.concat")

os.remove(empty_php)
os.remove(empty_lua)
os.remove(load_php)
os.remove(load_lua)

Запуси, посмотри, подставь свои данные. Я там сделал переменную в начале. Дай мне такой же свой тест.

Э нет. Стой, дружочек. Ты там кричал, что он в 90 раз медленнее чем Lua. А теперь вдруг правильность кода на нём оценить не можешь. Это как вдруг так такие перемены?

Я не писал много на пхп и не могу оценить качество кода. Могу оценить качество луа кода.

Который ты дальше обосрешь.

Обязательно обосру, если качество будет как выше. В этом и смысл.

Но-но-но. Синтетический бенчмарк.

Ты тогда своему синтетическому бенчмарку в конце напиши: «Только пиши луа код не как курица лапой, а по правилам».

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 3)
Ответ на: комментарий от LightDiver

Запуси, посмотри, подставь свои данные. Я там сделал переменную в начале. Дай мне такой же свой тест.

Тебе прекрасный тест дали - выборка из БД и складывание результата в JSON. С кодом. Перепиши этот «мусорный» код так, как он должен быть.

Твой же «код» в который ты просишь подставить тестовые данные это что? По одному циклу, где у тебя все зависит от того, что ляжет в кэш и объема данных, да? Офигеть тест. Охренеть мы проверили математику, ветвления, качество реализации функций в языке и т.п. Здесь заведомо обгадится тот, который больше весит и больше оптимизаций на код после запуска применяет.

https://github.com/EntityFX/EntityFX-Bench

Вот короче. Бери одинаковые процы, сравнивай результаты. 8.0-rc3 уже сопоставим с Lua 5.1 Там поищи можешь сам потестить даже. 5.6 - здорово отстает. А если на 8.4 это всё перенести - Lua по скорости проиграет.

lonelywoolf
()
Ответ на: комментарий от LightDiver

Я не писал много на пхп и не могу оценить качество кода.

Зато мнение имеешь.

Обязательно обосру, если качество будет как выше. В этом и смысл.

Так поправь качество. Покажи, как надо писать. Ну или объясни, что там не так кроме «так никто на Lua не пишет» ))).

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Зато мнение имеешь.

А схреналибы мне не иметь мнение? Мне своим глазам врить или тому как ты напел?

Тот тест я исправлять не буду. Потому что не буду ставить сейчас базу данных стороннюю. Мне, честно говоря, скорость работы чужих баз данных и не шибко интересна - у меня свои есть. Мы не это обсуждали.

Если ты не можешь дать тест без баз данных, ок - вот и пообщались.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

забивающих в той или иной степни на совместимость

Только почему-то именно питоноподелки распространяют как докер-образы и придумывают всякие venv/pyenv и т.п. извращения. А в пыхе всё просто ставится из composer и работает.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

А кто же спорит? Питон и раст тут первые в этом наравне с пхп. Тем и хорош луа - стабильностью популярных релизов. Как я выше писал - 5.1 20+ лет живее всех живых. На нем до сих пор отдельные игры пишут и встраивают его.

У меня тут сервер года 2009-10 есть. Поставь мне туда бота для телеги, а? Я вот на пхп сначала пыталс древнем - не смог. Потом туда же питон второй пошел. Раст там в принципе не запустится. Хрен там - сервер мертв. Он может на себе держать этот сраный друпал на пхп и все.

Его даже обновлять теперь нельзя. Потому что новые версии пхп и все - сайт рухнет.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от bbc69

Луа, к слову, тоже великолепен. Ты сравни с си-подобными языками, где тебе на каждую лядскую структуру нужно тянуться до {. Включая пхп. Да это же кошмар. И это еще не самое неудобное в них.

LightDiver ★★★★★
()
Ответ на: комментарий от no-such-file

Я давненько пыху не щупал. Раньше она без апача не работала. Сейчас что-то поменялось?

bbc69
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.