Ок, вот ответ от pierre schmitz, thx nymous за ссылку:
openssl
, phar
и posix
модули теперь встроены в ядро php7. Удалите соответствующие директивы из вашего php.ini
, например ;extension=openssl.so
.
php-xcache
несовместим с php7, удалите пакет, проект, похоже, умер.
полный список состояния пакетов сторонних разработчиков:
| Package | Status | Solution |
|------------------|--------------|--------------------------------------------------------------|
| graphviz | incompatible | remove PHP bindings |
| php-apcu | compatible | update to version 5 |
| php-geoip | incompatible | remove package |
| php-memcache | incompatible | remove package, project seems dead |
| php-memcached | incompatible | remove package, move back when upstream version is available |
| php-mongo | incompatible | remove package, superseded by the mongodb driver |
| php-xcache | incompatible | remove package, project seems dead |
| uwsgi-plugin-php | incompatible | remove PHP support, upstream update seems possible |
| xdebug | compatible | update to latest release candidate of version 2.4 |
В недавней версии bash вы можете использовать замену процесса.
foo 2> >(tee stderr.txt)
Это просто отправляет stderr программе, выполняющей tee.
Более переносимый
exec 3>&1
foo 2>&1 >&3 | tee stderr.txt
Это делает файловый дескриптор 3 копией текущего стандартного вывода (т. Е. Экрана), затем настраивает конвейер и запускает foo 2> & 1> & 3
. Это отправляет stderr из foo в то же место, что и текущий stdout, который является каналом, затем отправляет stdout на fd 3, исходный вывод. Канал передает исходный stderr из foo в tee, который сохраняет его в файл и отправляет на экран.
лучший ответ, который я смог найти:здесь
(cmd 2> >(tee /dev/stderr)) > log
он направляет оба(stdout и stderr)на экран(и в файл)и позволит вам зафиксировать ошибку, если она используется во встроенном условии (, если)или последовательных встроенных командах.
бывший:
$((curl "https://unix.stackexchange.com" 2> >(tee /dev/stderr)) >> logfile) && echo "some other commands if curl succeeds without error"
в других методах, например, для соединения трубопровода с тройником(| тройник... ), следующая команда(echo ... )выполняется независимо от того,(curl )успешно или неудачно , потому что он считает(tee)последней выполненной командой, а не(curl)