azovl: Могу рассказать только моё понимание из опыта.
Внутренняя функция видит область видимости внешней. А во внешней на этот момент нет ссылки на abc
вы можете в file_get_contents передавать контекст сокета с конкретным настроенным IP
конечно, это тернистая дорога, потому что привязывать к конкретному IP внутри скрипта вкорне неверно (в 99.99% случаев).
И nginx вам не в помощь, потому что все соединения создаваемые file_get_contents из скрипта никаким боком не имеют отношения к nginx и он про них знать не знает. В данном случае nginx выступает только как обложка для соединение К вашему скрипту. только при соединении к скрипту вы настраиваете, какой IP видит пользователь.
Можно попробовать настроить ход конём в виде соединений типа yoursite.com/proxy/othersite.org/path/to/page.html которые будут проходить через nginx как через прокси, который уже будет висеть на определённом IP. Это более гибко и правильно, но потребует изменения всех ваших урлов внутри file_get_contents() с "othersite.org/path/to/page.html" на "yoursite.com/proxy/othersite.org/path/to/page.html"
Ingernirated: да. уже ответили выше
а root в сексии server{ } нжинкса укажите какую-нибудь домашнюю папку C:\Users\username\webproject\html или что-то в этом духе
На сколько тут видно, база не падает. Её что-то останавливает. При чём корректно. Время между запуском и остановом варьируется, поэтому тем более не похоже на ошибку.
Внутренняя функция видит область видимости внешней. А во внешней на этот момент нет ссылки на abc