• Почему nginx все время возвращает 404?

    @spotifi
    Ответ написан
    Комментировать
  • Программа или сайт для построения электросхем?

    Proteus, Electronic Workbench (Multisim сейчас) и другие программы для моделирования схем.
    В протеусе, вроде, можно и МК моделировать.

    И да, зачем паять, когда можно взять беспаечную макетку и рассыпуху и на них тестировать?
    Ответ написан
    4 комментария
  • Загрузка файлов в Symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Документация по этому поводу оставляет желать лучшего


    А что вы хотите от документации? В самом примитивном варианте вам уже сказали:

    public function uploadFile(File $file) {
         $file->move($this->uploadDir, $this->generateUniqName($file));
    }


    Не нравится хардкодит пут к файлу, хочу автоматизировать


    Путь иньектится из контейера в виде параметра.

    services:
    
        file_uploader:
            class: FileUploader
            arguments: ['%kernel.root_dir%/../web/uploads']


    а еще вместо этого можно заюзать FlySystem тот же как абстракцию над файловой системой. Тогда вообще все удобненько.

    мне также не нравится vich uploader bundle потому я юзаю свое решение. На днях же в симфони gitter-е выкладывали относительно приличный бандл для аплоада: https://github.com/atom-azimov/uploader-bundle но в бою я его не проверял, хотя идеологически он вроде бы правильный.
    Ответ написан
  • Как настроить HTTPS и HTTP/2 в Nginx?

    @MelVad Автор вопроса
    Нашел ответ на вопрос сам.
    Для работы http2 nginx требует OpenSSl версии 1.0.2 и более поздние.
    У меня Ubuntu 1404 последняя версия у них сейчас стоит 1.0.1f-1ubuntu2.
    На сайте OpenSLL последняя стабильная версия на сегодняшний день 1.0.2 вышла 3 марта.
    Всем спасибо за помощь вопрос закрыт.
    Ответ написан
    1 комментарий
  • Что за магия в symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Что-то как-то теряется смысл контроллера, как посредника между моделью и видом.


    1) Symfony - не MVC фреймворк, это request/response фреймворк. Более правильная терминология для HTTP фреймворка.

    2) Контроллеры - это не один класс, это в данном случае весь слой от точки входа, фронт контроллера, до непосредственно экшена контроллера. View в этом случае - это HTTP, пассивная вьюшка и только. Сама по себе она ничего не умеет, это тупо представление данных собранное контроллером.

    У этого подхода есть название - Model-View-Adapter или Mediating-controller MVC, но все это лишь бесполезные детали.

    3) ParamConverter-ы здорово уменьшают дублирование кода в контроллерах, однако работа с сущностями в контроллерах дело довольно опасное. Это своего рода компромис между "правильной архитектурой" и "стоимостью разработки.
    Ответ написан
    Комментировать
  • Разделение внутри бандла?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    когда бандл большой но не на столько чтоб делать 2 бандла


    Читаем symfony best practice - у вас должен быть всегда только один бандл. AppBundle. Все остальные варианты бандлов - только для самодостаточных вещей, которые вы хотите реюзать между проектами. Причем как правило "в бандл" заранее не стоит это заварачивать а уже когда будет видно что получилось что-то реюзабельное.

    Далее, разделение по функциональности - дело хорошее. Вот только не стоит забывать, что контроллеры к приложению имеют весьма посредственное отношение, это просто UI. Имеет смысл разделять по слоям/зонам ответственности + по функционалу. так у нас может быть такая структура:

    Controller
        User
           UserController
    Entity
       - User
           - UserProfile
           - UserCredentials
           - User
           - UserRepository (только интерфейс)
       - Downloads
           - какие-то сущности


    Словом, делайте так, как вам удобно. Но лучше пусть в одной директории будет 10 файлов, чем если бы у нас было 5 директорий и по 1-2 файла в каждом.
    Ответ написан
    Комментировать
  • Как заставить nginx выдавать не ответ php-fpm, а стандартную страницу 404, если php-fpm возвращает 404?

    neatsoft
    @neatsoft
    Life is too short for bad software
    В конфиг nginx нужно добавить:
    fastcgi_intercept_errors on;
    nginx.org/en/docs/http/ngx_http_fastcgi_module.htm...
    Ответ написан
    Комментировать
  • Изменил корневую директорию в nginx. Почему не получается зайти на сайт?

    Frankenstine
    @Frankenstine
    Сисадмин
    Вы что-то напортили в конфиге, и nginx просто не стартует. В логах указана ошибка.
    Ответ написан
    1 комментарий
  • Как через Nginx скрыть реальный путь к файлу?

    bigton
    @bigton
    Web-программист
    Ответ написан
    Комментировать
  • Что происходит при запросе к веб-серверу?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    итак, поскольку у нас слишком много вариантов "как оно может быть", мы должны разбить все на следующие вопросы:

    1) как запрос идет от браузера к http серверу. В этом плане мы будем рассматривать apache как черный ящик. В этом плане разницы между apache, nginx, lighttpd и т.д. мы не увидим.

    тут можно либо погуглить в общем, либо и этот впрос разбить на: почитать про DNS, прочитать про HTTP (это вообще разные вещи). Паралельно было бы неплохо почитать про стэк TCP/IP в общем, и разобраться что такое TCP и что такое UDP.

    2) Далее, в случае с PHP, мы должны почитать про PHP SAPI. То есть в случае с apache у нас SAPI предоставляется модулем apache2-mod-php и тд. а php-fpm уже самодостаточный сервер и менеджер php процессов, который так же предоставляет свое SAPI. По сути это та штука, которая "разбирает" и готовит запрос для php. Ну и да, стоит сказать что уже есть HTTP сервера на PHP (как альтернатива php-fpm), это и ayres и php-pm и reactphp... и судя по динамиче это будет все больше развиваться.

    3) как -только мы разобрались как работает браузер с web-сервером, и как php обрабатывает http, мы должны уже исходить из конкретной связки что бы понять как web-сервер работает с php. Предыдущий пункт с большего это покрывает, особенно в случае с apache. Но вот php-fpm самодостаточная штука, и ей ничего не нужно. А стало быть nginx просто будет проксировать запросы на php-fpm.
    Ответ написан
    Комментировать
  • Ошибка при конфигурации nginx?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    Ошибка в /etc/nginx/sites-enabled/cinema.save , надо его смотреть
    Ответ написан
    Комментировать
  • Для чего inversedBy и mappedBy в Doctrine и в чём разница?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для объявления двусторонних связей между сущностями. Справедливости ради - в 99% случаев двусторонние связи не нужны и их лучше по возможности избегать. Как минимум потому что они не нужны и позволяют делать страшные вещи, ну и на производительность сказывается это пагубно.
    Ответ написан
    Комментировать
  • Как бы вы сделали подсветку сортировочных коробок на складе?

    0neS
    @0neS
    Вы написали вполне простой и рабочий вариант. Подойдет любая ардуинка + wifi-shield к ней. Светодиоды подключать через сдвиговый регистр. Веб-сервер поднимать, например, так.
    Ответ написан
    2 комментария
  • Так что же выбрать для REST API -> ORACLE, (NODE vs PHP)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    вам дела делать или играться? Если играться - попишите на ноде, заодно и опыта наберетесь. А если дела делать - php, раз опыт есть.

    Под вашу задачу что угодно сойдет, а ангуляру плевать на чем реализована серверная часть, лишь бы вы правильно апишку сделали.
    Ответ написан
    9 комментариев
  • Как аннотациями проверить является ли пользователь владельцем при переходе на editAction?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    @Security
    /**
     * @Security("is_granted('OFFER_OWNER', offer) and has_role('ROLE_USER')"")
     */
    public function editAction(Request $request, Offer $offer)
    {
    }
    Ответ написан
    3 комментария
  • Как отдебажить nginx?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    Чтобы писалась отладочная информация, надо указать
    error_log /var/www/cs.your-goal.ru.err debug;
    и nginx должен быть собран с опцией --with-debug.
    Ещё можно использовать rewrite_log on; тогда в error_log будут записаны результаты работы rewrite.
    Ответ написан
    1 комментарий
  • Правильно ли я понял философию Docker?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Контейнеры данных


    Они не нужны, используйте named volumes вместо этого (с версии 1.9 докера).

    Исходный код и локальные npm-модули (или лучше это в предыдущий контейнер, и при старте выполнять


    Нет, npm install надо выполнять ДО сборки образа. Когда контейнер стартует - внутри у него уже все должно быть. Опять же я лично против того, что бы выносить исходники проекта в отдельный контейнер-пустышку. У вас есть контейнер с нодой - исходники для ноды должны быть там. Есть некоторые нюансы связанные со сборкой контейнера но это так.

    На файловой системе хоста


    Ничего.

    Логи прокидываются в stdout/stderr контейнера и собираются на хосте через докер любым подходящим драйвером (читаем документацию).

    Конфигурация - все что в конфигах от окружения к окружению меняется - в ENV переменные. Все остальное - не меняется и потому просто вшито внутрь контейнера.
    Ответ написан
    21 комментарий
  • Простейший решардинг для PostgreSQL?

    voidnugget
    @voidnugget
    Программист-прагматик
    Зависит от конкретной версии PostgreSQL'я.
    Если самый простейший - можно с коробки в 9.5 через postgres_fdw вот так . В <9.5 нельзя так как там внешние таблички (foreign tables) не могут наследоваться. Cам fdw afaik однопоточный по историческим причинам, по этому имеет смысл хранить сразу несколько шардов в пределе одного сервера.

    Если нужна поддержка, и что-то попроще чем ванильный SQL, то лучше взять какое-то готовое расширение (extension) типа pg_shard, и потом докупить у них же их плюшки к PostgreSQL'ю по потребности. pg_shard умеет только операции равности (equality) хешей столбцов у шардов, эт значит что если выползти за границы таблички любым range query - оно начнёт бороздить все шарды, что порядком надоедает. Реализацию операций сравнения (больше/меньше) хешей пока не замечал, хотя давно его не ковырял. Т.е. хоть это и довольно таки простое решение, без понимания его ограничений чуть более чем наверняка можно напороться на квазилион граблей. Иногда складывается впечатление что разработчики специально затягивают feature list для того что бы клиенты переходили на их платный CitusDB.

    Уууу.... CitusDB сегодня заопенсорсили.

    PostgreSQL-XC нынче чуток морально устарел, и на его основе был разработан PostgreSQL-XL, про который уже упоминалось на хабре. Поддержки как таковой у него нет, но есть пару российских вендоров которые в нём перманентно ковыряются, так как это сугубо опенсорсятинка. Имхо, по функционалу оно на много превосходит pg_shard, и с ним нет таких дурацких проблем, хоть и разворачивается в разы сложнее, не без полуночного красноглазия.
    Ответ написан
    2 комментария
  • Как настроить доступ по ip в nginx?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    # Возможные контексты: http, server
    server {
        ...
        # Запретить доступ всем кроме разрешенных IP
        allow 192.168.1.0/24;
        deny all;
        ...
    }
    Ответ написан
    2 комментария