Как стать автором
Обновить

Комментарии 26

Приглашаю забыть про описанные ужасы, как про страшный сон и научиться разворачивать виртуальные окружения для каждого приложения.

Заменить emacs на vim в качестве дефолтного редактора в системе (привет Ctrl+x+e и т.д.) тоже через контейнер?) Более того, речь в статье как сменить дефолтную %nameit% в системе. Вполне пригодится для корректной настройки системы при билде вашего Docker образа. Так сказать быть более system compliance.


Написал бы я как поднять несколько версий PHP-FPM и не задолбаться с сокетами, портами и секьюрити аспектом, вот бы мне было стыдно после вашего комментария :)

В какой «системе»?

Есть приложение. И есть его настроенное окружение. Я не хочу знать ничего о «системе», мне просто нужен PHP7+набор расширений+composer+phing. Зачем редактор на сервере? Что за странное требование?

Приложение первично. Все эти ваши «системы» мне неинтересны от слова «вообще». Мне просто нужно запустить свое приложение, чей список требований является его же частью.

Обеспечьте или нафиг.

Вы мой любимый тип клиентов) "Ничего знать не хочу, сделайте так чтобы чух-чух". Все-таки кроме хостинга приложений существует масса вариантов где используется Linux и если вы не хотите узнавать что-то новое, то другим может быть вполне полезным.

Я не клиент. Скорее ваш коллега. И искренне не понимаю, зачем условному «клиенту» вообще знать о какой-то «системе». Ему нужно запустить условный wordpress (ОК, если вы настаиваете на не-веб — то условный ffmpeg с условными кодеками) и прочие знания лишь умножат его (клиента) печали.

Хмм… давайте выйдем из контекста какого-либо коммерческого продукта, из сферы хостинга приложений. Просто вы настраиваете linux сервер под себя. Вот статья просто про один такой прием настройки системы под себя. Вне зависимости от кейса — одна у вас система или их много, собираете вы box vagrant'a для разработчиков или билдите docker образ для хостинга приложения. Вот все) Не больше. Поэтому категоричность вашего комментария вводит в недоумение.

Ну тогда может быть.
Я просто очень давно уже не занимался «настройкой для себя».
Полностью поддерживаю
Не пойму, зачем это сейчас нужно, учитывая что есть docker, где можно более простым образом жонглировать php версиями?

На примере CLI PHP в статье показан стандартный и беспроблемный подход по настройке. Это прием из другой плоскости системного администрирования, чем хостинг приложений. На месте PHP версий могли быть совсем другие бинарники, например, не относящиеся к вебу вообще.

А вот бы еще придумать, как для каждого пользователя (или даже в разных каталогах одного пользователя) иметь свою версию 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?

Я может упускаю суть, но что мешает в таком случае использовать полный путь к бинарнику php-cgi или через тот же update-alternatives сделать удобные линки наподобие php55/php56/php57?
Спасибо, можно тут подумать, да, в эту сторону.

И да, для CLI надо «более другое» решение.
Единственная нормальная панель для shared-хостингов.
Всё бы хорошо, но так поставить PHP 7 будет трудно :) А без PHP 7 уже никак

Почему трудно? Просто я не был уверен, что в моей системе от семерки ничего не развалится, поэтому поставил 5.6


Если вас все устраивает — вперед)

А еще есть cagefs и все это можно рулить в плеске под конкретным юзером.

и как cagefs поможет поменять дефолтную системную версию PHP или сменить системный редактор? Ну или поменять pager для листания манов?)

А надо ли её менять в системе то? если у нас всё в виртуалхостах.
@plesk1 ~]$ php -v
PHP 5.3.3 (cli) (built: Aug 12 2016 04:27:23)


Вот живет и никому не мешает, хотя у половины клиентов давно 7

Здравствуйте. Стоит ispmanager 5 lite и centOS7. Пытался по вашему мануалу сменить нативную версию php.

Команда # update-alternatives --config php проходит, но нативная версия не меняется.

Пишет current best version и ссылка на 5.4, хотя приоритет у 5.6 и выбрана она.

Подскажите куда копать?
Все нормально, спасибо за статью. Ребут решил все проблемы — заработало!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий