mirror of
https://github.com/dunglas/frankenphp.git
synced 2025-12-24 13:38:11 +08:00
feat: add one line install script (#594)
* (feat) adds install.sh CI that auto downloads bin from github releases to current directory * false positive * -k gone * Update README.md * Update README.md * Update install.sh * Update install.sh Co-authored-by: Rob Landers <landers.robert@gmail.com> * cleanup --------- Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> Co-authored-by: Rob Landers <landers.robert@gmail.com>
This commit is contained in:
16
README.md
16
README.md
@@ -34,18 +34,28 @@ Go to `https://localhost`, and enjoy!
|
||||
### Standalone Binary
|
||||
|
||||
If you prefer not to use Docker, we provide standalone FrankenPHP binaries for Linux and macOS
|
||||
containing [PHP 8.3](https://www.php.net/releases/8.3/en.php) and most popular PHP extensions: [Download FrankenPHP](https://github.com/dunglas/frankenphp/releases)
|
||||
containing [PHP 8.3](https://www.php.net/releases/8.3/en.php) and most popular PHP extensions.
|
||||
|
||||
On Windows, use [WSL](https://learn.microsoft.com/windows/wsl/) to run FrankenPHP.
|
||||
|
||||
[Download FrankenPHP](https://github.com/dunglas/frankenphp/releases) or copy this line into your
|
||||
terminal to automatically install the version appropriate for your platform:
|
||||
|
||||
```console
|
||||
curl -sLK https://raw.githubusercontent.com/dunglas/frankenphp/main/install.sh | sh
|
||||
mv frankenphp /usr/local/bin/
|
||||
```
|
||||
|
||||
To serve the content of the current directory, run:
|
||||
|
||||
```console
|
||||
./frankenphp php-server
|
||||
frankenphp php-server
|
||||
```
|
||||
|
||||
You can also run command-line scripts with:
|
||||
|
||||
```console
|
||||
./frankenphp php-cli /path/to/your/script.php
|
||||
frankenphp php-cli /path/to/your/script.php
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
71
install.sh
Normal file
71
install.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ -z "${BIN_DIR}" ]; then
|
||||
BIN_DIR=$(pwd)
|
||||
fi
|
||||
|
||||
THE_ARCH_BIN=""
|
||||
DEST=${BIN_DIR}/frankenphp
|
||||
|
||||
OS=$(uname -s)
|
||||
ARCH=$(uname -m)
|
||||
|
||||
case ${OS} in
|
||||
Linux*)
|
||||
case ${ARCH} in
|
||||
aarch64)
|
||||
THE_ARCH_BIN="frankenphp-linux-aarch64"
|
||||
;;
|
||||
x86_64)
|
||||
THE_ARCH_BIN="frankenphp-linux-x86_64"
|
||||
;;
|
||||
*)
|
||||
THE_ARCH_BIN=""
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
Darwin*)
|
||||
case ${ARCH} in
|
||||
arm64)
|
||||
THE_ARCH_BIN="frankenphp-mac-arm64"
|
||||
;;
|
||||
*)
|
||||
THE_ARCH_BIN="frankenphp-mac-x86_64"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
Windows|MINGW64_NT*)
|
||||
echo "Install and use WSL to use FrankenPHP on Windows: https://learn.microsoft.com/windows/wsl/"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
THE_ARCH_BIN=""
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "${THE_ARCH_BIN}" ]; then
|
||||
echo "FrankenPHP is not supported on ${OS} and ${ARCH}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
SUDO=""
|
||||
|
||||
# check if $DEST is writable and suppress an error message
|
||||
touch "${DEST}" 2>/dev/null
|
||||
|
||||
# we need sudo powers to write to DEST
|
||||
if [ $? -eq 1 ]; then
|
||||
echo "You do not have permission to write to ${DEST}, enter your password to grant sudo powers"
|
||||
SUDO="sudo"
|
||||
fi
|
||||
|
||||
${SUDO} curl -L --progress-bar "https://github.com/dunglas/frankenphp/releases/latest/download/${THE_ARCH_BIN}" -o "${DEST}"
|
||||
|
||||
${SUDO} chmod +x "${DEST}"
|
||||
|
||||
|
||||
echo "FrankenPHP downloaded successfully to ${DEST}"
|
||||
echo "Move the binary to /usr/local/bin/ or another directory in your PATH to use it globally: sudo mv ${DEST} /usr/local/bin/"
|
||||
Reference in New Issue
Block a user