Comments 26
Заменить emacs на vim в качестве дефолтного редактора в системе (привет Ctrl+x+e и т.д.) тоже через контейнер?) Более того, речь в статье как сменить дефолтную %nameit% в системе. Вполне пригодится для корректной настройки системы при билде вашего Docker образа. Так сказать быть более system compliance.
Написал бы я как поднять несколько версий PHP-FPM и не задолбаться с сокетами, портами и секьюрити аспектом, вот бы мне было стыдно после вашего комментария :)
Есть приложение. И есть его настроенное окружение. Я не хочу знать ничего о «системе», мне просто нужен PHP7+набор расширений+composer+phing. Зачем редактор на сервере? Что за странное требование?
Приложение первично. Все эти ваши «системы» мне неинтересны от слова «вообще». Мне просто нужно запустить свое приложение, чей список требований является его же частью.
Обеспечьте или нафиг.
Вы мой любимый тип клиентов) "Ничего знать не хочу, сделайте так чтобы чух-чух". Все-таки кроме хостинга приложений существует масса вариантов где используется Linux и если вы не хотите узнавать что-то новое, то другим может быть вполне полезным.
Хмм… давайте выйдем из контекста какого-либо коммерческого продукта, из сферы хостинга приложений. Просто вы настраиваете linux сервер под себя. Вот статья просто про один такой прием настройки системы под себя. Вне зависимости от кейса — одна у вас система или их много, собираете вы box vagrant'a для разработчиков или билдите docker образ для хостинга приложения. Вот все) Не больше. Поэтому категоричность вашего комментария вводит в недоумение.
Не пойму, зачем это сейчас нужно, учитывая что есть docker, где можно более простым образом жонглировать php версиями?
У update-alternatives
есть возможность задать альтернативные директории для конфигов и симлинок. Через /etc/profile.d
можно добавить уникальный кастомный путь в PATH
для каждого пользователя. Для простоты использования update-alternatives --altdir.. --admindir..
можно завернуть в алиас для пользователя через тот же /etc/profile.d
. Таким образом каждый пользователь сможет менять дефолтную версию PHP для себя. Скорее всего, при создании пользователя, директории нужно будет создавать отдельно каким-нибудь костылем :)
Ну это то, что в голову с ходу приходит :)
/etc/skel
управлять без костылей. Самый простой и старый механизм — переопределить $PATH персональной директорией со ссылками:
echo export PATH=$HOME/bin:'$PATH' >> ~/.profile
ln -s /opt/plesk/php/5.6/bin/php $HOME/bin/php
Конечно, не так красиво, как вызов update-alternatives с флагами, но, по большому счету, к этому и сводится в итоге.
А вот бы еще придумать, как для каждого пользователя (или даже в разных каталогах одного пользователя) иметь свою версию PHP включенной.
а в чем собственно проблема? Я так делал через mod_fcgid и php-cgi. И тогда сам разработчик через htaccess файлы мог переключать нужную версию, даже в пределах отдельной папки.
А если речь идет про CLI?
И да, для CLI надо «более другое» решение.
и как cagefs
поможет поменять дефолтную системную версию PHP или сменить системный редактор? Ну или поменять pager для листания манов?)
Команда # update-alternatives --config php проходит, но нативная версия не меняется.
Пишет current best version и ссылка на 5.4, хотя приоритет у 5.6 и выбрана она.
Подскажите куда копать?
Жонглируем версиями PHP в системе