/ Laravel Deployer

Setting up a Laravel server

Checklist

Create droplet and link domain

❑  Create a droplet via Digital Ocean ($10 discount link 🔥).
❑  Add your SSH key when creating your droplet.
❑  Add your domain name in the “Networking” section.
❑  Points @ to the newly created droplet.

Make bash more friendly

❑  ssh root@IPADDRESS
❑  vim ~/.bashrc → search /force_color_prompt → uncomment
❑  vim ~/.bashrc → search /PS1 → remove @\h and \w becomes \W
❑  Reload shell exec bash -l

Add locales

❑  echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
locale-gen en_US.UTF-8
❑  exit and reconnect ssh root@IPADDRESS

Install php 7.2

❑  apt-get update -y && apt-get upgrade -y
❑  apt-get -y install python-software-properties
❑  add-apt-repository -y ppa:ondrej/php
❑  apt-get update -y
❑  apt-get -y install php7.2 php7.2-common php7.2-gd php7.2-intl php7.2-zip php7.2-sqlite3 php7.2-mysql php7.2-fpm php7.2-mbstring php7.2-xml php7.2-curl php7.2-memcached unzip zip composer

Configure your ngnix server

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    server_name mydomain.com;
    root /var/www/mydomain.com/current/public;
    index index.html index.htm index.php;

    charset utf-8;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/laraveldeployer.com-error.log error;

    error_page 404 /index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

❑  service nginx restart && service php7.2-fpm reload

Set up mysql and create a database

❑  cat /root/.digitalocean_password
❑  mysql_secure_installation
❑  mysql -uroot -p -e "create database laravel;"