Skip to content

Instantly share code, notes, and snippets.

@viirre
Last active September 29, 2017 14:56
Show Gist options
  • Save viirre/f857dc6482e40214fa573f85bbaf9b58 to your computer and use it in GitHub Desktop.
Save viirre/f857dc6482e40214fa573f85bbaf9b58 to your computer and use it in GitHub Desktop.
Bash scripts for fixing some common conf stuff on newly provisioned Forge servers
# Usage:
# wget -O forge_scripts.sh https://gist.githubusercontent.com/viirre/f857dc6482e40214fa573f85bbaf9b58/raw
# [Change script to your servers liking]
# sudo bash forge_scripts.sh
if [ "$EUID" -ne 0 ] ;
then echo "Please run as root" ;
exit 1;
fi
########################
#### UPDATE PHP.INI
########################
PHP_DIRECTORY_70="/etc/php/7.0"
PHP_DIRECTORY_71="/etc/php/7.1"
PHP_DIRECTORY_5="/etc/php5"
PHP_FPM_INI_PATH=""
PHP_CLI_INI_PATH=""
PHP_FPM_POOL_PATH=""
PHP_SERVICE=""
if [ -d "$PHP_DIRECTORY_71/fpm" ]; then
PHP_SERVICE="php7.1-fpm"
PHP_FPM_INI_PATH="$PHP_DIRECTORY_71/fpm/php.ini"
PHP_CLI_INI_PATH="$PHP_DIRECTORY_71/cli/php.ini"
PHP_FPM_POOL_PATH="$PHP_DIRECTORY_71/fpm/pool.d/www.conf"
elif [ -d "$PHP_DIRECTORY_70/fpm" ]; then
PHP_SERVICE="php7.0-fpm"
PHP_FPM_INI_PATH="$PHP_DIRECTORY_70/fpm/php.ini"
PHP_CLI_INI_PATH="$PHP_DIRECTORY_70/cli/php.ini"
PHP_FPM_POOL_PATH="$PHP_DIRECTORY_70/fpm/pool.d/www.conf"
else
PHP_SERVICE="php5-fpm"
PHP_FPM_INI_PATH="$PHP_DIRECTORY_5/fpm/php.ini"
PHP_CLI_INI_PATH="$PHP_DIRECTORY_5/cli/php.ini"
PHP_FPM_POOL_PATH="$PHP_DIRECTORY_5/fpm/pool.d/www.conf"
fi
echo ">> Updating php.ini values.."
INI_VAR_MEMORY_LIMIT=512M
INI_VAR_TIMEZONE="Europe\\/Stockholm"
INI_VAR_MAX_EXECUTION_TIME=300
INI_VAR_UPLOAD_MAX_FILESIZE=10M
INI_VAR_POST_MAX_SIZE=10M
sed -i 's/date.timezone = .*/date.timezone = '${INI_VAR_TIMEZONE}'/' $PHP_CLI_INI_PATH
sed -i 's/date.timezone = .*/date.timezone = '${INI_VAR_TIMEZONE}'/' $PHP_FPM_INI_PATH
sed -i 's/memory_limit = .*/memory_limit = '${INI_VAR_MEMORY_LIMIT}'/' $PHP_FPM_INI_PATH
sed -i 's/max_execution_time = .*/max_execution_time = '${INI_VAR_MAX_EXECUTION_TIME}'/' $PHP_FPM_INI_PATH
sed -i 's/upload_max_filesize = .*/upload_max_filesize = '${INI_VAR_UPLOAD_MAX_FILESIZE}'/' $PHP_FPM_INI_PATH
sed -i 's/post_max_size = .*/post_max_size = '${INI_VAR_POST_MAX_SIZE}'/' $PHP_FPM_INI_PATH
echo "- Done updating php.ini values!"
########################
#### UPDATE PHP-FPM POOL
########################
echo ">> Updating PHP-FPM pool values"
POOL_VAR_MAX_CHILDREN=10
POOL_VAR_START_SERVERS=3
POOL_VAR_MIN_SPARE_SERVERS=2
POOL_VAR_MAX_SPARE_SERVERS=4
POOL_VAR_MAX_REQUESTS=400
sed -i 's/pm.max_children = .*/pm.max_children = '${POOL_VAR_MAX_CHILDREN}'/' $PHP_FPM_POOL_PATH
sed -i 's/pm.start_servers = .*/pm.start_servers = '${POOL_VAR_START_SERVERS}'/' $PHP_FPM_POOL_PATH
sed -i 's/pm.min_spare_servers = .*/pm.min_spare_servers = '${POOL_VAR_MIN_SPARE_SERVERS}'/' $PHP_FPM_POOL_PATH
sed -i 's/pm.max_spare_servers = .*/pm.max_spare_servers = '${POOL_VAR_MAX_SPARE_SERVERS}'/' $PHP_FPM_POOL_PATH
sed -i 's/pm.max_children = .*/pm.max_children = '${POOL_VAR_MAX_CHILDREN}'/' $PHP_FPM_POOL_PATH
sed -i 's/request_terminate_timeout = .*/request_terminate_timeout = '${INI_VAR_MAX_EXECUTION_TIME}'/' $PHP_FPM_POOL_PATH
########################
#### UPDATE NGINX.CONF
########################
echo ">> Updating nginx conf.."
NGINX_CONF_FILE="/etc/nginx/conf.d/adaptive.conf"
echo "
client_body_buffer_size 128k; #Increase buffers
# Timeout stuff
fastcgi_read_timeout 300;
proxy_read_timeout 300;
" > $NGINX_CONF_FILE
echo "- Done updating nginx conf"
echo ">> Restarting services.."
sudo service $PHP_SERVICE restart
sudo service nginx restart
echo "- Done restarting services"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment