Last active
June 13, 2019 12:57
-
-
Save aindong/39bce80e1171a85243588581e3948026 to your computer and use it in GitHub Desktop.
provision laravel server with nginx, php, awscli, composer, node, ruby, python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Add Ruby2.0 respository | |
add-apt-repository -y ppa:brightbox/ruby-ng-experimental | |
# Add PHP 7.* ppa | |
sudo add-apt-repository ppa:ondrej/php | |
# Add node source respository | |
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - | |
# Update APT | |
apt update | |
# Install dependencies | |
apt install -y php7.2 php7.2-mbstring php7.2-xml php7.2-zip php7.2-mysql php7.2-cli php7.2-mcrypt php7.2-fpm git nginx software-properties-common python-software-properties python-pip wget nodejs ruby2.0 | |
# Upgrade dependencies | |
apt upgrade -y | |
# Composer | |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | |
php composer-setup.php -- --install-dir=/usr/bin --filename=composer | |
rm composer-setup.php | |
# Install AWS CLI | |
pip install awscli | |
# Set cgi.fix_pathinfo=0 in php.ini | |
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini | |
# Create nginx default config | |
echo "server {" > /etc/nginx/sites-available/default | |
echo " listen 80 default_server;" >> /etc/nginx/sites-available/default | |
echo " listen [::]:80 default_server;" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " root /var/www/public;" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " index index.php index.html;" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " server_name _;" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " location / {" >> /etc/nginx/sites-available/default | |
echo " try_files \$uri \$uri/ /index.php\$is_args\$args;" >> /etc/nginx/sites-available/default | |
echo " }" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " location ~* (index)\.php\$ {" >> /etc/nginx/sites-available/default | |
echo " include snippets/fastcgi-php.conf;" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " fastcgi_pass unix:/run/php/php7.2-fpm.sock;" >> /etc/nginx/sites-available/default | |
echo " }" >> /etc/nginx/sites-available/default | |
echo "" >> /etc/nginx/sites-available/default | |
echo " location ~ /\.ht {" >> /etc/nginx/sites-available/default | |
echo " deny all;" >> /etc/nginx/sites-available/default | |
echo " }" >> /etc/nginx/sites-available/default | |
echo "}" >> /etc/nginx/sites-available/default | |
# Restart php and nginx | |
service php7.2-fpm reload | |
service nginx reload | |
# Remove default web directory | |
rm -rf /var/www/html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment