Eve онлайн добив на газ (ниска сек)

Управлявам уебсайта на малката компания, в която работя, но не съм опитен администратор на сървъра - просто поемам ролята на ИТ по подразбиране, защото знаех повече от останалите. Най-общо казано, Не познавам много добре пътя си към Windows сървър.

Сайтът се хоства (извън сайта) на VPS Windows Server 2012 R2 чрез Plesk. По-голямата част от сайта е изграден в древен ASP / VBScript, свързващ се с база данни на SQL Server. Най-новите неща, които съм добавил / променил / оправил сам, са PHP. Версията на PHP е 7.2.19, изпълнява се като FastCGI.

Вчера сайтът беше в перфектно работно състояние, доколкото разбрах. По-рано днес отидох да проверя нещо на уебсайта и забелязах, че повечето изображения, заредени чрез асинхронни обаждания към PHP скрипт, са изчезнали, въпреки че нищо не се е променило на сървъра от вчера.1 Пуснах PHP скрипта за извличане на изображения самостоятелно и се оказа, че хвърля фатална грешка: класът на базата данни в моето пространство от имена изведнъж не можа да бъде намерен. Оказва се, че това е вярно за всеки един от моите класове в всеки PHP страница: изобщо не може да се намери нищо.

Всички класове са заредени с автоматично зареждане на Composer (с блок PSR-4, дефиниращ откъде да изтегля класове от собственото ми пространство от имена). Автозаредителят е require_onceБях правилно. Актуализирах проекта Composer и autoloader само в случай, че самият autoloader някак се беше повредил, но това нямаше ефект.

Това, което наистина ме озадачава, е, че не е последователно. Ако презареждам една и съща страница на различни интервали, изглежда доста случайно получавам един от трите различни резултата:

  • Страницата се зарежда успешно без проблеми (най-рядко, само може би едно на всеки десет презареждания)
  • Fatal error:Uncaught Error: Class 'MyNamespace\MyClass' not found in C:\...\File.php (последвано от проследяване на стека само с # 0, наречен файл)
  • HTTP Error 500.0: C:\...\php-cgi.exe - The FastCGI process exited unexpectedly (Код на грешка: 0x000000ff)

Така че понякога работи, понякога изпълнява файла, но (поради причини, които все още не мога да разбера) не може да намери класовете, а понякога просто срива PHP процеса напълно. Това важи за всякакви PHP файл, който се опитва да зареди класове.Ако направя прост тестов файл, който не разчита само на себе си и основните функции / класове, той постоянно се зарежда добре; но щом се опитам да създам екземпляр на някакви не-основни класове, отново се връща към заровете, за да се види дали ще получа грешка, срив или страница.

Това е достатъчно странно, че нямам идея къде дори да търся възможна причина и как да я поправя. Очевидно е също така, че не може да се използва от Google (или може би съм достатъчно зле в Google), че не мога да намеря нещо подобно никъде в интернет.

Каква може да е причината за това странно поведение и по-важното - какво мога да направя, за да се отърва от него?

(Както споменах, аз не съм опитен администратор на сървъра. Ако съм пропуснал важна информация, моля да ме уведомите как / къде мога да я намеря и с удоволствие ще я добавя.)


1 Очевидно има актуализация на Plesk от по-рано днес (Актуализация # 56), но панелът Plesk показва, че сме на актуализация # 55, така че изглежда все още не е приложена. Предишната актуализация беше преди седмица и сайтът определено работи добре след това.

  • Ако гласоподавателят би искал да обясни отрицателния вот, ще се радвам да подобря въпроса по какъвто и да е начин.

Изглежда, че съм разбрал погрешно как работи цикълът на актуализиране на Plesk.

Актуализация № 55, спомената в бележката под линия във въпроса, беше пусната на 3 юни, но беше инсталирана на нашия сървър до 10 юни (за разлика от актуализация № 56, която беше пусната на 10 юни, но все още не е инсталирана). Част от актуализация # 55 е, че PHP 7.2 се актуализира до версия 7.2.19.

Току-що промених версията на PHP от 7.2.19 на 7.1.30 в Plesk, което веднага отстрани проблема, така че очевидно нещо не е наред с версията 7.2.19, инсталирана като част от актуализацията на Plesk.

От различни онлайн източници изглежда - макар и не толкова, колкото очаквах - че това е общ проблем, не само ограничен до нашия сървър (напр. Този отговор на форума на WordPress и края на този въпрос за Plesk Talk). Това е грешка на Plesk.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?