-
-
Notifications
You must be signed in to change notification settings - Fork 316
Description
I've downloaded and attempted to use a few of the pre-compiled binaries provided in the "Direct Download" section. But attempting to use them ends up having serious failures. I've tried three environments now: Debian, Arch, and a fresh Debian 12 container.
My two problems are:
php -a
cannot be used. It reports "Interactive shell (-a) requires the readline extension.composer
cannot download packages. Curl times out (error 28), but only for HTTPS connections.
❯ ./php --version
PHP 8.4.12 (cli) (built: Sep 1 2025 03:10:49) (NTS gcc 14.2.0)
Copyright (c) The PHP Group
Built by static-php-cli 2.7.2
Zend Engine v4.4.12, Copyright (c) Zend Technologies
with Zend OPcache v8.4.12, Copyright (c), by Zend Technologies
❯ ./php -a
Interactive shell (-a) requires the readline extension.
❯ ./php $(which composer) diagnose
Checking platform settings: OK
Checking git settings: OK git version 2.51.0
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: A connection timeout was encountered. If you intend to run Composer without connecting to the internet, run the command again prefixed with COMPOSER_DISABLE_NETWORK=1 to make Composer run in offline mode.
FAIL
The following exception probably indicates you have misconfigured DNS resolver(s)
[Composer\Downloader\TransportException] curl error 28 while downloading https://repo.packagist.org/packages.json: Resolving timed out after 10000 milliseconds
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.8.11
PHP version: 8.4.12
PHP binary path: REDACTED
OpenSSL version: OpenSSL 3.5.1 1 Jul 2025
curl version: 8.15.0 libz 1.3.1 brotli brotli/1.1.0 zstd missing ssl OpenSSL/3.5.1
zip: extension present, unzip present, 7-Zip not available
The bulk readme, extensions list, and library list all say readline is in there.
The latest action logs show readline is in the list and gets compiled in without issue. And PHP is convinced it's there (below is truncated for brevity):
❯ ./php -i
Build Provider => static-php-cli 2.7.3
Compiler => gcc 14.2.0
Configure Command => './configure' '--prefix=' '--with-valgrind=no' '--disable-shared' '--enable-static' '--disable-all' '--disable-cgi' '--disable-phpdbg' '--enable-cli' '--enable-fpm' '--disable-embed' '--enable-micro=all-static' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-apcu' '--enable-bcmath' '--with-bz2=/app/buildroot' '--enable-calendar' '--enable-ctype' '--with-curl' '--enable-dba' '--enable-dom' '--with-zlib' '--with-zlib-dir=/app/buildroot' '--with-openssl=/app/buildroot' '--with-openssl-dir=/app/buildroot' '--with-event-core' '--with-event-extra' '--with-event-libevent-dir=/app/buildroot' '--with-event-openssl=/app/buildroot' '--enable-event-sockets' '--enable-exif' '--enable-fileinfo' '--enable-filter' '--enable-ftp' '--enable-gd' '--with-freetype' '--with-jpeg' '--with-webp' '--with-gmp=/app/buildroot' '--with-iconv=/app/buildroot' '--with-imagick=/app/buildroot' 'ac_cv_func_omp_pause_resource_all=no' '--with-imap=/app/buildroot' '--with-imap-ssl=/app/buildroot' '--enable-intl' '--enable-mbstring' '--enable-mbregex' '--with-mysqli' '--enable-opcache' '--enable-opcache-jit' '--enable-opentelemetry' '--enable-pcntl' '--enable-pdo' '--with-pdo-mysql' '--with-pgsql=/app/buildroot' '--enable-phar' '--enable-posix' '--enable-protobuf' '--without-libedit' '--with-readline=/app/buildroot' 'ac_cv_lib_readline_rl_pending_input=yes' '--enable-session' '--enable-redis' '--enable-redis-session' '--disable-redis-igbinary' '--disable-redis-msgpack' '--enable-shmop' '--enable-simplexml' '--enable-soap' '--with-sodium' '--with-sqlite3=/app/buildroot' '--enable-swoole' '--enable-swoole-coro-time' '--with-pic' '--disable-swoole-thread' '--enable-thread-context' '--enable-swoole-curl' '--enable-openssl' '--enable-cares' '--enable-brotli' '--with-brotli-dir=/app/buildroot' '--with-nghttp2-dir=/app/buildroot' '--enable-sockets' '--enable-swoole-pgsql' '--enable-mysqlnd' '--enable-swoole-sqlite' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-tokenizer' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-libxml=/app/buildroot' '--with-xsl=/app/buildroot' '--with-zip=/app/buildroot' 'PKG_CONFIG=/app/pkgroot/bin/pkg-config' 'PKG_CONFIG_PATH=/app/buildroot/lib/pkgconfig'
Readline Support => enabled
Readline library => 8.3
❯ ./php -n -m | grep -i readline
readline
❯ echo "<?php var_dump(get_loaded_extensions());" | ./php
array(61) {
...
[42]=>
string(8) "readline"
...
}
I've attempted the fixes listed here - though my issue with SSL seems slightly different - but to no avail. I've tried setting php.ini
options to make sure everything was enabled anyway, but no dice there either.
I also downloaded the action artifacts from Github itself and ran locally, but the same issue persists.
All versions available seem to have this issue, from builds in 2024 to builds in 2025. Curiously, the 8.0.30
build has a separate issue that ./php -a
has no error and, instead, simply locks up; same end result.
What's even more strange is that I can actually use readline from a script and it works fine:
❯ echo "<?php echo readline('TEST >'); " > index.php
❯ ./php index.php
TEST >hi
hi
I apologize if the issue with Composer and the issue with the REPL's readline should be separated - I'm only assuming they're related since both seem like prebuilt extension failures.
Reproduction Steps
curl -fSL https://dl.static-php.dev/static-php-cli/bulk/php-8.4.12-cli-linux-x86_64.tar.gz > php.tar.gz
tar xvf
./php -a