Skip to content

Instantly share code, notes, and snippets.

@jrnickell
Created April 9, 2015 23:39
Show Gist options
  • Save jrnickell/47c6b24a89241ec8bdc4 to your computer and use it in GitHub Desktop.
Save jrnickell/47c6b24a89241ec8bdc4 to your computer and use it in GitHub Desktop.
Nginx & PHP-FPM
#!/usr/bin/env bash
# bin folder
cd ~
mkdir -p ~/bin
# base apps and upgrade
sudo apt-get update
sudo apt-get install -y aptitude curl vim git unzip openssl
sudo aptitude -y safe-upgrade
# repositories
sudo add-apt-repository -y ppa:ondrej/php5-5.6
sudo add-apt-repository -y ppa:nginx/stable
sudo apt-get update
# php
sudo apt-get install -y php5-common php5-cli php5-fpm php5-curl php5-xdebug php5-mcrypt
sudo php5enmod mcrypt
# nginx
sudo apt-get install -y nginx
# php.ini
sudo sed -i "s/^short_open_tag.*/short_open_tag = Off/" /etc/php5/cli/php.ini
sudo sed -i "s/^expose_php.*/expose_php = Off/" /etc/php5/cli/php.ini
sudo sed -i "s/^max_execution_time.*/max_execution_time = 0/" /etc/php5/cli/php.ini
sudo sed -i "s/^max_input_time.*/max_input_time = 60/" /etc/php5/cli/php.ini
sudo sed -i "s/^memory_limit.*/memory_limit = 512M/" /etc/php5/cli/php.ini
sudo sed -i "s/^error_reporting.*/error_reporting = E_ALL/" /etc/php5/cli/php.ini
sudo sed -i "s/^display_errors.*/display_errors = On/" /etc/php5/cli/php.ini
sudo sed -i "s/^display_startup_errors.*/display_startup_errors = On/" /etc/php5/cli/php.ini
sudo sed -i "s/^track_errors.*/track_errors = Off/" /etc/php5/cli/php.ini
sudo sed -i "s/^html_errors.*/html_errors = Off/" /etc/php5/cli/php.ini
sudo sed -i "s/^variables_order.*/variables_order = \"GPCS\"/" /etc/php5/cli/php.ini
sudo sed -i "s/^request_order.*/request_order = \"GP\"/" /etc/php5/cli/php.ini
sudo sed -i "s/^post_max_size.*/post_max_size = 8M/" /etc/php5/cli/php.ini
sudo sed -i "s/^default_charset.*/default_charset = \"UTF-8\"/" /etc/php5/cli/php.ini
sudo sed -i "s/^upload_max_filesize.*/upload_max_filesize = 10M/" /etc/php5/cli/php.ini
sudo sed -i "s/^;date.timezone.*/date.timezone = UTC/" /etc/php5/cli/php.ini
echo "xdebug.max_nesting_level=250" | sudo tee -a /etc/php5/cli/php.ini
sudo sed -i "s/^short_open_tag.*/short_open_tag = Off/" /etc/php5/fpm/php.ini
sudo sed -i "s/^expose_php.*/expose_php = Off/" /etc/php5/fpm/php.ini
sudo sed -i "s/^max_execution_time.*/max_execution_time = 30/" /etc/php5/fpm/php.ini
sudo sed -i "s/^max_input_time.*/max_input_time = 60/" /etc/php5/fpm/php.ini
sudo sed -i "s/^memory_limit.*/memory_limit = 512M/" /etc/php5/fpm/php.ini
sudo sed -i "s/^error_reporting.*/error_reporting = E_ALL/" /etc/php5/fpm/php.ini
sudo sed -i "s/^display_errors.*/display_errors = On/" /etc/php5/fpm/php.ini
sudo sed -i "s/^display_startup_errors.*/display_startup_errors = On/" /etc/php5/fpm/php.ini
sudo sed -i "s/^track_errors.*/track_errors = Off/" /etc/php5/fpm/php.ini
sudo sed -i "s/^html_errors.*/html_errors = On/" /etc/php5/fpm/php.ini
sudo sed -i "s/^variables_order.*/variables_order = \"GPCS\"/" /etc/php5/fpm/php.ini
sudo sed -i "s/^request_order.*/request_order = \"GP\"/" /etc/php5/fpm/php.ini
sudo sed -i "s/^post_max_size.*/post_max_size = 8M/" /etc/php5/fpm/php.ini
sudo sed -i "s/^default_charset.*/default_charset = \"UTF-8\"/" /etc/php5/fpm/php.ini
sudo sed -i "s/^upload_max_filesize.*/upload_max_filesize = 10M/" /etc/php5/fpm/php.ini
sudo sed -i "s/^;date.timezone.*/date.timezone = UTC/" /etc/php5/fpm/php.ini
sudo sed -i "s/listen = .*/listen = 127.0.0.1:9000/" /etc/php5/fpm/pool.d/www.conf
echo "xdebug.max_nesting_level=250" | sudo tee -a /etc/php5/fpm/php.ini
# composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# nginx config
# https://github.com/h5bp/server-configs-nginx
wget -O h5bp.zip "https://github.com/h5bp/server-configs-nginx/archive/master.zip"
unzip h5bp.zip
sudo rm /etc/nginx/mime.types
sudo mv server-configs-nginx-master/mime.types /etc/nginx/mime.types
sudo mv server-configs-nginx-master/h5bp /etc/nginx/
rm -rf h5bp.zip server-configs-nginx-master
sudo sed -i "s/access_log logs\/static.log.*/# access_log logs\/static.log;/" /etc/nginx/h5bp/location/expires.conf
sudo service nginx restart
sudo service php5-fpm restart
# server config scripts
wget -O scripts.tar.gz "https://gist.github.com/jrnickell/1b920e59c2e7a5082725/download"
tar -zxvf scripts.tar.gz
mv gist1b920e59c2e7a5082725*/create-project ~/bin/create-project
mv gist1b920e59c2e7a5082725*/remove-project ~/bin/remove-project
sudo chmod 0700 ~/bin/create-project
sudo chmod 0700 ~/bin/remove-project
rm -rf scripts.tar.gz gist1b920e59c2e7a5082725*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment