Автор Тема: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)  (Прочитано 1246 раз)

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« : 15.03.2024 12:56:09 »
Не вижу собранного пакета. В репе есть php-cli и php-fpm-fcgi.

Пользуюсь модулем fcgid_module (для него есть пакет). И нечего вкарябать в FcgidWrapper ибо традиционного исполняемого файла нет (в примере он указан как /usr/local/bin/php-cgi).

Что интересно, в devel пакетах есть этот SAPI. Т.е. разрабатывать для него что-то можно. А пользоваться нельзя, т.к. нет собранного бинарного пакета.

Меня вполне устраивает менеджер процессов PHP от этого модуля Apache. Потому в сторону php-fpm не смотрю.

Как можно решить проблему в Альт?

Ну конечно, от безысходности, я могу воспользоваться proxy_fcgi_module и php-fpm. Тем более, для более простого случая настройки прекрасно описаны в статье (у меня nginx -> Apache -> fcgid_module -> PHP).

Но лучше сохранить опыт, приобретенный в работе с такой настройкой еще в ISPManager.

Может можно попросить собрать бинарный пакет для всех версий PHP (думаю, сомнительно, т.к. PHP 7 вообще выкинули из Сизифа, он есть только в P10 сейчас)? А может есть возможность пересобрать из src пакета все, что нужно (опыта нет совсем)?

Судя по вопросам насчет более древней версии PHP, требуется сборка с опцией --enable-fastcgi, чтобы в выдаче php-cgi -v было (cgi-fcgi).

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #1 : 15.03.2024 16:49:31 »
https://packages.altlinux.org/ru/4.0/srpms/php-cgi/
PHP 7 вообще выкинули из Сизифа, он есть только в P10 сейчас)?
в p10 и более старых бранчах есть.
Причина удаления из Сизифа: https://bugzilla.altlinux.org/46908
« Последнее редактирование: 15.03.2024 16:52:33 от gosts 87 »

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #2 : 15.03.2024 17:22:11 »
https://packages.altlinux.org/ru/4.0/srpms/php-cgi/
Спасибо. Версия 4 ...

Но, судя по всему, это единственная отправная точка, если судить по мануалам.
Мне это в разумное время не освоить (высокий порог входа). Требуется четкая инструкция (а это означает на 90% сделать всю работу).

в p10 и более старых бранчах есть.
Заметил. И активно пользуюсь (ну, хотел ...).

Обратил также внимание, что в Debian есть пакеты только дня одной версии PHP (11-я - PHP 7.4, 12-я - PHP 8.2), но есть и php-cgi.
В Альте же есть последние три версии (что очень хорошо), но нет php-cgi (беда).

Так что в мире идеала нету.

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #3 : 15.03.2024 17:26:49 »
Версия 4 ...
Удалили этот пакет оттуда тоже не просто так: https://bugzilla.altlinux.org/13332

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #4 : 15.03.2024 17:34:58 »
Попробуйте скачать дебиановский пакет отсюда и перепаковать:
epm repack php-cgi_8.2+93_all.debот пользователя!!!
« Последнее редактирование: 15.03.2024 17:41:19 от gosts 87 »

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #5 : 15.03.2024 18:38:52 »
Не, не растет кокос ...

Может и можно систему нагнуть (тот же repack сделать со скриптами, ссылок наделать ...), но чем это кончится - неизвестно.

$ epm repack php-cgi_8.2+93_all.deb
Спойлер
Repacking /opt/Install/PHP/php-cgi_8.2+93_all.deb to local rpm format (inside /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir) ...
 $ alien --generate --to-rpm ../php-cgi_8.2+93_all.deb
Warning: alien is not running as root!
Warning: Ownerships of files in the generated packages will probably be wrong.
Warning: Skipping conversion of scripts in package php-cgi: postinst prerm
Warning: Use the --scripts parameter to include the scripts.
 $ /usr/bin/env bash /etc/eepm/repack.d/generic.sh /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93 /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93-2.spec php-cgi /opt/Install/PHP/php-cgi_8.2+93_all.deb
 $ rpmbuild --buildroot /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93 --target x86_64 -bb /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93-2.spec
find-provides: broken symbolic link /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/bin/php-cgi.default -> php-cgi8.2 is not going to provide anything
find-provides: broken symbolic link /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/lib/cgi-bin/php.default -> php8.2 is not going to provide anything
find-provides: broken symbolic link /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/share/man/man1/php-cgi.default.1.gz -> php-cgi8.2.1.gz is not going to provide anything
find-provides: running scripts (alternatives,debuginfo,gir,lib,pam,perl,pkgconfig,python,python3,shell,typelib)
find-requires: running scripts (cpp,debuginfo,files,gir-js,gir-python,gir,lib,nodejs_native,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services,typelib)
symlinks.req: /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/bin/php-cgi.default: /usr/bin/php-cgi8.2 -> /usr/bin/php-cgi8.2 (raw, not installed)
symlinks.req: /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/lib/cgi-bin/php.default: /usr/lib/cgi-bin/php8.2 -> /usr/lib/cgi-bin/php8.2 (raw, not installed)
symlinks.req: /var/tmp/tmp.k79o3u80Mg/php-cgi_8.2+93_all.deb.tmpdir/php-cgi-8.2+93/usr/share/man/man1/php-cgi.default.1.gz: /usr/share/man/man1/php-cgi8.2.1.gz -> /usr/share/man/man1/php-cgi8.2.1.gz (raw, not installed)

Adapted packages:
    /opt/Install/PHP/php-cgi-8.2+93-epm1.repacked.2.x86_64.rpm
# rpm -qlp php-cgi-8.2+93-epm1.repacked.2.x86_64.rpm
Спойлер
/usr/bin/php-cgi.default
/usr/lib
/usr/lib/cgi-bin
/usr/lib/cgi-bin/php.default
/usr/share/doc/php-cgi
/usr/share/doc/php-cgi/changelog.gz
/usr/share/doc/php-cgi/copyright
/usr/share/man/man1/php-cgi.default.1.gz
# apt-get install php-cgi-8.2+93-epm1.repacked.2.x86_64.rpm
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано php-cgi для 'php-cgi-8.2+93-epm1.repacked.2.x86_64.rpm'
Некоторые пакеты установить невозможно. Это может означать, что Вы
потребовали невозможного, либо пользуетесь нестабильным репозиторием.
Часть необходимых пакетов либо ещё не создана, либо была удалена
из каталога 'Входящие'.

Так как для выполнения Вашего запроса достаточно одной операции, то
скорее всего этот пакет просто невозможно установить. Сообщите, пожалуйста,
об этом как о найденной ошибке в пакете.
Эти сведения могут помочь найти выход из ситуации:

Следующие пакеты имеют неудовлетворенные зависимости:
  php-cgi: Depends: /usr/bin/php-cgi8.2 но пакет не может быть установлен
           Depends: /usr/lib/cgi-bin/php8.2 но пакет не может быть установлен
           Depends: /usr/share/man/man1/php-cgi8.2.1.gz но пакет не может быть установлен
E: Извините, `битые' пакеты

Это уже на сервере под root ставил. Там все версии php уже установлены.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #6 : 15.03.2024 18:54:36 »
Есть у меня сборочница в виртуальной машине. Там проделал перепаковку под root.

Содержимое пакета там тоже самое получилось. А скрипты лезут в систему альтернатив, а она не вполне совместима с Альтовской.
Спойлер
# rpm -qp --scripts  php-cgi-7.4+76-epm1.repacked.2.x86_64.rpm
postinstall scriptlet (using /bin/sh):
#!/bin/sh

set -e

if [ "$1" = "configure" ]; then
    update-alternatives \
        --install /usr/bin/php-cgi php-cgi /usr/bin/php-cgi.default 100 \
        --slave /usr/share/man/man1/php-cgi.1.gz php-cgi.1.gz \
        /usr/share/man/man1/php-cgi.default.1.gz

    update-alternatives \
        --install /usr/lib/cgi-bin/php php-cgi-bin /usr/lib/cgi-bin/php.default 100
fi



exit 0
preuninstall scriptlet (using /bin/sh):
#!/bin/sh

set -e

if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
    update-alternatives --remove php-cgi /usr/bin/php-cgi.default
    update-alternatives --remove php-cgi-bin /usr/lib/cgi-bin/php.default
fi



exit 0
Попробовал там с 7.4. С 8.2. картина таже самая.

Кстати, архиватором распаковывал пакет. Там файлы php-cgi.default - это ссылки на php-cgi7.4. А самих этих файлов в пакете нет.

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #7 : 15.03.2024 19:26:24 »
Попробовал для смеха пересобрать для p10 из p4 - как и предполагал, неудачно.
hsh --no-sisyphus-check php-cgi-4.4.7-alt1.src.rpm
<86>Mar 15 16:19:22 userdel[12855]: delete user 'rooter'
<86>Mar 15 16:19:22 groupadd[12860]: group added to /etc/group: name=rooter, GID=501
<86>Mar 15 16:19:23 groupadd[12860]: group added to /etc/gshadow: name=rooter
<86>Mar 15 16:19:23 groupadd[12860]: new group: name=rooter, GID=501
<86>Mar 15 16:19:23 useradd[12864]: new user: name=rooter, UID=501, GID=501, home=/root, shell=/bin/bash
<86>Mar 15 16:19:23 userdel[12870]: delete user 'builder'
<86>Mar 15 16:19:23 userdel[12870]: removed group 'builder' owned by 'builder'
<86>Mar 15 16:19:23 userdel[12870]: removed shadow group 'builder' owned by 'builder'
<86>Mar 15 16:19:23 groupadd[12875]: group added to /etc/group: name=builder, GID=502
<86>Mar 15 16:19:23 groupadd[12875]: group added to /etc/gshadow: name=builder
<86>Mar 15 16:19:23 groupadd[12875]: new group: name=builder, GID=502
<86>Mar 15 16:19:23 useradd[12879]: new user: name=builder, UID=502, GID=502, home=/usr/src, shell=/bin/bash
<13>Mar 15 16:19:31 rpmi: rpm-build-php-8.3-alt1 p10+333316.100.1.1 1698836932 installed
warning: Macro %_php_version not found
error: line 4: Invalid symbol '%' (0x25) in: Version: %_php_version
hsh-rebuild: php-cgi-4.4.7-alt1.src.rpm: failed to fetch build dependencies.
Тупик.

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #8 : 15.03.2024 19:32:51 »
Только просить в Багзилле, чтобы собрали самую свежую версию пакета...

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #9 : 15.03.2024 19:39:21 »
чтобы собрали самую свежую версию пакета...
В самой свежей смысла нет. Не надо и начинать. Нужно для трех актуальных в P10.

Накарябал https://bugzilla.altlinux.org/49714

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 957
  • Дмитрий/Dmitry/德米特里/दिमित्री
Re: P10: Сборка php-cgi (PHP 7, 8.1, 8.2)
« Ответ #10 : 15.03.2024 19:46:26 »
Накарябал https://bugzilla.altlinux.org/49714
Если здесь на форуме заметят, то - хорошо.
А так, надо было на Сизиф баг вешать. Из него проще собрать тем инструментом, которым я пользовался в случае с пакетом из p4.