Fnankenphp компилируется для поддержки xdebug ⇐ Php
-
Anonymous
Fnankenphp компилируется для поддержки xdebug
Я пытаюсь собрать Frankenphp, чтобы иметь возможность использовать xdebug в своей среде разработки.
Я пытаюсь наполовину следовать этому https://frankenphp.dev/docs/compile/ руководству по компиляции. Разница в том, что я не компилирую PHP с нуля, не уверен, что в этом проблема.
Сейчас я сталкиваюсь с этой ошибкой -
48.49 # github.com/dunglas/frankenphp/caddy/frankenphp 48.49 /usr/local/go/pkg/tool/linux_amd64/link: сбой при запуске gcc: статус выхода 1 48.49 /usr/bin/ld: невозможно найти -lphp: такого файла или каталога нет. 48.49collect2: ошибка: ld вернул 1 статус выхода А вот файл docker, который я использую -
ИЗ Ubuntu:22.04 АРГ WWWGROUP РАБОЧИЙ ПАРАМЕТР /var/www/html ENV DEBIAN_FRONTEND неинтерактивный ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # База ЗАПУСК apt-get update \ && mkdir -p /etc/apt/keyrings \ && apt-get install -y gnupg gosu curl ca-certificates zip unzip git Supervisor sqlite3 libcap2-bin libpng-dev python2 dnsutils librsvg2-bin fswatch nginx cron tar build-essential \ libbrotli-dev libsodium-dev libargon2-dev libxml2-dev bison re2c pkg-config libssl-dev libcurl4-openssl-dev libjpeg-dev libfreetype6-dev libsqlite3-dev libonig-dev # PHP ЗАПУСТИТЬ Curl -sS 'https://keyserver.ubuntu.com/pks/lookup ... aae5267a6c' | gpg --дермор | тройник /etc/apt/keyrings/ppa_ondrej_php.gpg > /dev/null \ && echo "deb [signed-by=/etc/apt/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ ppa_ondrej_php.list \ && завиток -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --дермор | тройник /etc/apt/keyrings/pgdg.gpg >/dev/null \ && echo "deb [signed-by=/etc/apt/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list. d/pgdg.list \ && apt-get update \ && apt-get install -y php8.3 php8.3-cli php8.3-dev \ php8.3-pgsql php8.3-sqlite3 php8.3-gd \ php8.3-curl \ php8.3-imap php8.3-mbstring \ php8.3-xml php8.3-zip php8.3-bcmath php8.3-soap \ php8.3-intl php8.3-readline \ php8.3-ldap \ php8.3-msgpack php8.3-igbinary php8.3-redis \ php8.3-memcached php8.3-pcov php8.3-imagick php8.3-xdebug \ && завиток -sLS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer \ && apt-get install -y postgresql-client-$POSTGRES_VERSION # Перейти на язык для Frankenphp ЗАПУСТИТЬ Curl -LO https://golang.org/dl/go1.22.0.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz ENV PATH=$PATH:/usr/local/go/bin ENV GOPATH=/go ENV PATH=$PATH:$GOPATH/bin # Франкенphp ЗАПУСТИТЬ Curl -L https://github.com/dunglas/frankenphp/a ... ain.tar.gz | смола хз \ && cd Frankenphp-main/caddy/frankenphp \ && CGO_CFLAGS="$(php-config --includes)" CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" go build Это урезанная версия докера Laravel Sail, так как мне не кажется, что все, что будет после этого, актуально.
Я пытался добавить -L/usr/lib/php/20230831 -lphp в CGO_LDFLAGS в надежде, что это решит проблему, но это не помогло. Я покопался в контейнере, и кажется, что libphp там нет. Так может быть дело в этом? Но я не могу найти никакой информации о том, что мне следует добавить дополнительно, чтобы «установить» его. Насколько я знаю, php8.3-dev должен добавить это?
Я пытаюсь собрать Frankenphp, чтобы иметь возможность использовать xdebug в своей среде разработки.
Я пытаюсь наполовину следовать этому https://frankenphp.dev/docs/compile/ руководству по компиляции. Разница в том, что я не компилирую PHP с нуля, не уверен, что в этом проблема.
Сейчас я сталкиваюсь с этой ошибкой -
48.49 # github.com/dunglas/frankenphp/caddy/frankenphp 48.49 /usr/local/go/pkg/tool/linux_amd64/link: сбой при запуске gcc: статус выхода 1 48.49 /usr/bin/ld: невозможно найти -lphp: такого файла или каталога нет. 48.49collect2: ошибка: ld вернул 1 статус выхода А вот файл docker, который я использую -
ИЗ Ubuntu:22.04 АРГ WWWGROUP РАБОЧИЙ ПАРАМЕТР /var/www/html ENV DEBIAN_FRONTEND неинтерактивный ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # База ЗАПУСК apt-get update \ && mkdir -p /etc/apt/keyrings \ && apt-get install -y gnupg gosu curl ca-certificates zip unzip git Supervisor sqlite3 libcap2-bin libpng-dev python2 dnsutils librsvg2-bin fswatch nginx cron tar build-essential \ libbrotli-dev libsodium-dev libargon2-dev libxml2-dev bison re2c pkg-config libssl-dev libcurl4-openssl-dev libjpeg-dev libfreetype6-dev libsqlite3-dev libonig-dev # PHP ЗАПУСТИТЬ Curl -sS 'https://keyserver.ubuntu.com/pks/lookup ... aae5267a6c' | gpg --дермор | тройник /etc/apt/keyrings/ppa_ondrej_php.gpg > /dev/null \ && echo "deb [signed-by=/etc/apt/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ ppa_ondrej_php.list \ && завиток -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --дермор | тройник /etc/apt/keyrings/pgdg.gpg >/dev/null \ && echo "deb [signed-by=/etc/apt/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list. d/pgdg.list \ && apt-get update \ && apt-get install -y php8.3 php8.3-cli php8.3-dev \ php8.3-pgsql php8.3-sqlite3 php8.3-gd \ php8.3-curl \ php8.3-imap php8.3-mbstring \ php8.3-xml php8.3-zip php8.3-bcmath php8.3-soap \ php8.3-intl php8.3-readline \ php8.3-ldap \ php8.3-msgpack php8.3-igbinary php8.3-redis \ php8.3-memcached php8.3-pcov php8.3-imagick php8.3-xdebug \ && завиток -sLS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer \ && apt-get install -y postgresql-client-$POSTGRES_VERSION # Перейти на язык для Frankenphp ЗАПУСТИТЬ Curl -LO https://golang.org/dl/go1.22.0.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz ENV PATH=$PATH:/usr/local/go/bin ENV GOPATH=/go ENV PATH=$PATH:$GOPATH/bin # Франкенphp ЗАПУСТИТЬ Curl -L https://github.com/dunglas/frankenphp/a ... ain.tar.gz | смола хз \ && cd Frankenphp-main/caddy/frankenphp \ && CGO_CFLAGS="$(php-config --includes)" CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" go build Это урезанная версия докера Laravel Sail, так как мне не кажется, что все, что будет после этого, актуально.
Я пытался добавить -L/usr/lib/php/20230831 -lphp в CGO_LDFLAGS в надежде, что это решит проблему, но это не помогло. Я покопался в контейнере, и кажется, что libphp там нет. Так может быть дело в этом? Но я не могу найти никакой информации о том, что мне следует добавить дополнительно, чтобы «установить» его. Насколько я знаю, php8.3-dev должен добавить это?
Мобильная версия