Юра
А
Юра
У тебя же рут идет от паблика
Юра
А не от корня проекта
Юра
root /var/www/link-shortener/public;
Юра
в итоге он ищет в root /var/www/link-shortener/public/public/...
Viktor
так это же стандартный симфони нгинкс конфиг, разве нет?
Viktor
Юра
асеты лежат в {project_root}/public
Юра
по какому урлу у тебя 404?
Viktor
асеты лежат в {project_root}/public
чего-то туплю, сорри(
root /var/www/link-shortener/public; - так в нгинкс
ассеты у меня лежат /var/www/link-shortener/public/bundles/…
при этом http://link-shortener.hello.com/bundles/nelmioapidoc/logo.png возвращает 404, но сама симфони нормально работает, контроллеры отрабатывают
Юра
ну зайди в образ нгинкса
Юра
и посмотри эрор лог
Юра
он там пишет по какому пути н не может найти файлы
Юра
или напиши docker logs ...
Юра
может там будет ерор лог
Юра
у тебя точно внутри нгинкса есть папка /var/www/link-shortener/ ?
Юра
просто у тебя два контейнера и проджект рут в них может быть разный
Юра
надо убедиться что все лежит там где надо
Viktor
кстати, реально...
Viktor
в нгинксе в паблике нет assetов
Viktor
а в php-fpm есть
Viktor
а как можно их засинкать между собой?
Юра
Они у тебя случаем не симлинком ссделаны?
Viktor
Они у тебя случаем не симлинком ссделаны?
только что смог нагуглить то, что о чем вы говорите)))
https://stackoverflow.com/questions/44284484/docker-compose-share-named-volume-between-multiple-containers/44284993#44284993
сделал volume не привязанный ни к чему, и объединил два контейнера им
Viktor
спасибо большое!
Viktor
есть еще вопросик) а как в проде лучше шарить эти самые статичные файлы между релизами?
сделать volume с приваязкой к конкретной папке на сервере?
тоже самое про бд вопрос. у меня пг.
сделать на сервере папку и связать с помощью volume с контейнером?
Юра
Тут много нюансов
Юра
Как вы делаете деплой и т.д.
Юра
У меня просто через named volume
Юра
В нгинкс мапится прям весь проект но рут смотрит в паблик папку
Dmitry
Viktor
Dmitry
Viktor
Aleksandr
привет товарищи, кто-то в реальной жизни щас NFT использовал?
Viktor
Юра
Aleksandr
Aleksandr
и ты прав)
Юра
Но это так, просто к слову
Юра
в придачу эта папка наверное еще и может быть какой-нибудь файловой системой которая умеет реплицироваться на несколько серверов. И ты можешь впридачу получить репликацию на несколько разных серверах одной и той же папки
Viktor
Юра
Ну это ж линукс
Юра
Так и есть
Alex
Привет, кто нибудь закрывал nelmio_api_doc апи запросы через
components:
securitySchemes:
Bearer:
type: http
scheme: bearer
bearerFormat: JWT
security:
- Bearer: [ ]
не подскажите как реализовать проверку Bearer и его выпуск? в какую сторону смотреть?
Юра
Закрой черкз нгинкс да и все
Юра
Или ты о каком закрытии?
Alex
Я имею ввиду запрос по апи с авторизацией
Юра
Обычный Authorization: Bearer JWTTOKEN
Alex
в доке написано об securitySchemes и о @Security(name="Bearer") для методов
а вот выпуск токена и его проверка на уровне firewalls должна происходить?
Юра
Посмотри lexik jwt bundle
Юра
https://github.com/lexik/LexikJWTAuthenticationBundle
Alex
Спасибо буду разбираться
Юра
Там изи всё
A
Привет всем!
Господа, а подскажите, кто как делает composee install в образах для продакшна? Интересует как кто с рецептами борется. Что-то кроме composer.json из проекта подкидываете для установки зависимостей?
A
На днях столкнулся с интересной проблемой.
Проект +- в стиле структуры framework bundle.
Все время в гитлабе при сборках для прода закидывали в промежуточный образ только composer.json.
При установке прогонялись все рецепты симфы, а вот со вчера перестали.
Dmitry
Dmitry
A
Да, логично. Все вроде ок, еще раз благодарю.
artem
@here кто-то может помочь с dic? Последний затуп. Нужно сегодня доделать
Aleksandr
Aleksandr
метод уточки никто не отменял
artem
Aleksandr
показывй)
artem
че дальше то? куда контейнер пихать?
artem
Dmitry
че дальше то? куда контейнер пихать?
Не контейнер в команду пихать, а команду из контейнера доставать:
$command = $container->get(UploadCommand::class);
$command->execute($path);
Иван
Дмитрий
добрый день, симфонисты, столкнулся с такой штукой: есть у меня ентити User, есть ентити Project у которого есть связь #[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'projects')]
мейкер всё сам сделал и настроил метод public function setUser(?User $user): self
и все бы хорошо но когда я решил сделать ProjectDataPersister (у меня ApiPlatform) притащил через DI Symfony\Component\Security\Core\Security и вызвал его чтобы получить $this->security->getUser() который затем отдать в $data->setUser($this->security->getUser());
и оно даже работает.... но... шторм ругается потому что секурити возвращает UserInterface а setUser ждет ентити class User implements UserInterface
как это правильно починить?
Nikolay
Nikolay
Надо делать обёртку над юзером какую то видимо
Nikolay
В сущности говно будет
Дмитрий
а интересно можно как-то сделать new User и наполнить ее $this->security->getUser()?