Upgrade PHP7 на Ubuntu 14.04

Для тех кто еще не обновил свои сервера на PHP7, настроенные по заметке Василия Наумкина.
Добавляем репозиторий
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
Sergey Pozhidaev
04 мая 2016, 08:05
modx.pro
13
6 463
+9

Комментарии: 31

Alexander V
04 мая 2016, 23:40
0
Экспорт в PMA у вас работает?
    Sergey Pozhidaev
    05 мая 2016, 05:22
    0
    Если под PMA имеется в виду PhpMyAdmin — сейчас проверил, все работает.
Алексей
24 мая 2016, 10:34
+1
Спасибо за инструкцию! все работает на 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] }
Alexey
25 мая 2016, 08:54
0
Господа, а файл php.ini надо заново править, ставя теже значения как и в php5x?
    Sergey Pozhidaev
    25 мая 2016, 08:57
    +1
    Естественно, если вы не используете настройки по-умолчанию.
Пётр Молчанов
30 мая 2016, 11:12
0
В конфигурации php7-fpm меняем только сокет
listen = /var/run/php/php7-eco.sock
а зачем менять стандартный путь?
    Sergey Pozhidaev
    30 мая 2016, 11:16
    0
    Ну можно не менять, если PHP5 убираете
      Пётр Молчанов
      30 мая 2016, 11:21
      0
      так ты выше пишешь
      sudo apt-get update && apt-get purge php5-fpm
      соответственно, пхп5 удаляется
        Sergey Pozhidaev
        30 мая 2016, 11:22
        0
        Ну я выше написал, что 5 можно оставить
        Sergey Pozhidaev
        30 мая 2016, 11:35
        0
        Убери purge php5-fpm и 5 останется. Будут работать вместе. Проблем совместной работы не заметил.
          Пётр Молчанов
          30 мая 2016, 11:46
          0
          Это-то я понимаю, просто не оч корректно написано) Все же будут копипастить и делать как написано, хотя с такой строчкой
          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
          можно не делать лишнее действие (менять путь сокета)
        Sergey Pozhidaev
        30 мая 2016, 11:35
        0
        del
Дмитрий
13 июля 2016, 10:03
0
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'
Alexey
18 августа 2016, 14:55
0
Товарищи, подскажите в чем трабла?
Накинул php7 не удаляя php5.
Пути прописал вроде бы верно. Но после рестарта сервисов папка /var/run/php пустая, хотя там должен быть sock
в логах пусто

Старые настройки в папке с php5 оставил. Но а nginx для сайта прописал новые имена для backend
Соответсвенно на теже имена создал conf в pool.d

Простая html в папке с сайтом открывается, но всё modx-ское выдает 502 Bad Gateway

ps. в phpmyadmin ничего не менял (изменил только то что для него в настройках nginx. т.е. присвоил новый backend )
pps. настройки php7 аналогичны тем, что в заметке Василия Наумкина
    Иван Бондаренко
    18 августа 2016, 15:13
    0
    Ты удалил вот эту строку

    #php_admin_value[disable_functions] = exec,passthru и т.д.

    во всех conf файлах в настройках php/7.0/fpm/pool.d ??? Проверь. Если не ошибаюсь, у меня именно из-за этой строки была ошибка 502 Bad Gateway.
      Alexey
      19 августа 2016, 08:44
      0
      да, удалил.
      Но disable_function для exec и passthru прописаны в общих настройках php.
      спасибо за ответ!
Alexey
19 августа 2016, 09:16
0
папка var/run/php вообще пустая. хотя судя по всему там должен бы быть хотя бы php7.0-fpm.pid

ощущение, что php7.0 вообще не взлетел
Alexey
19 августа 2016, 10:17
0
т.е. если исключить все мои шаманства — активности в php7 не видно вообще. причем сервис останавливается/стартует. логи и все папки пустые. 5-ю версию сносить пробовал и результат тот же.
подожду обновки. может ситуация исправится
Alexey
19 августа 2016, 16:04
0
С дефолтным пулом (www) — пхп7 запускается. Но стоит изменить какой-то из старых (по указанному вначале статьи рецепту) — пхп отваливается.
по ps aux | grep php полная тишина в 7й версии.
    Пётр Молчанов
    19 августа 2016, 16:07
    0
    честно, я аще не понимаю зачем в статье меняют дефолтный путь. и тебе советую не менять, всё работает по-умолчанию
      Alexey
      19 августа 2016, 16:40
      0
      без /Var тоже пробовал.
      точнее без прослойки /php/ хотя… и без var тоже )
      пол дня сверяю пути и логику. и должно бы взлететь, но…

      стоит в pool.d поместить любой пул — пхп7 отваливается
      Alexey
      19 августа 2016, 17:15
      0
      т.е. если просто переместить из pool.d 5й версии В pool.d 7й версии, перегрузить сервисы — то всё должно бы завертеться?
        Пётр Молчанов
        19 августа 2016, 17:23
        0
        нет. я имею ввиду, что при чистой установке 7ки всё работает по-умолчанию. я сносил 5ку и по чистой установил 7ку. советую снести все версии пхп и на чистую установить 7ку
        З.Ы.: надеюсь, бекапы у вас есть. они всегда должны быть
          Alexey
          19 августа 2016, 17:30
          0
          Без Бэкапов, конечно нельзя.
          попробую
Alexey
19 августа 2016, 22:36
0
Решил затык. не знаю смеяться или плакать. Проблема была в пустяке.
Вощм в конфигах pool.d у меня стояла закомментированная строка со знаком #. вот он и не давал запуститься пхп7. видимо пхп5 допускал такой синтаксис.
во всех конфигах почистил эту строку — всё заработало. пути вроде можно не менять.
    Sergey Pozhidaev
    20 августа 2016, 05:15
    0
    Если бы Алексей внимательно прочитал мою заметку, то и грабель можно было избежать. Может это моя вина что я не разжевал зачем вот эта строка
    и удаляем закоментируемую строку

    #php_admin_value[disable_functions] = exec,passthru
    Ну теперь будете знать
      Alexey
      20 августа 2016, 08:24
      0
      думалось, что суть в операторе строки, а не в символе (хотя… с чего бы?).
      Но спасибо! буду знать )
      Пётр Молчанов
      22 августа 2016, 10:34
      0
      кстати, а у меня вообще этой строки не было почему-то
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
31