Upgrade PHP7 на Ubuntu 14.04
Для тех кто еще не обновил свои сервера на PHP7, настроенные по заметке Василия Наумкина.
Добавляем репозиторий
У меня все заработало. php5 при этом можно оставить (хотя может чего-нибудь вылезти).
В конфигурации php7-fpm меняем только сокет
Добавляем репозиторий
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
sudo apt-get update && apt-get purge php5-fpm && apt-get --purge autoremove && apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml php7.0-mbstring
У меня все заработало. php5 при этом можно оставить (хотя может чего-нибудь вылезти).
В конфигурации php7-fpm меняем только сокет
listen = /var/run/php/php7-eco.sock
и удаляем закоментируемую строку #php_admin_value[disable_functions] = exec,passthru и т.д.
В конфиге nginx также меняем только сокетupstream backend-eco {server unix:/var/run/php/php7-eco.sock;}
После изменения конфигов не забываем рестартить сервисыservice nginx restart
service php7.0-fpm restart
Комментарии: 31
Экспорт в PMA у вас работает?
Если под PMA имеется в виду PhpMyAdmin — сейчас проверил, все работает.
Спасибо за инструкцию! все работает на Ubuntu 14.04.3 LTS. устанавливал с помощью ansible github.com/itcraftsmanpl/ansible-role-php7
мой плэйбук:
мой плэйбук:
- hosts: prod
become: yes
become_method: sudo
roles:
- { role: itcraftsmanpl.ansible-role-php7, php_timezone: "Asia/Ashkhabad", php_upload_max_filesize: "100M", php_post_max_size: "100M", php_memory_limit: "128M", php_packages: [php7.0-common, php7.0-cli, php7.0-intl, php7.0-curl, php7.0-cgi, php7.0-fpm, php7.0-mysql, php7.0-gd, php7.0-mbstring, php7.0-mcrypt, php7.0-json, php7.0-xml] }
Господа, а файл php.ini надо заново править, ставя теже значения как и в php5x?
Естественно, если вы не используете настройки по-умолчанию.
В конфигурации php7-fpm меняем только сокета зачем менять стандартный путь?
listen = /var/run/php/php7-eco.sock
Ну можно не менять, если PHP5 убираете
так ты выше пишешь
sudo apt-get update && apt-get purge php5-fpmсоответственно, пхп5 удаляется
Ну я выше написал, что 5 можно оставить
Убери purge php5-fpm и 5 останется. Будут работать вместе. Проблем совместной работы не заметил.
Это-то я понимаю, просто не оч корректно написано) Все же будут копипастить и делать как написано, хотя с такой строчкой
sudo apt-get update && apt-get purge php5-fpm && apt-get --purge autoremove && apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml php7.0-mbstringможно не делать лишнее действие (менять путь сокета)
del
E: Unable to locate package php7.0-fpm
E: Couldn't find any package by regex 'php7.0-fpm'
E: Unable to locate package php7.0-mysql
E: Couldn't find any package by regex 'php7.0-mysql'
E: Unable to locate package php7.0-curl
E: Couldn't find any package by regex 'php7.0-curl'
E: Unable to locate package php7.0-gd
E: Couldn't find any package by regex 'php7.0-gd'
E: Unable to locate package php7.0-json
E: Couldn't find any package by regex 'php7.0-json'
E: Unable to locate package php7.0-mcrypt
E: Couldn't find any package by regex 'php7.0-mcrypt'
E: Unable to locate package php7.0-opcache
E: Couldn't find any package by regex 'php7.0-opcache'
E: Unable to locate package php7.0-xml
E: Couldn't find any package by regex 'php7.0-xml'
E: Unable to locate package php7.0-mbstring
E: Couldn't find any package by regex 'php7.0-mbstring'
E: Couldn't find any package by regex 'php7.0-fpm'
E: Unable to locate package php7.0-mysql
E: Couldn't find any package by regex 'php7.0-mysql'
E: Unable to locate package php7.0-curl
E: Couldn't find any package by regex 'php7.0-curl'
E: Unable to locate package php7.0-gd
E: Couldn't find any package by regex 'php7.0-gd'
E: Unable to locate package php7.0-json
E: Couldn't find any package by regex 'php7.0-json'
E: Unable to locate package php7.0-mcrypt
E: Couldn't find any package by regex 'php7.0-mcrypt'
E: Unable to locate package php7.0-opcache
E: Couldn't find any package by regex 'php7.0-opcache'
E: Unable to locate package php7.0-xml
E: Couldn't find any package by regex 'php7.0-xml'
E: Unable to locate package php7.0-mbstring
E: Couldn't find any package by regex 'php7.0-mbstring'
1. Не подключили репозиторий
2. Не обновили список пакетов
2. Не обновили список пакетов
Может быть дело в версии Ubuntu 15.04x32?
apt-get install software-properties-common:
Reading package lists… Done
Building dependency tree
Reading state information… Done
software-properties-common is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 101 not upgraded.
add-apt-repository ppa:ondrej/php:
Co-installable PHP versions: PHP 5.5, 5.6, PHP 7.0 and batteries included.
You can get more information about the packages at deb.sury.org
For PHP 5.4 on Ubuntu 12.04 use: ppa:ondrej/php5-oldstable
BUGS&FEATURES: This PPA now has a issue tracker: deb.sury.org/#bug-repor ting
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: donate.sury.org/
WARNING: add-apt-repository is broken with non-UTF-8 locales, see github .com/oerdnj/deb.sury.org/issues/56 for workaround:
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpjcncdi80/secring.gpg' created
gpg: keyring `/tmp/tmpjcncdi80/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpjcncdi80/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key «Launchpad PPA for Ondřej Surý» imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
sudo apt-get update
Hit mirrors.digitalocean.com vivid InRelease
Hit mirrors.digitalocean.com vivid-updates InRelease
Hit ppa.launchpad.net vivid InRelease
Hit security.ubuntu.com vivid-security InRelease
Hit ppa.launchpad.net vivid InRelease
Hit ppa.launchpad.net vivid InRelease
Hit mirrors.digitalocean.com vivid/main Sources
Hit mirrors.digitalocean.com vivid/universe Sources
Hit mirrors.digitalocean.com vivid/main i386 Packages
Hit mirrors.digitalocean.com vivid/universe i386 Packages
Hit mirrors.digitalocean.com vivid/main Translation-en
Hit mirrors.digitalocean.com vivid/universe Translation-en
Hit mirrors.digitalocean.com vivid-updates/main Sources
Hit mirrors.digitalocean.com vivid-updates/universe Sources
Hit mirrors.digitalocean.com vivid-updates/main i386 Packages
Hit mirrors.digitalocean.com vivid-updates/universe i386 Packages
Hit mirrors.digitalocean.com vivid-updates/main Translation-en
Hit mirrors.digitalocean.com vivid-updates/universe Translation-en
Hit ppa.launchpad.net vivid/main i386 Packages
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main Sources
Hit ppa.launchpad.net vivid/main i386 Packages
Hit security.ubuntu.com vivid-security/universe Sources
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main i386 Packages
Hit ppa.launchpad.net vivid/main i386 Packages
Hit security.ubuntu.com vivid-security/universe i386 Packages
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main Translation-en
Hit security.ubuntu.com vivid-security/universe Translation-en
Reading package lists… Done
apt-get install php7.0-fpm
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package php7.0-fpm
E: Couldn't find any package by regex 'php7.0-fpm'
apt-get install software-properties-common:
Reading package lists… Done
Building dependency tree
Reading state information… Done
software-properties-common is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 101 not upgraded.
add-apt-repository ppa:ondrej/php:
Co-installable PHP versions: PHP 5.5, 5.6, PHP 7.0 and batteries included.
You can get more information about the packages at deb.sury.org
For PHP 5.4 on Ubuntu 12.04 use: ppa:ondrej/php5-oldstable
BUGS&FEATURES: This PPA now has a issue tracker: deb.sury.org/#bug-repor ting
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: donate.sury.org/
WARNING: add-apt-repository is broken with non-UTF-8 locales, see github .com/oerdnj/deb.sury.org/issues/56 for workaround:
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpjcncdi80/secring.gpg' created
gpg: keyring `/tmp/tmpjcncdi80/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpjcncdi80/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key «Launchpad PPA for Ondřej Surý» imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
sudo apt-get update
Hit mirrors.digitalocean.com vivid InRelease
Hit mirrors.digitalocean.com vivid-updates InRelease
Hit ppa.launchpad.net vivid InRelease
Hit security.ubuntu.com vivid-security InRelease
Hit ppa.launchpad.net vivid InRelease
Hit ppa.launchpad.net vivid InRelease
Hit mirrors.digitalocean.com vivid/main Sources
Hit mirrors.digitalocean.com vivid/universe Sources
Hit mirrors.digitalocean.com vivid/main i386 Packages
Hit mirrors.digitalocean.com vivid/universe i386 Packages
Hit mirrors.digitalocean.com vivid/main Translation-en
Hit mirrors.digitalocean.com vivid/universe Translation-en
Hit mirrors.digitalocean.com vivid-updates/main Sources
Hit mirrors.digitalocean.com vivid-updates/universe Sources
Hit mirrors.digitalocean.com vivid-updates/main i386 Packages
Hit mirrors.digitalocean.com vivid-updates/universe i386 Packages
Hit mirrors.digitalocean.com vivid-updates/main Translation-en
Hit mirrors.digitalocean.com vivid-updates/universe Translation-en
Hit ppa.launchpad.net vivid/main i386 Packages
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main Sources
Hit ppa.launchpad.net vivid/main i386 Packages
Hit security.ubuntu.com vivid-security/universe Sources
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main i386 Packages
Hit ppa.launchpad.net vivid/main i386 Packages
Hit security.ubuntu.com vivid-security/universe i386 Packages
Hit ppa.launchpad.net vivid/main Translation-en
Hit security.ubuntu.com vivid-security/main Translation-en
Hit security.ubuntu.com vivid-security/universe Translation-en
Reading package lists… Done
apt-get install php7.0-fpm
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package php7.0-fpm
E: Couldn't find any package by regex 'php7.0-fpm'
Во-первых у вас Ubuntu 15.04
Я не вижу её в списке. Обновитесь хотя бы до 15.10
Я не вижу её в списке. Обновитесь хотя бы до 15.10
Товарищи, подскажите в чем трабла?
Накинул php7 не удаляя php5.
Пути прописал вроде бы верно. Но после рестарта сервисов папка /var/run/php пустая, хотя там должен быть sock
в логах пусто
Старые настройки в папке с php5 оставил. Но а nginx для сайта прописал новые имена для backend
Соответсвенно на теже имена создал conf в pool.d
Простая html в папке с сайтом открывается, но всё modx-ское выдает 502 Bad Gateway
ps. в phpmyadmin ничего не менял (изменил только то что для него в настройках nginx. т.е. присвоил новый backend )
pps. настройки php7 аналогичны тем, что в заметке Василия Наумкина
Накинул php7 не удаляя php5.
Пути прописал вроде бы верно. Но после рестарта сервисов папка /var/run/php пустая, хотя там должен быть sock
в логах пусто
Старые настройки в папке с php5 оставил. Но а nginx для сайта прописал новые имена для backend
Соответсвенно на теже имена создал conf в pool.d
Простая html в папке с сайтом открывается, но всё modx-ское выдает 502 Bad Gateway
ps. в phpmyadmin ничего не менял (изменил только то что для него в настройках nginx. т.е. присвоил новый backend )
pps. настройки php7 аналогичны тем, что в заметке Василия Наумкина
Ты удалил вот эту строку
во всех conf файлах в настройках php/7.0/fpm/pool.d ??? Проверь. Если не ошибаюсь, у меня именно из-за этой строки была ошибка 502 Bad Gateway.
#php_admin_value[disable_functions] = exec,passthru и т.д.
во всех conf файлах в настройках php/7.0/fpm/pool.d ??? Проверь. Если не ошибаюсь, у меня именно из-за этой строки была ошибка 502 Bad Gateway.
да, удалил.
Но disable_function для exec и passthru прописаны в общих настройках php.
спасибо за ответ!
Но disable_function для exec и passthru прописаны в общих настройках php.
спасибо за ответ!
папка var/run/php вообще пустая. хотя судя по всему там должен бы быть хотя бы php7.0-fpm.pid
ощущение, что php7.0 вообще не взлетел
ощущение, что php7.0 вообще не взлетел
т.е. если исключить все мои шаманства — активности в php7 не видно вообще. причем сервис останавливается/стартует. логи и все папки пустые. 5-ю версию сносить пробовал и результат тот же.
подожду обновки. может ситуация исправится
подожду обновки. может ситуация исправится
С дефолтным пулом (www) — пхп7 запускается. Но стоит изменить какой-то из старых (по указанному вначале статьи рецепту) — пхп отваливается.
по ps aux | grep php полная тишина в 7й версии.
по ps aux | grep php полная тишина в 7й версии.
честно, я аще не понимаю зачем в статье меняют дефолтный путь. и тебе советую не менять, всё работает по-умолчанию
точнее без прослойки /php/ хотя… и без var тоже )
пол дня сверяю пути и логику. и должно бы взлететь, но…
стоит в pool.d поместить любой пул — пхп7 отваливается
т.е. если просто переместить из pool.d 5й версии В pool.d 7й версии, перегрузить сервисы — то всё должно бы завертеться?
нет. я имею ввиду, что при чистой установке 7ки всё работает по-умолчанию. я сносил 5ку и по чистой установил 7ку. советую снести все версии пхп и на чистую установить 7ку
З.Ы.: надеюсь, бекапы у вас есть. они всегда должны быть
З.Ы.: надеюсь, бекапы у вас есть. они всегда должны быть
Без Бэкапов, конечно нельзя.
попробую
попробую
Решил затык. не знаю смеяться или плакать. Проблема была в пустяке.
Вощм в конфигах pool.d у меня стояла закомментированная строка со знаком #. вот он и не давал запуститься пхп7. видимо пхп5 допускал такой синтаксис.
во всех конфигах почистил эту строку — всё заработало. пути вроде можно не менять.
Вощм в конфигах pool.d у меня стояла закомментированная строка со знаком #. вот он и не давал запуститься пхп7. видимо пхп5 допускал такой синтаксис.
во всех конфигах почистил эту строку — всё заработало. пути вроде можно не менять.
Если бы Алексей внимательно прочитал мою заметку, то и грабель можно было избежать. Может это моя вина что я не разжевал зачем вот эта строка
и удаляем закоментируемую строкуНу теперь будете знать
#php_admin_value[disable_functions] = exec,passthru
думалось, что суть в операторе строки, а не в символе (хотя… с чего бы?).
Но спасибо! буду знать )
Но спасибо! буду знать )
кстати, а у меня вообще этой строки не было почему-то
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.