LINUX.ORG.RU

Установка PHP

 ,


0

2

Доброго времени суток! Помогите пожалуйста, не могу разобраться, как апгрейдить версию PHP. Есть NAS DLINK DNS-325. Установлен fun_plug 0.7 и lighttpd 1.4.32. С помощью Slacker (funpkg) ставлю PHP. Выбираю версию 5.4.19-arm-2. Установка проходит успешно, открываю страницу с phpinfo() - пишет php версия 5.2.17. Удаляю пакет с помощью того же slacker'a и удаляю php.ini. Страница с phpinfo() всё равно открывается и версия та же 5.2.17. Пробую запустить phpmyadmin 4-й версии он тоже не запускается из-за низкой версии PHP. Подскажите, как правильно снести старую версию и поставить 5.4. Спасибо.

Ответ на: комментарий от alex870

а что там за дистр? пакетный менеджер предусмотрен?

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

anonymous
()
Ответ на: комментарий от anonymous

Ну конечно. Я же пишу - о funpkg. Есть ещё ipkg. Оба показывают, что пакеты php отсутствуют, однако php работает, блин...:) Как его ручками найти и прибить?

alex870
() автор топика
Ответ на: комментарий от Balantay

Такой команды не было. Поставил, вот: root@DLINK:~# which php /usr/bin/php root@DLINK:~# which php5 which: no php5 in /opt/sbin:/opt/bin:/ffp/sbin:/usr/sbin:/sbin:/ffp/bin:/usr/bin:/bin)

alex870
() автор топика
Ответ на: комментарий от alex870

Очень странно.
fun_plug был изначально или ставился отдельно ? Тут, к примеру, пишут что должна быть директория.

А если updatedb && locate ffp ?

Balantay
()
Ответ на: комментарий от Balantay

Не, это пятый, а я установил 7-й. Конечно установил сам. После установки php не работает, но когда ставлю пакадж появляется phpinfo с версией 5.2.17. Я думаю, что эта версия стоит на родном сервере lighttpd. Дело в том, что у меня запущено 2 сервера. Один родной из ППЗУ NAS'а, второй из fun_plug. Ну это Вы наверное из без меня понимаете. Просто мне кажется, что phpinfo берет информацию из /user/php, а это папка родного сервера.

alex870
() автор топика
Ответ на: комментарий от alex870

Кстати, огромное спасибо, что пытаетесь мне помочь!

alex870
() автор топика
Ответ на: комментарий от alex870

Как я понял, сейчас пакет установлен, но phpinfo говорит что версия не та.

На самом деле, это достаточно просто проверить, просто вбить в консоль /usr/bin/php -v. Кроме того, можно снести пакет и проверить, исчезнет ли файл /usr/bin/php.

Если версия файла старая и он исчезнет - проблема в самом пакете.
Если версия нужная и исчезнет - проблема в настройках lighthttpd
Если же файл не исчезнет - то стоит поставить пакет обратно и поискать, какие php вообще есть в системе (updatedb && locate php)

Balantay
()
Ответ на: комментарий от Balantay

Спасибо.
Пробую разобраться с Вашими рекомендациями.
1. Нет, пакеты PHP сейчас не установлены, по крайней мере так говорят пакетные менеджеры funpkg и ipkg.
2. Однако phpinfo говорит об обратном: установлена версия 5.2.17, что подтверждает команда

/usr/bin/php -v

У меня запущенно 2 процесса lighttpd. Один родной (из прошивки хранилища). Он со всеми своими настройками и пакетами копируется при старте из ППЗУ в память. Я думаю, что директория /usr его.
Другой запущен из под fun_plug 0.7. Все его пакеты лежат где-то /ffp/...
Я устанавливаю пакет 5.4.19-arm-2, он скорее всего корректно устанавливается, однако phpinfo видит версию родного php из /usr/bin, ну это конечно мои домыслы, я пока в архитектуре linux не силен. Кроме phpinfo старую версию php видит и phpmyadmin. И самое главное, что не важно установлены пакеты или нет. Всё равно и phpinfo и phpmyadmin видят только версию 5.2.17.
Я конечно могу попробовать удалить php из папки /usr/bin, но что то мне подсказывает, что в лучшем случае её восстановит родной загрузчик при следующем рестарте, а в худшем - перестанет работать родной интерфейс.

alex870
() автор топика
Ответ на: комментарий от alex870

Сейчас php установлен funplug-ом ?
Если нет - нужно поставить.

После этого выполнить updatedb && locate php

Когда таким образом будет установлено, куда распаковывает пакет funplug, можно попробовать подменить родной php. Я не уверен, будет ли оно работать корректно, но всегда ведь можно откатиться.

Balantay
()
Ответ на: комментарий от Balantay

Спасибо, вечером попробую, сейчас на работе, а SSH снаружи закрыт.

Правильно ли я понял вот это:

Когда таким образом будет установлено, куда распаковывает пакет funplug, можно попробовать подменить родной php.

Т.е. достаточно просто подменить php, нигде больше ничего прописывать не нужно, ну там конфигурационные файлы?

alex870
() автор топика
Ответ на: комментарий от alex870

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

Balantay
()
Ответ на: комментарий от Balantay

Попробовал поставить другой пакадж php 5.6.x (не помню последнюю цифру).
Теперь команда which php возвращает /ffp/bin/php
А в /usr/bin тоже симлинк на /usr/local/modules/php Её надо менять на /ffp/bin/php?

alex870
() автор топика
Ответ на: комментарий от Balantay

К сожалению поменялось (.
Содержимое этой директории грузится из ППЗУ. Может как-то можно объяснить моему экземпляру lighttpd, что php надо искать там, где его ищет which php?

alex870
() автор топика
Ответ на: комментарий от Balantay

Первая команда говорит, что нет такой директории...
В общем вот все:

root@DLINK:~# ls /etc/lighthttpd
ls: cannot access /etc/lighthttpd: No such file or directory
root@DLINK:~# ls /etc
NAS_CFG                    localnet             resolv.conf
avahi                      localtime            s3.conf
blockip                    macaddr              samba
certificate_https_all.pem  machine-id           save_udhcpd_config
codepage                   mail_event_conf.xml  scsi
dbus-1                     mdadm.conf           services
exports                    mediatype.spec       shadow
ez-ipupdate.cache          model                shared_name
ez-ipupdate.conf           mt-daapd.conf        shells
ez-ipupdate.old            mtab                 sms_conf.xml
fstab                      netatalk             ssh
gid                        nsswitch.conf        ssl
gogoc.conf                 pam.d                syslog.conf
group                      passwd               template
hosts                      passwd.webdav        udhcpd.conf
hotplug                    php                  udhcpd.conf.def
icon.ico                   protocols            uid
iconv_table                quota                wide-dhcpv6
inittab                    rc.d
lighttpd                   rc.sh
root@DLINK:~# locate fastcgi.conf
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/share/doc/lighttpd/config/conf.d/fastcgi.conf
root@DLINK:~#
Последняя находит fastcgi в копии, которую я сделал перед переустановкой сервера. Может что-то надо скопировать из архива? Но fastcgi сейчас работает, но с версией 5.2.17

alex870
() автор топика
Ответ на: комментарий от Balantay

конфиги в etc конечно, в смысле lighttpd.conf?

alex870
() автор топика
Ответ на: комментарий от Balantay

Не сразу обратил внимание, что Вы с ошибкой написали lighttpd, просто скопировал Вашу команду.
Вот:

root@DLINK:~# ls /etc/lighttpd
lighttpd.conf  mimetypes
root@DLINK:~#

alex870
() автор топика
Ответ на: комментарий от Balantay

А тут нельзя файлы прикреплять?
Я не знаю как их здесь разместить, подскажите пожалуйста. Текст в сообщение вставлять - получится на 3 листа.

alex870
() автор топика
Ответ на: комментарий от alex870

В lighttpd.conf этот кусок:

 fastcgi.server             = ( ".php" =>
                                ( "localhost" =>
                                  (
                                    "socket" => "/tmp/php-fcgi.sock",
                                    "bin-path" => "/opt/bin/php-fcgi",
                                    "bin-environment" => ( "PHP_FCGI_CHILDREN" => "0",
                                    "PHP_FCGI_MAX_REQUESTS" => "4000" ),
                                    "max-procs" => "1"
                                  )
                                )
                             )

Тут стоит поиграться с параметром bin-path.

locate php-fcgi - посмотрим что у нас есть из вариантов

Balantay
()
Ответ на: комментарий от Balantay
root@DLINK:~# locate php-fcgi
/mnt/HD/HD_a2/ffp/opt/optware/bin/php-fcgi
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/bin/php-fcgi
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/etc/lighttpd/conf.d/10-php-fcgi.conf
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/lib/ipkg/info/php-fcgi.conffiles
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/lib/ipkg/info/php-fcgi.control
/mnt/HD/HD_a2/Temp/archive/ffp/opt/optware/lib/ipkg/info/php-fcgi.list
/opt/bin/php-fcgi
root@DLINK:~#

Вот, ну в основном конечно архив, но я не стал удалять эти строки.

alex870
() автор топика

Ребутни нас после установки нового пхп. Ничего не подменяй. Стпрый удали пакетом.

BaBL ★★★★★
()
Последнее исправление: BaBL (всего исправлений: 1)
Ответ на: комментарий от Balantay

Так это ж одно и тоже!? В смысле /opt/bin/
и
/mnt/HD/HD_a2/ffp/opt/optware/bin/
Ну попробую конечно, но виртуальная директория /opt/bin указывает именно на эту (длинную) директорию.

alex870
() автор топика
Ответ на: комментарий от BaBL

А как старый пакетом удалить? Он зашит в прошивку NAS. И, соответственно, восстановится при рестарте.

alex870
() автор топика
Ответ на: комментарий от alex870

Короче. Пхп у тебя старый, потому что в памяти висит демон, с которым работает вебсервер. Это либо php-fpm, либо модуль вебсервера. После установки нового надо ребутнуть то, что за обработку пхп отвечает.

Замена экзешников тебе ничего не даст, вебсервер их не вызывает при обработке страниц.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Да я уже много раз ребутился после установки. Значит, я понимаю, нужно править fun_plug (загрузчик), чтобы он перед стартом моего пхп убивал все процессы старого (родного). Но я не знаю, как это надо сделать, если я вообще прав...

alex870
() автор топика
Ответ на: комментарий от Balantay

Вот, что мне удалось определить.
php-fcgi, который лежит в /opt/bin/, тоже версии 5.2.17. Так что родной тут ни причем. При установке пакаджа он не обновляется, а phpinfo берет информацию именно из него. Как его заменить? И вообще, может он с пакаджем не идет?

alex870
() автор топика
Ответ на: комментарий от alex870

Тут, скажу честно, понятия не имею. Могу только посоветовать посмотреть в сторону php-fpm, для него будет конфиг типа

fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)

Другие методы прикручивания php через cgi вроде считаются устаревшими, хотя опять же я могу ошибаться

Balantay
()
Ответ на: комментарий от Balantay

Спасибо, что ещё не надоело со мной возится ))
К сожалению ipkg не находит пакетов php-fpm, а php-fcgi только 5.2.17. Я не знаю, как установить php-fpm не из пакетного менеджера.

alex870
() автор топика
Ответ на: комментарий от alex870

Хм. Ну, можно собрать из исходников, но может получиться проблема с тем, что не хватает пакетов для сборки.

А почему, собственно, так критичен lighttpd ? apache чем плох ?

Balantay
()
Ответ на: комментарий от Balantay

Да абсолютно не критичен, мне критична только версия php и версия phpmyadmin. Первая из-за поддержки нужных мне функций должна быть не ниже 5.4, а вторая - хочется 4-ю из-за безопасности. А вообще, если я тут php не могу установить, то с установкой Апача на arm я вообще не справлюсь. Может Вы знаете репозитории, где можно найти свежий php-fcgi?

alex870
() автор топика
Ответ на: комментарий от alex870

Репозитории-то я знаю, и там есть arm пакеты, но это дебиановские репозитории, что здесь очевидно не подходит. Может, конечно, можно попробовать распотрошить deb-пакет, но это весьма заморочно.

А апач есть в пакетах funplug-а ?

Balantay
()
Ответ на: комментарий от alex870

Увы.

Возвращаясь к php. fun_plug собирает php с поддержкой php-fpm, правда я не уверен, работает ли при этом сам fpm.

cat /var/run
locate fpm

Balantay
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.