14.04 Чисте оновлення до ppa: ondrej / php від ppa: ondrej / php5-5.6


10

Сьогодні я пройшов звичні оновлення серверного пакету і виявив, що ppa:ondrej/php5-5.6це амортизовано, і тепер ми мусимо оновити його ppa:ondrej/php.

Основні надані інструкції:

sudo add-apt-repository ppa:ondrej/php

І потім:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

Дивлячись на новий сховище, начебто, імена не повністю вибудовуються, тому, я думаю, мені потрібно зробити деякі влучні установки, щоб встановити всі потрібні пакети. Також виявляється, що підпакети (тобто php-gd) встановлюватимуться для всіх версій php, а також можуть встановлювати php 5.5 та php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- php5-депресія )

Отже, моє питання полягає в тому, який найчистіший спосіб "переключити" папси та очистити існуючі пакети, враховуючи, що це сервер виробництва? Чи варто спробувати видалити всі встановлені пакети з попереднього PPA та / або видалити PPA зі своєї системи?

Це ще не на головній сторінці для PPA, але повідомлення про оновлення дало анулювання як червень 2016 року, тому це не дуже довгий термін для відновлення образу нашого сервера.

Я знайшов цю сторінку, яка містить вказівки щодо вимкнення версії PHP, яку використовує apache: https://dzone.com/articles/php-70-and-56-on-ubuntu


1
Я напишу текст на цю тему у вікі-репо тут: github.com/oerdnj/deb.sury.org/wiki Мені просто потрібно знайти трохи вільного часу. Кожен може почати і тим часом сприяти :)
oerdnj

Відповіді:


12

Старі php5-*пакети можна встановити за допомогою нової phpX.Y-*схеми, тому перше, що вам потрібно зробити, це встановити та включити нові пакети:

Apache 2.4

Потрібно встановити нові libapache2-mod-phpX.Yпакети, а потім відключити старий php5 та увімкнути новий модуль із версією, fe для PHP 5.6:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

NGINX / Apache 2.4 з PHP-FPM

Це ще простіше, просто встановіть phpX.Y-fpmі змініть шлях сокета у конфігурації веб-сервера на /run/php/phpX.Y-fpm.sockта скопіюйте стару конфігурацію, fe для PHP 5.6:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

Якщо ви визначили більше пулів FPM, вам потрібно скопіювати стару конфігурацію в новий шлях, знову ж таки для PHP 5.6:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

Тепер , якщо ви хочете , щоб видалити застарілі пакунки, ви можете зіткнутися з деякими проблемами , як там може бути пакети , які вимагають старого php5 * імен, ви можете додати , ppa:ondrej/php5-compatщо забезпечують тонкий шар пакетів сумісності, карти php5-<foo>в php5.6-<foo>перебіг основного php5 * пакети:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

Однозначно спробуйте це спочатку в невиробничому середовищі! Хороша сторона полягає в тому, що це зберігає стару конфігурацію /etc/php5недоторканою, тому ви можете мігрувати старі налаштування.

Після оновлення основних пакетів PHP, можливо, ви захочете знайти решту php5-*пакунків та встановити їх еквівалент, наприклад

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

Я підготую оновлення до php5-compat repo, яке зробить ці відображення автоматично.

Більш сучасний текст завжди можна знайти у Вікі- програмі DEB.SURY.ORG PPA .


1
Дякую за всю вашу роботу! У нас є стадіонний сервер, на якому я спробую все спочатку. У своїх вказівках ви можете включити щось про запуску, dpkg --get-selections | grep phpщоб перелічити всі поточні пакети, щоб допомогти людям відображати речі (хоча карта Ppa буде дуже корисною для того, щоб не робити цього і дозволяти йому просто працювати.) Це також може бути добре включитиsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Лорен

Гарна ідея із видаленням старого ЗОЗ.
oerdnj

1
Гей @oerdnj. Чи не повинен це бути a2dismod замість phpdismod? А a2enmod замість phpenmod?
Wojtek Naruniec

Хороший улов, фіксований.
oerdnj

Розширення dbase не працює з вашим модулем 5.6, я могла скласти його раніше для старої версії 5.6, але не для нового сховища. Він збирається для старої версії 5.5. але версія 5.6 запускається таким втраченим модулем. Чи є ймовірність, що ви могли якось не відключити старий 5,6 ppa?
Тебе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.