Tenebrius, прочитал информацию, у вас в вопросе добавился пункт "где-то лежат эти данные" - значит какое-то хранилище у вас всё равно должно быть. Неважно СУБД это или файл, принцип одинаковый - загружаем данные в память (hashMap), меняем содержимое (delete), обновляем данные в хранилище. В случае с промо-кодами - непонятно почему вам нужно именно key => value хранилище, массив кодов можно хранить в обычном стеке. Если планируется, что к нему может обратиться >1 клиента одновременно (в 1 секунду, например), то стек должен быть потокобезопасный и необходимо заранее продумать механизм блокировок.
Митя ТоДаСё, `composer-php7.2` - довольно странная команда, каким образом вы её выполняете и где? Что выводит в ответ?
Папка vk-php-sdk должна быть в vendor, но она должна сама там создаться (не руками), каким образом она появилась в корне - непонятно, можете удалять оттуда.
Александр, SFTP и FTP - разные протоколы, общего они имеют мало (кроме предназначения). Говоря про аутентификацию и безопасность - сам SFTP её не предусматривает, это задачи других протоколов. Поэтому SFTP реализуется как модуль от SSH, например, и чтобы не создавать пользователей в системе - нужно в сторону PAM-модулей смотреть.
__DIR__ не надо менять на public_html, оставьте прямо так - это константа PHP, которая означает текущую папку. error_reporting желательно включить, чтобы видеть описание ошибки, а не просто 500.
Алексей Николаев, это нормальная практика, но не всегда такое возможно (в сессию может падать локализация, например) - в таком случае есть вариант с хранением содержимого сессии прямо в cookies (в зашифрованном виде).
Большое спасибо, пойду причешу сеть в соответствии с п.1/п.2.
Вопрос по "убираете нафиг все наты" - правильно ли я понимаю, что NAT нужно убрать на роутере, т.е. сделать так, чтобы все клиенты были сразу доступны на VPN-сервере напрямую, без проброса dstnat? Если да - то для чего нужно оставлять на VPN-сервере nginx, который и так поднимется на клиенте?
У меня роутер в локалке висит на 169.254.1.1, DHCP раздает адреса в пределах 169.254.1.0/24.
IP forward включен и на VPN, и на роутере.
Про проводку интерфейсов - второе правило на микротике как раз проводит пакет из my-vpn во внутреннюю локалку (на 169.254.1.251), с этим проблем нет. Доступ к службе из внутренней локалки так же есть (169.254.1.251).
Возможно, проблема в том, что после рероута в локалку, роутер пытается отправить ответ через WAN, а не через VPN, и клиент ответа не дожидается, но как это поправить я не знаю.
function (a,b){return new e.fn.init(a,b,h)} — это jQuery — можешь ввести в консоль просто символ $
получаем ошибку: jQuery has no method 'cookie' — что еще раз говорит о том, что не загружен модуль jQuery.cookie. Именно поэтому и имеет смысл добавить его загрузку в head