Обновление php

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-16 13:52:51

Всем салют!
Если кратко - я пытаюсь обновить php с 5.6 на 7.* (пробовала на 7.0 и 7.2). Но увы у меня постоянно возникают моменты которые я не понимаю. Текущие не разрешенные вопросы:
1. Почему после команды sudo pkg install php70 и загрузкой без проблем новой версии php - в папке usr/local/etc файлы php.ini не удалился, php.ini-development остался старым. Ведь далее надо сохранить новый файл php.ini, а он остался от предыдущей версии php?
2. В файле /usr/local/etc/apache24/httpd.conf вообще надо же поменять строку LoadModule php5_module на libexec/apache24/libphp5.so но изначально в папке libexec такого файла вообще нет
3. Когда обновили php идет замечание - допиши в конфиг апача строки
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

но они там уже были. В чем проблема то?



У меня стоит/используется FreeBSD 10.1, Apache 2.4, PHP 5.6.16 + PHP-FPM
Какой мой план обновления:
1. Сначала я сохраняю всякие конфиги - чтобы потом знать, что да как восстановить (Самое важное - php.ini - usr/local/etc, httd.conf - usr/local/etc/apache24)
2. По команде php -m - запоминаю все используемые модули/пакеты
3. По команде sudo pkg install php70 - загружаю новый php (и далее pkg install php70-extensions итп разные необходимые модули)
4. В конфиге апача нужно подправить строку с LoadModule на 7 php
5. Перезапустить апач командой sudo service pache24 restart

Да я встречала такие пункты в инете как sysrc php_fpm_enable = YES - но опять же они после обновления php никуда не пропали - так зачем их вписывать

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

Обновление php

Непрочитанное сообщение guest » 2019-07-16 17:54:31

rose8mimi » 2019-07-16 13:52:51
Всем салют!
Если кратко - я пытаюсь обновить php с 5.6 на 7.* (пробовала на 7.0 и 7.2). Но увы у меня постоянно возникают моменты которые я не понимаю. Текущие не разрешенные вопросы:
1. Почему после команды sudo pkg install php70 и загрузкой без проблем новой версии php - в папке usr/local/etc файлы php.ini не удалился, php.ini-development остался старым. Ведь далее надо сохранить новый файл php.ini, а он остался от предыдущей версии php?
потому что в пакете нет php.ini, его создают самостоятельно на базе php.ini-development или php.ini-production
# cp php.ini-production php.ini
# vi php.ini
2. В файле /usr/local/etc/apache24/httpd.conf вообще надо же поменять строку LoadModule php5_module на libexec/apache24/libphp5.so но изначально в папке libexec такого файла вообще нет
Столько лет прошло, что всего и не упомнишь:
#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule php7_module libexec/apache24/libphp7.so
3. Когда обновили php идет замечание - допиши в конфиг апача строки
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
но они там уже были. В чем проблема то?
стандартное напоминание

Это не Linux, в xBSD все дополнительные настройки после установки из портов
или пакетов, выполняются и подкручиваются самостоятельно.
У меня стоит/используется FreeBSD 10.1, Apache 2.4, PHP 5.6.16 + PHP-FPM
https://www.freebsd.org/releases/ - supported & unsupported releases
EOF - не поддерживается и свежие пакеты для 10.x не выпускаются полгода:
http://pkg.freebsd.org/
Какой мой план обновления:
1. Сначала я сохраняю всякие конфиги - чтобы потом знать, что да как восстановить (Самое важное - php.ini - usr/local/etc, httd.conf - usr/local/etc/apache24)
2. По команде php -m - запоминаю все используемые модули/пакеты
3. По команде sudo pkg install php70 - загружаю новый php (и далее pkg install php70-extensions итп разные необходимые модули)
4. В конфиге апача нужно подправить строку с LoadModule на 7 php
5. Перезапустить апач командой sudo service pache24 restart

Да я встречала такие пункты в инете как sysrc php_fpm_enable = YES - но опять же они после обновления php никуда не пропали - так зачем их вписывать
# less /usr/ports/UPDATING

На текущий момент в СВЕЖИХ портах default_php = 7.2

httpd.conf можно использовать сократить до минимума, все остальное делать
через Include, например:

Код: Выделить всё

# grep ^Include /usr/local/etc/apache24/httpd.conf
IncludeOptional etc/apache24/modules.d/[0-9][0-9][0-9]_*.conf
Include etc/apache24/extra/httpd-autoindex.conf
Include etc/apache24/extra/httpd-languages.conf
Include etc/apache24/Includes/*.conf
# ls -la /usr/local/etc/apache24/Includes/
total 32
drwxr-xr-x  2 root  wheel   512 Jul  8 12:01 .
drwxr-xr-x  6 root  wheel   512 Jun 28 17:24 ..
-rw-r--r--  1 root  wheel   305 Feb 12  2018 mod_php.conf
-rw-r--r--  1 root  wheel   305 Feb  7 14:59 mod_php7.conf
-rw-r--r--  1 root  wheel    89 Jun 20 06:24 no-accf.conf
-rw-r--r--  1 root  wheel  2698 Sep 25  2018 phpmyadmin.conf
-rw-r--r--  1 root  wheel   226 Jul  8 12:12 rainloop.conf
-rw-r--r--  1 root  wheel  1884 Feb  7 15:05 roundcube.conf
#
Даже если Вы и обновите пакеты, это будет Ваше последнее обновление, пакеты
для 10.x уже давно не собираются.
Обновляйте ОС, как минимум до 11.3.

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Обновление php

Непрочитанное сообщение lazhu » 2019-07-16 17:59:28

В апаче надо прописать LoadModule php7_module на libexec/apache24/libphp7.so
Если он не установлен, можно собрать его из портов www/mod_php72
Инфа про добавление строк в апач всегда показывается при установке пыха. Если раньше уже было настроено, нчего менять не надо
Дефолтный php.ini можете заменить на свой прежний, только не забудьте отредактировать в нем include_path, так чтобы он содержал путь к либам текущей сборки (например, /usr/local/lib/php/20170718 для php 7.2)

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-17 7:10:55

Спасибо за ответ!
Позвольте уточнить
на базе php.ini-development или php.ini-production
но файлы php.ini-development/production также не обновились - стояла давняя дата обновления файлов (да, я в курсе что файлы заменяются - и далее необходимо отредактировать ini под себя - поэтому сохраняя прошлую версию - чтобы было на что равняться)

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-17 7:17:33

Спасибо за ответ!
lazhu писал(а):
2019-07-16 17:59:28
собрать его из портов www/mod_php72
Я правильно понимаю, что установить могу через команду sudo install mod_php70
Дефолтный php.ini можете заменить на свой прежний
Но файлы php.ini-development/production остались прежними - это ок? разве они не должны были обновиться под новую версию php

guest
проходил мимо

Обновление php

Непрочитанное сообщение guest » 2019-07-17 9:54:16

rose8mimi » 2019-07-17 7:17:33
Спасибо за ответ!

lazhu писал(а): ↑
2019-07-16 17:59:28
собрать его из портов www/mod_php72

Я правильно понимаю, что установить могу через команду sudo install mod_php70
нет не правильно.
# sudo make -C /usr/port/www/mod_php70/ install
Но файлы php.ini-development/production остались прежними - это ок? разве они не должны были обновиться под новую версию php
должны, если эти шаблоны отличаются от шаблонов других версий.

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 8:23:35

Если кто-то еще сталкивался с проблемой как у меня - рассказываю как все вышло
Обновилась с php 5.6.16.-7.2.10
1. запомните все используемые модули командой php -m
2. sudo pkg install php72
3. sudo pkg install mod_php72
4. sudo pkg install php72-extensions
+ у меня было куча разных модулей (установила не все, т.к. их уже нет - ereg, mcrypt, mhash, mysql. Но у меня все ок, работает пока что - чуть позже буду их искать в коде и смотреть как нужно править чтобы не было проблем)
5. sudo vi /usr/local/etc/apache24/httpd.conf
Комментируем строку символом #LoadModule php5_module libexec/apache24/libphp5.so и у меня например появилось автоматом LoadModule php7_module libexec/apache24/libphp7.so - если нету - вписать.
6. sudo service apache24 restart

Проверяла себя по phpinfo(), возникали такие трудности как сначала не все модули доустановила, после доустановки - обязательно нужно преезапустить апач, еще была проблема с конфигом - он у меня каким то чудом раскомментил 5 версию и строка встала после 7ой, и 7ую он сам добавил - так несколько раз заходила в конфиг и перезапускала.
Проверяла себя во время выполнения команд запуская команды php -v (это версия php) и перезапуск апача - они у меня не выполнялись, когда были ошибки в моделях или конфигах.

Файлы php.ini я не меняла. У меня они не пересоздавались и я их не трогала.

В случае установки через pkg (и выполнения команды sudo install mod_php70) нет необходимости в команде # sudo make -C /usr/port/www/mod_php70/ install и папках /usr/ports/lang и /usr/ports/www - нет папок для нового php, потому что они там должны быть когда установка идет через порты - я устанавливала все используя pkg (!!!).

Всем удачи!

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Обновление php

Непрочитанное сообщение lazhu » 2019-07-18 9:09:45

rose8mimi, так в чем проблема-то? Строка загрузки модуля добавляется в httpd.conf при установке модуля. Если она там есть, значит все ок. Перезапускайте апач и проверяйте все, что у вас там на пыхе. Смотрите на ошибки, и что соответственно надо доустановить. Пятый пых и mod_php5 можно (нужно) удалить

Код: Выделить всё

pkg info | grep php5 | awk '{print $1}' | while read line; do pkg delete $line; done

snorlov
подполковник
Сообщения: 3846
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Обновление php

Непрочитанное сообщение snorlov » 2019-07-18 9:26:56

rose8mimi,
когда вы делаете через pkg у вас скачиваются бинарные пакеты с дефолтными настройками, а через make вы комплируете исходники при этом вы можете и изменить настройки, и самое главное, версии софта в портах может отличаться от версии уже скомпиленного софта

guest
проходил мимо

Обновление php

Непрочитанное сообщение guest » 2019-07-18 11:50:33

В случае установки через pkg (и выполнения команды sudo install mod_php70) нет необходимости в команде # sudo make -C /usr/port/www/mod_php70/ install и папках /usr/ports/lang и /usr/ports/www - нет папок для нового php, потому что они там должны быть когда установка идет через порты - я устанавливала все используя pkg (!!!).
опять 25'ть, ничего не произойдет в случае выполнения:

# sudo install mod_php70

если Вы говорите о пакетном менеджере, то

# sudo pkg install mod_php70

Чтобы Вы могли различать, есть утилита install:
# which install
/usr/bin/install
#
а есть утилита pkg - пакетный менеджер:
# which pkg
/usr/local/sbin/pkg
#

Понятно что можно очепяться и тд и тп, но не два же раза, найдите отличие:
# sudo install mod_php70
# sudo pkg install mod_php70

ps. Можно выполнять php -m, но если уж используете пакетный менеджер, лучше
оперировать им:
# pkg info | grep php

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 12:51:28

Я и не говорю что выполняла sudo install mod_php70. Я использовала sudo pkg install mod_php70
guest писал(а):
2019-07-18 11:50:33
ничего не произойдет в случае выполнения:

# sudo install mod_php70
посмотрела что установлено - mod_php72-7.2.10 (это и есть результат от sudo pkg install mod_php70)

Извините меня, если я вас злю своим непониманием дела.
команда
нет не правильно.
# sudo make -C /usr/ports/www/mod_php70/ install
у меня не сработала - возможно потому что нет папки mod_php70, или дело в make - я им не пользовалась пока что на данном сервисе, и не знакома с её действиями итп. Когда спросила сис.админа (или техно-чела по сервису, по вопросам безоп.) - сказал используй pkg.
Работаю с данным сервисом пару месяцев.
Обновления делаю вынужденно.
Можешь, не можешь - ставь. Вот и учусь на лету.

Буду рада если раскроете мне эту тему поглубже или хотя бы донесете свою мысль - к сожалению, я вас не могу понять.

Что я пока что поняла что можно устанавливать используя пакетный менеджер - pkg ИЛИ через порты.
Понятно что можно очепяться и тд и тп, но не два же раза, найдите отличие:
# sudo install mod_php70
# sudo pkg install mod_php70
Разницу вижу- pkg. Но пока не понимаю к чему это.....

Эту часть тоже сложно переварила
ps. Можно выполнять php -m, но если уж используете пакетный менеджер, лучше
оперировать им:
# pkg info | grep php
Я попробовала # pkg info | grep php - я так понимаю это все что у меня установлено на сервере связанное с php
Вложения
1111111111111111.PNG

snorlov
подполковник
Сообщения: 3846
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Обновление php

Непрочитанное сообщение snorlov » 2019-07-18 13:10:42

rose8mimi писал(а):
2019-07-18 12:51:28
Что я пока что поняла что можно устанавливать используя пакетный менеджер - pkg ИЛИ через порты.

Понятно что можно очепяться и тд и тп, но не два же раза, найдите отличие:
# sudo install mod_php70
# sudo pkg install mod_php70

Разницу вижу- pkg. Но пока не понимаю к чему это.....
У pkg есть команда install, т.е. ключ, и есть исполняемый файл install, вы попробуйте man pkg и man install и все станет ясно...

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 13:35:55

snorlov писал(а):
2019-07-18 13:10:42
вы попробуйте man pkg и man install и все станет ясно
Спасибо за новую для меня команду man - поняла что это что то вроде help-а, который я искала тк простой help не сработал.
Поняла что pkg как бы руки, мозг, инструмент, делает действие как установка.
А install - просто копирует файлы - как бы обращаясь в репозиторий и скачавая, то есть без pkg не устанавливает

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Обновление php

Непрочитанное сообщение lazhu » 2019-07-18 14:30:24

rose8mimi писал(а):
2019-07-18 12:51:28
это все что у меня установлено на сервере связанное с php

Код: Выделить всё

pkg delete mod_php56
и будет вам щасстье

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 15:32:19

lazhu писал(а):
2019-07-18 14:30:24
и будет вам щасстье
почему он мешает? он не идет как аппендицит???

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Обновление php

Непрочитанное сообщение lazhu » 2019-07-18 15:34:06

я так понял, что вас смущает строчка про mod_php5 в конфиге апача. если удалить модуль, она пропадет

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 15:40:10

Можно здесь задам еще вопрос - в процессе установки php у меня был удален phpMyAdmin. Я его установила (как можно увидеть по скрину выше) - но он не работает (авторизация идет без ошибок но потом страница просто мигает/обновляется и все). Смотрела в сети что нужно менять конфиг phpMyAdmin - у меня старый был, ничего не обновляла. В конфигах апача он тоже уже был:

Код: Выделить всё

Alias /phpmyadmin "/usr/local/www/phpMyAdmin/"
<Directory "/usr/local/www/phpMyAdmin/">
  Options None
  AllowOverride Limit

  Require all granted
  #Require local
  #Require host .example.com
</Directory>
строки с Require пробовала раскомментить (вычитала из сети) но ничего не дало

Что не так делаю?

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-18 15:42:16

lazhu писал(а):
2019-07-18 15:34:06
смущает строчка про mod_php5 в конфиге апача
не совсем, меня смущал факт отсутствия папок для нового php в папках ports - но так как установка была используя pkg - поняла что все ок.

Сейчас php и его работа мне норм)

snorlov
подполковник
Сообщения: 3846
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Обновление php

Непрочитанное сообщение snorlov » 2019-07-18 15:43:58

lazhu писал(а):
2019-07-18 15:34:06
я так понял, что вас смущает строчка про mod_php5 в конфиге апача. если удалить модуль, она пропадет
удалить надо строчку из конфига и апач его не будет грузить, а если просто удалить, то траблы со стартом апача обеспечены...

snorlov
подполковник
Сообщения: 3846
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Обновление php

Непрочитанное сообщение snorlov » 2019-07-18 15:48:18

rose8mimi писал(а):
2019-07-18 15:42:16
lazhu писал(а): ↑
18 июл 2019 17:34
смущает строчка про mod_php5 в конфиге апача

не совсем, меня смущал факт отсутствия папок для нового php в папках ports - но так как установка была используя pkg - поняла что все ок.

Сейчас php и его работа мне норм)
Разбирайтесь с пакетами и портами, у pkg есть свой конфиг(pkg.conf), в котором вы можете прописать репозитарий, причем даже созданный вами, ну и порты тоже обновляются, man portsnap

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Обновление php

Непрочитанное сообщение lazhu » 2019-07-18 15:55:53

snorlov, насколько я помню, при установке/удалении модуля скрипт добавляет/удаляет строку из httpd.conf
rose8mimi,

Код: Выделить всё

cd /usr/ports
portsnap fetch update
Это конечно большое ИМХО, но установка софта через pkg не торт ;)
Порты требуют времени на сборку, и проблемы во время самой сборки так же могут иметь место, но все это перевешивается огромной гибкостью системы.

guest
проходил мимо

Обновление php

Непрочитанное сообщение guest » 2019-07-18 19:01:51

rose8mimi » 2019-07-17 7:17:33
Спасибо за ответ!
lazhu писал(а): ↑
2019-07-16 17:59:28
собрать его из портов www/mod_php72
Я правильно понимаю, что установить могу через команду sudo install mod_php70
см выше, это Вы писали, команду я выделил жирным.
Постарайтесь читать внимательно и вдумчиво, тогда будет приходить осознание
и понимание.

Чтобы не писать вхолостую, ибо много чего уже написано... задам вопрос,

"Зачем Вам это нужно?"

Ниже два варианта ответа:
1. Это моя работа и далее я планирую этим заниматься.
2. Это практика, курсовая и тд и тп, сделаю, сдам и забуду.

Если ответ п.1 - то курс "молодого бойца", который расчитан примерно на 1 месяц,
в форуме, Вам никто не распишет, ибо нужно написать целую книгу, я понятно излагаю?

Если п.2 - вообще нет смысла что-то расписывать, а Вам соответственно вникать.

Мысль понятна?
Если "да", Ваш ответ?

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-19 7:29:33

guest писал(а):
2019-07-18 19:01:51
Мысль понятна?
Да мысль понятна.

1 - это моя работа) понимаю что здесь очень много тем, нюансов. Но сдаваться не буду)
см выше, это Вы писали, команду я выделил жирным.
я поняла вас. Да. Но потом я изложила ниже - действия которые как мне кажется привели меня более менее к нужному.

Спасибо!

rose8mimi
рядовой
Сообщения: 21
Зарегистрирован: 2019-07-16 13:34:12

Обновление php

Непрочитанное сообщение rose8mimi » 2019-07-19 7:30:34

snorlov писал(а):
2019-07-18 15:43:58
удалить надо строчку из конфига
закомментировать ведь тоже вариант?

guest
проходил мимо

Обновление php

Непрочитанное сообщение guest » 2019-07-19 10:39:52

rose8mimi » 2019-07-19 7:29:33
guest писал(а): ↑
2019-07-18 19:01:51
Мысль понятна?
Да мысль понятна.
1 - это моя работа) понимаю что здесь очень много тем, нюансов. Но сдаваться не буду)
ok, тогда такие вопросы:
- сервер о которым Вы пишете - боевой или Вы можете на нем экспериментировать?
- есть время простоя или все должно работать без простоя?
- cколько времени Вы уже выполняете апгрейд ПО?
- опыт работы с другими Unix-like OS есть? Ну к примеру с Linux?

К чему эти вопросы?
К тому что Вы не сможете больше обновлять ПО через апгрейд пакетов, об этом было
сказано с самого начала и даны ссылки по которым это можно было увидеть.

Из этого возникает вопрос, что будете делать дальше, когда потребуется
новое обновление ибо php70 уже EOL, да и обновили старые версии ПО на
другие относительно "старые" версии.