setup-php-cli (SPC) is a command line utility to run setup-php.
| Host OS/Virtual environment | PHP Supported |
|---|---|
| Ubuntu 24.04 | PHP 5.6 to PHP 8.5 |
| Ubuntu 22.04 | PHP 5.6 to PHP 8.5 |
| Windows with cygwin | PHP 5.6 to PHP 8.5 |
| macOS Sequoia 15.x | PHP 5.6 to PHP 8.5 |
| macOS Sonoma 14.x | PHP 5.6 to PHP 8.5 |
| macOS Ventura 13.x | PHP 5.6 to PHP 8.5 |
- Using composer
composer global require shivammathur/spc
sudo cp $(composer global config home)/vendor/bin/spc /usr/local/bin/spc
sudo chmod a+x /usr/local/bin/spc- Download from Releases
# Download
curl -o /tmp/spc -sL https://github.com/shivammathur/spc/releases/latest/download/spc
# Verify
curl -o /tmp/spc.asc -sL https://github.com/shivammathur/spc/releases/latest/download/spc.asc
curl -o /tmp/key.asc -sL https://github.com/shivammathur.gpg
gpg --import /tmp/key.asc
gpg --verify /tmp/spc.asc /tmp/spc
# Install
sudo mv /tmp/spc /usr/local/bin/spc
sudo chmod a+x /usr/local/bin/spc-p "[PHP Version]", --php-version "[PHP Version]" Specify PHP version (Required if PHP is not installed)
-e "[Extensions]", --extensions "[Extensions]" Specify extensions
-b "[INI File]", --ini-file "[INI Values]" Specify base ini file
-i "[INI Values]", --ini-values "[INI Values]" Specify ini values
-c "[Coverage]", --coverage "[Coverage]" Specify Coverage driver
-t "[Tools]", --tools "[Tools]" Specify tools
-f "[Debug]", --debug "[Debug]" Specify debug flag
-f "[Fail Fast]", --fail-fast "[Fail Fast]" Specify fail-fast flag
-z "[PHP TS/NTS]", --phpts "[PHPTS/NTS]" Specify phpts flag
-u "[Update]", --update "[Update]" Specify update flag
-r "[TAG]", --release "[TAG]" Specify release
-v, --verbose Specify verbose mode
-V, --version Show version of script
-h, --help Show help- Install or switch to a particular PHP version. For example to install
PHP 8.4.
spc -p "8.4"- Install PHP extension, say
intlandxmlonPHP 8.4.
spc -e "intl, xml"- Set the base php.ini file, say set it to
development.
spc -b "development"- Add any configuration to your php.ini, say set timezone to
UTC.
spc -i "date.timezone=UTC"- Set a coverage driver, say
PCOV.
spc -c "pcov"- Install a tool supported by
setup-phpglobally.
spc -t "phpunit"- Setup a debug build of PHP.
spc -p 8.1 -d "true"- Fail if an extension, or a tool does not install.
spc -t "random_tool" -f "true"- Update PHP to the latest patch version.
spc -u "true"- Setup TS/NTS PHP on
Windows. (Not supported currently)
spc -p "8.4" -z "ts"- Use a particular tag/release of
setup-php, say to usev1.
spc -r "v1"- To run
spcin the verbose mode, this will useverbosebranch ofsetup-php.
spc -v- To check options spc supports in command line.
spc -h- To upgrade
spcto latest version.
spc -U- To check
spcversion.
spc -V