• На чём вы разворачиваете Symfony?

    @mistergonza
    PHP6 evangelist
    Я использовал Vagrant. C nginx + php7 + mysql 5.7 для Symfony 2.8.
    Ссылка на Box
    Ответ написан
    Комментировать
  • Какой micro framework посоветуете?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Берите Symfony 3 в режиме микроядра. Профит:

    по умолчани - микрофреймворк, если этого будет не хватать - можно быстро перейти на symfony full stack решение. Ну и по качеству кода и тд. у компонентов симфони конкурентов нет (разве что zend может тягаться).

    вот только без ORM.


    Composer же, можно любой взять пакет реализующий ORM. А еще хороший вопрос - нужен ли вам ORM. Это не что-то что дефакто должно присуствовать. Скажем если у вас в качестве базы данных монга - то ORM уже не нужна, так как нет связей между документами (точнее их не должно быть).

    не навязывал свою структуру/архитектуру

    Этому пункту соответствует. Есть общепринятый best-practice но он в принципе только о общих вещах. А структуру вашего кода - это уже сами решайте. Так же нет никаких ограничений по архитектуре вашего приложения, симфони предоставляет вам только адаптеры для UI (HTTP, CLI и т.д.), то есть организация UI приложения. Приложение же само хоть на plain php может быть, просто пользовать инфраструктурой предоставляемой симфони.

    цеплять любые файлы независимо от их "географического" положения.


    Это вы сейчас об автозагрузке или что? Какие файлы? Хватит мыслить файлами, мыслите объектами, нэймспейсами и т.д. А мэппинг этого на файлы один раз прописывается в composer.json.

    p.s. Опять же, фреймворк это всего-лишь набор инструментов. он ничем вас не обязывает. Симфони один из немногих фреймворков который предоставляет свободу. То есть есть по дефолту структура, но вы ее поменять можете как захотите.
    Ответ написан
    1 комментарий
  • Как заставить systemd запускать контейнеры через docker-compose?

    Tyranron
    @Tyranron
    1. Чтобы при перезапуске машины контейнеры сами стартовали, нужно всего лишь соответствующий systemd service сделать enabled. Cron здесь не нужен.
    sudo systemctl enable docker-project.service

    2. Любой systemd service - это всего лишь абстракция. А что именно он выполняет - решать именно Вам. Что у Вас ExecStart'ом будет стартовать один контейнер через docker run, что связка контейнеров через docker-compose up, для systemd и CoreOS принципиальной разницы нет.

    3. В приведенной Вами декларации systemd service'а в секции [Unit] есть следующие строки:
    Requires=docker-project.service
    After=docker-project.service

    Они означают, что декларируемый Вами service должен быть запущен только после того, как был запущен docker-project.service. Но, насколько я понимаю из Вашего описания, это и есть декларация docker-project.service. То есть Вы говорите systemd что сервис должен быть запущен после запуска самого себя. Это не есть гуд. Эти строки, судя по всему, должны быть такими:
    Requires=docker.service
    After=docker.service

    Дабы systemd пытался запустить этот сервис только после того, как будет запущен Docker daemon.

    4. В файлике docker-up.sh у Вас docker-compose up запускается в foreground'е. Первая связка контейнеров то запустится, а что со второй - не понятно. Наверное, все же стоило их запускать с -d ключиком, а в systemd декларации в секции [Service] указать Type=forking, если прям так нужно обе связки контейнеров запускать одним systemd service. Но вообще, имхо, на каждый docker-compose.yml должен быть свой отдельный systemd service, и никаких forking.
    Также, заворачивать docker-compose команды внутрь docker-up.sh было не самой хорошей идеей. Вам ничего не мешало написать несколько ExecStart'ов подряд, тем самым не размазывая декларацию по нескольким файлам, и было бы видно на каком именно шаге оно отваливается при systemctl start docker-project.service.

    5. Логи наше все. Используйте journalctl --unit=docker-project.service дабы глянуть что там вообще произошло, и кто на кого ругается.

    В заключение:
    Вообще, честно говоря, видно полное профанство с Вашей стороны по данному вопросу. Это нормально, ведь невозможно знать все технологии и инструменты, и постоянно приходится что-то изучать. Не нормально то, что ничего не мешает заглянуть в официальную документацию по тому же systemd. 20-30 минут чтения хотя бы этой страницы, и подобного непонимания бы просто не было.
    Пожалуйста, не поленитесь, потратьте немного времени и почитайте доки. Systemd умеет ещё много чего, что сможет Вам помочь в решении Ваших задач, и даст понимание что, куда, и как.

    К размышлению:
    Раз уж Вы используете CoreOS, посмотрите в сторону Kubernetes для запуска сервисов/контейнеров. Ставится на CoreOS он в пол-оборота, а возможностей, гибкости и вкусных абстракций уж гораздо поболее, нежели у systemd/fleet.
    Ответ написан
    1 комментарий
  • Как добавить исключение на введение пароля для sudo?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ну, вот так например, юзер vasya на тачке BOX без пароля может выполнить команду /usr/bin/myscript -a -b -c -d (причем именно вот так как написано, команду /usr/bin/myscript --help - не сможет)
    vasya         BOX = (root) NOPASSWD: /usr/bin/myscript -a -b -c -d

    Это запросто может быть не безопасно, потому что на время выполнения он получит права пользователя, который в скобках, в данном случае - рута.
    Ответ написан
    1 комментарий
  • Как добавить исключение на введение пароля для sudo?

    @mayor-jojo
    Ответ написан
    Комментировать
  • Как добавить исключение на введение пароля для sudo?

    DevMan
    @DevMan
    Это возможно?
    возможно: секция NOPASSWD в sudoers.

    если да - это безопасно?
    зависит. может быть как безопасно, так и нет.
    Ответ написан
    Комментировать
  • Для чего используется пакет php5-cli?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    CLI - command line interface.
    Следовательно, php-cli нужен для запуска php из командой строки.
    Детальная информация и примеры.
    Ответ написан
    Комментировать
  • Как расшифровать данный файл .sh?

    dummyman
    @dummyman
    диссидент-схизматик
    set -e устанавливает режим выхода при первой же ошибки.
    to=$1 - переменной to присваивается первый аргумент с которым вызывали скрипт, например setup.sh local, $1 будет содержать "local"

    а есть еще команды такие man

    man set
    man shift
    man docker
    man man
    =)
    Ответ написан
    Комментировать
  • Как загружать файлы на virtualbox?

    @tamogavk
    @deni4ka
    semki096 поднять ftp на ubuntu, либо открыть шару
    Ответ написан
    Комментировать
  • Как в Dockerfile настроить конфигурвцию apache?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Как вариант - монтировать папку с локальной системы при помощи VOLUME  с нужными конфигами апача. Можно и не в Dockerfile - а в docker-compose или сразу при запуске - как вы там предпочитаете контейнеры запускать...
    Ответ написан
    Комментировать
  • Как наладить wifi на ubuntu?

    Nikstorma
    @Nikstorma
    Ищу компаньона - веб-разработчика
    Лучше задай эти вопросы на форуме Ubuntu.ru. Быстрее получишь ответ. Скорее всего в конфиге стоит низкий уровень мощности сигнала.
    Ответ написан
    Комментировать
  • Как будет работать приложение на php & nodejs в dockere?

    Xuxicheta
    @Xuxicheta
    инженер
    Можно засунуть все в один контейнер при желании. Странный вариант, но вполне работоспособный.

    Можно держать контейнер с php+apache, а код приложения в папке рядом. Так же с node.
    Не обязательно на разных портах, контейнеры можно вообще не открывать во внешнюю сеть, но тогда понадобится реверс-прокси. Это для разработки.

    Можно сделать новый образ, наследуемый из php+apache и содержащий твое приложение.
    Тогда достаточно будет залить один файл образа на сервер и запустить контейнер на его основе. Это для быстрого деплоя. Но надо будет у себя обновлять контейнер и повторять процедуру.
    Ответ написан
    Комментировать
  • Как написать свой класс безопасности для функции eval?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    через eval уже ничего не получится. т.к. если вы его запускаете то и из кода его можно запустить.
    запускать надо в песочнице с обрезанными функциями через disable_functions, уже писали вам.
    Обрезать надо все файловые и сетевые функции как минимум.
    а так же ограничивать время выполнения
    Ответ написан
    Комментировать
  • Как защититься при использовании eval?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вот и нужно делать именно песочницу: изолированную среду исполнения кода php-процессом. А eval/не eval - не нужно к этому привязываться вообще.
    Ответ написан
    2 комментария
  • Как защититься при использовании eval?

    @xutesayor
    Запретить все операции взаимодействия с внешней средой (файловой системой, удаленными серверами, базами данных и т.д.)
    Ответ написан
    Комментировать
  • Как имитировать выполнение PHP по аналогии с codeacademy?

    @asd111
    docker. Берешь образ в котором есть php, настраиваешь и запускаешь.
    Ответ написан
    Комментировать
  • Как защититься при использовании eval?

    @miserenkov
    Middle PHP Developer
    Чтобы защититься от eval, нужно не использовать eval. Остальные методы можно обойти, все зависит от времени которое это займет.
    Ответ написан
    2 комментария