Newer
Older
WSSSnoop / simple-php-webserver.sh
0xRoM on 6 Jul 931 bytes Initial commit
#!/bin/bash

# Taken from: https://gist.github.com/Jiab77/4d3c1abeb9be4119f33031750cf580d4
# Increasing local web server performances as possible
# https://stackoverflow.com/questions/39842170/load-balancing-php-built-in-server/47103758#47103758
# https://www.php.net/manual/en/features.commandline.webserver.php

# Config
LISTEN_INTERFACE="127.0.0.1"
LISTEN_PORT=8082
ENTRY_POINT=$1

# Detect server type to use
PHP_SRV_TYPE=$(php -r "if (version_compare(phpversion(), '7.4', '<')) { echo 'tcpserver'; } else { echo 'embedded'; }")

# Run detected server type
if [[ $PHP_SRV_TYPE == 'embedded' ]]; then
    if [[ -d $ENTRY_POINT ]]; then
        PHP_CLI_SERVER_WORKERS=$(nproc) php -S ${LISTEN_INTERFACE}:${LISTEN_PORT} -t $ENTRY_POINT
    else
        PHP_CLI_SERVER_WORKERS=$(nproc) php -S ${LISTEN_INTERFACE}:${LISTEN_PORT} $ENTRY_POINT
    fi
else
    tcpserver -v -1 0 ${LISTEN_PORT} ./proxy-to-php-server.sh $ENTRY_POINT
fi