Версия Amazon Linux PHP сбрасывается до 5.6 после установки 7.0

Я использую Amazon Linux AMI и удаляю PHP 5.6 и некоторые расширения, а затем устанавливаю PHP 7.0 и некоторые расширения. Все это работает нормально в течение нескольких недель, а затем внезапно PHP 5.6 и расширения, которые у меня были до этого, снова устанавливаются, и я ничего не делаю (насколько я могу судить), чтобы вызвать это. Кажется, это происходит случайным образом на некоторых из моих серверов, но не на других.

Вот мой журнал YUM:

Apr 03 14:58:53 Erased: php56-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-mysqlnd-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-pdo-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-xml-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-cli-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-jsonc-1.3.6-1.19.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-common-5.6.30-1.133.amzn1.x86_64
Apr 03 14:58:53 Erased: php56-process-5.6.30-1.133.amzn1.x86_64
Apr 03 14:59:12 Installed: php70-json-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:12 Installed: php70-process-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:12 Installed: php70-cli-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:12 Installed: php70-xml-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:12 Installed: php70-common-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-pdo-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-pecl-igbinary-1.2.2-0.1.20151217git2b7c703.5.amzn1.x86_64
Apr 03 14:59:13 Installed: libXpm-3.5.10-2.9.amzn1.x86_64
Apr 03 14:59:13 Installed: libwebp-0.3.0-3.5.amzn1.x86_64
Apr 03 14:59:13 Installed: 12:aspell-0.60.6-12.7.amzn1.x86_64
Apr 03 14:59:13 Installed: libmcrypt-2.5.8-9.1.2.amzn1.x86_64
Apr 03 14:59:13 Installed: libmemcached-1.0.16-5.8.amzn1.x86_64
Apr 03 14:59:13 Installed: libtool-ltdl-2.4.2-20.4.8.3.31.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-mcrypt-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-pecl-memcached-3.0.0-0.1.20160217git6ace07d.2.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-pspell-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-gd-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-mysqlnd-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-intl-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-mbstring-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-opcache-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-soap-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-zip-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:13 Installed: php70-xmlrpc-7.0.16-1.21.amzn1.x86_64
Apr 03 14:59:51 Updated: 1:openssl-1.0.1k-15.99.amzn1.x86_64
Apr 03 14:59:52 Updated: krb5-libs-1.14.1-27.41.amzn1.x86_64
Apr 03 14:59:52 Installed: libkadm5-1.14.1-27.41.amzn1.x86_64
Apr 03 14:59:52 Installed: libverto-devel-0.2.5-4.9.amzn1.x86_64
Apr 03 14:59:52 Installed: libcom_err-devel-1.42.12-4.40.amzn1.x86_64
Apr 03 14:59:52 Installed: zlib-devel-1.2.8-7.18.amzn1.x86_64
Apr 03 14:59:52 Installed: keyutils-libs-devel-1.5.8-3.12.amzn1.x86_64
Apr 03 14:59:52 Installed: libsepol-devel-2.1.7-3.12.amzn1.x86_64
Apr 03 14:59:52 Installed: libselinux-devel-2.1.10-3.22.amzn1.x86_64
Apr 03 14:59:52 Installed: krb5-devel-1.14.1-27.41.amzn1.x86_64
Apr 03 14:59:52 Installed: 1:openssl-devel-1.0.1k-15.99.amzn1.x86_64
Apr 03 14:59:52 Installed: mysql55-devel-5.5.54-1.16.amzn1.x86_64
Apr 03 14:59:52 Installed: mysql-devel-5.5-1.6.amzn1.noarch
Apr 03 15:00:06 Updated: glibc-2.17-157.169.amzn1.x86_64
Apr 03 15:00:10 Updated: glibc-common-2.17-157.169.amzn1.x86_64
Apr 03 15:00:10 Installed: mpfr-3.1.1-4.14.amzn1.x86_64
Apr 03 15:00:10 Installed: libmpc-1.0.1-3.3.amzn1.x86_64
Apr 03 15:00:10 Installed: cpp48-4.8.3-9.111.amzn1.x86_64
Apr 03 15:00:10 Installed: libgomp-4.8.3-9.111.amzn1.x86_64
Apr 03 15:00:10 Installed: kernel-headers-4.4.51-40.60.amzn1.x86_64
Apr 03 15:00:10 Installed: glibc-headers-2.17-157.169.amzn1.x86_64
Apr 03 15:00:10 Installed: glibc-devel-2.17-157.169.amzn1.x86_64
Apr 03 15:00:11 Installed: gcc48-4.8.3-9.111.amzn1.x86_64
Apr 03 15:00:11 Installed: gcc-4.8.3-3.20.amzn1.noarch
Apr 03 15:04:31 Installed: sysstat-9.0.4-27.10.amzn1.x86_64
Apr 03 15:07:45 Installed: newrelic-repo-5-3.noarch
Apr 03 15:07:53 Installed: newrelic-sysmond-2.3.0.132-1.x86_64
Apr 03 15:08:29 Installed: newrelic-php5-common-7.1.0.187-1.noarch
Apr 03 15:08:29 Installed: newrelic-daemon-7.1.0.187-1.x86_64
Apr 03 15:08:29 Installed: newrelic-php5-7.1.0.187-1.x86_64
Apr 03 15:09:18 Installed: python26-2.6.9-2.88.amzn1.x86_64
Apr 03 15:09:18 Installed: python26-libs-2.6.9-2.88.amzn1.x86_64
Apr 03 15:09:18 Installed: python26-backports-1.0-3.14.amzn1.x86_64
Apr 03 15:09:18 Installed: python26-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch
Apr 03 15:09:18 Installed: python26-setuptools-12.2-1.32.amzn1.noarch
Apr 03 15:09:18 Installed: logentries-1.4.41-1484859727.x86_64
Apr 03 15:09:26 Installed: logentries-daemon-0.8.6-1.x86_64
Apr 04 08:34:19 Erased: newrelic-php5-7.1.0.187-1.x86_64
Apr 04 08:34:23 Installed: newrelic-php5-7.1.0.187-1.x86_64
Apr 04 10:04:04 Erased: newrelic-php5-7.1.0.187-1.x86_64
Apr 04 10:04:08 Installed: newrelic-php5-7.1.0.187-1.x86_64
Apr 05 09:07:39 Erased: newrelic-php5-7.1.0.187-1.x86_64
Apr 05 09:07:43 Installed: newrelic-php5-7.1.0.187-1.x86_64
Apr 26 06:49:46 Erased: newrelic-php5-7.1.0.187-1.x86_64
Apr 26 06:49:50 Updated: newrelic-php5-common-7.2.0.191-1.noarch
Apr 26 06:49:50 Updated: newrelic-daemon-7.2.0.191-1.x86_64
Apr 26 06:49:50 Installed: newrelic-php5-7.2.0.191-1.x86_64
Apr 26 12:29:52 Erased: newrelic-php5-7.2.0.191-1.x86_64
Apr 26 12:29:55 Installed: newrelic-php5-7.2.0.191-1.x86_64
Apr 26 12:53:07 Installed: php56-jsonc-1.3.6-1.19.amzn1.x86_64
Apr 26 12:53:07 Installed: php56-cli-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:07 Installed: php56-xml-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:07 Installed: php56-common-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:08 Installed: php56-process-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:08 Installed: php56-pdo-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:08 Installed: php56-mysqlnd-5.6.30-1.133.amzn1.x86_64
Apr 26 12:53:08 Installed: php56-5.6.30-1.133.amzn1.x86_64

Таким образом, PHP 5.6 был стерт 3 апреля, а затем снова установлен 26 апреля. Однако веб-сайт «переключился» обратно на PHP 5.6 только 30 апреля.

На другом сервере у меня есть этот журнал, который показывает, что некоторые обновления также запускались автоматически:

Apr 30 04:14:00 Updated: nspr-4.13.1-1.0.39.amzn1.x86_64
Apr 30 04:14:00 Updated: nss-util-3.28.4-1.0.52.amzn1.x86_64
Apr 30 04:14:00 Updated: nss-sysinit-3.28.4-1.0.78.amzn1.x86_64
Apr 30 04:14:00 Updated: nss-3.28.4-1.0.78.amzn1.x86_64
Apr 30 04:14:00 Updated: 32:bind-libs-9.8.2-0.62.rc1.54.amzn1.x86_64
Apr 30 04:14:01 Updated: 32:bind-utils-9.8.2-0.62.rc1.54.amzn1.x86_64
Apr 30 04:14:01 Updated: nss-tools-3.28.4-1.0.78.amzn1.x86_64
Apr 30 04:14:55 Installed: php56-jsonc-1.3.6-1.19.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-cli-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-xml-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-common-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-process-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-pdo-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-mysqlnd-5.6.30-1.133.amzn1.x86_64
Apr 30 04:14:56 Installed: php56-5.6.30-1.133.amzn1.x86_64

Включены ли в YUM на Amazon Linux автоматические обновления по умолчанию? Если да, то зачем ему переустанавливать пакеты, которые я удалил, и как я могу это предотвратить?


person Mikhail Janowski    schedule 30.04.2017    source источник
comment
с yum.conf вы можете добавить пакет игнорирования, поэтому пакет никогда не будет обновляться, если вы этого не сказали. Но вам нужно это проверить, потому что я думаю, что php 7 никогда не является версией и в любом случае не должен обновляться.   -  person Nick    schedule 30.04.2017
comment
вы также хотите проверить, установлен ли php5 по зависимости и php7 все еще присутствует, но веб-сервер загружает php5.   -  person Nick    schedule 30.04.2017
comment
Да, это похоже на то, что php7 все еще установлен, но веб-сервер загружает php5   -  person Mikhail Janowski    schedule 30.04.2017
comment
Я сделаю это как ответ   -  person Nick    schedule 30.04.2017
comment
Как узнать, какой пакет зависит от php56, и если мне нужен этот пакет, как настроить Apache/httpd для загрузки php7?   -  person Mikhail Janowski    schedule 30.04.2017


Ответы (1)


Из того, что мы прокомментировали, я вижу, что PHP7 все еще установлен, но PHP5.6 также установлен, как зависимость от чего-то еще.

Если вы используете PHP 7 в качестве модуля Apache, первое, что вам нужно сделать, это заменить его.

Где-то в /etc/httpd или /etc/apache2 должен быть файл, который должен выглядеть примерно так:

#LoadModule php5_module                 modules/libphp5.so
LoadModule php7_module                  modules/libphp7.so

Закомментируйте php5, добавьте/раскомментируйте php7. Проверьте правильные пути.

Затем перезапустите веб-сервер Apache с помощью:

service httpd restart

or

service apache2 restart

Затем, просто из любопытства, попробуйте удалить PHP 5.6, и вы, вероятно, увидите зависимость.

Поскольку вам, вероятно, потребуется сохранить PHP 5.6, узнайте здесь, как заморозить обновления пакетов
https://access.redhat.com/solutions/10185

отредактируйте /etc/yum.conf и добавьте

exclude=php*

затем вы можете выполнить обновление yum, чтобы проверить, что произойдет.

Если это рабочий сервер, который нельзя останавливать, будьте особенно осторожны, потому что ошибки на некоторых этапах могут привести к остановке веб-сервера.

person Nick    schedule 30.04.2017
comment
Я удалил PHP 5.6, и не было никаких зависимостей. Странно то, что он был переустановлен, когда я создал AMI и запустил новый экземпляр. - person Mikhail Janowski; 30.04.2017
comment
Вероятно, вы используете какой-то образ LAMP? Затем установите его и после этого установите PHP7. Лично я всегда предпочитаю CentOS/Amazon Linux Minimal и ставлю свой собственный скрипт установки. - person Nick; 30.04.2017
comment
Вы клонировали существующую машину, а новая устанавливает PHP 5.6? - person Nick; 30.04.2017
comment
Нет, я использую Amazon Linux для запуска собственного сценария установки. Да, после клонирования PHP 5.6 устанавливается, но только иногда. Я не могу это воспроизвести. - person Mikhail Janowski; 01.05.2017
comment
затем проверьте, устанавливаете ли вы его как-то по зависимости. ubuntu, например, имеет phpmyadmin — он устанавливает и php, и apache2. видел что-то подобное в centos, но не могу привести ни одного примера. также выполните ps axf | grep yum, чтобы увидеть, работает ли демон, связанный с yum. chkconfig | grep yum тоже может помочь. - person Nick; 01.05.2017