We have a question about what to do with application state:
- Session storage
We'll start by installing some server basics just like we did on the other 3 servers:
sudo apt-get update sudo apt-get install -y git tmux vim curl wget zip unzip htop
Common state we save to sessions includes form data during validation.
However I typially set session storage to my cache storage, usually Redis.
We need to use a centralized cache server. We'll use our 4th server for this and install Redis onto it.
sudo apt-get update sudo apt-get install -y git tmux vim curl wget zip unzip htop sudo apt-get install -y redis-server
Then we can configure our application servers to use this in the
CACHE_DRIVER=redis SESSION_DRIVER=redis REDIS_HOST=172.31.3.56 REDIS_PASSWORD=null REDIS_PORT=6379
For the sake of brevity, we'll put our database on the same server as Redis as well.
sudo apt-get install -y mysql-server
Then set it to listen on the private network:
bind-address = 172.31.3.56
Note that you can still connect to the local mysql over localhost, but not 127.0.0.1 from within this server. We'll also be able to connect to mysql remotely over the private network.
We need to reload MySQL for these changes to take affect:
sudo service mysql restart
Then we can setup the database and user:
# Create a database create database myapp charset utf8mb4; # Create a user that can connect over the private network create user myuser@'172.31.%' identified by 'secret'; # Grant that user to the new database grant all privileges on myapp.* to myuser@'172.31.%';
And we can ensure our app can use the remote database by updating the
.env file on the application servers:
DB_CONNECTION=172.31.3.56 DB_HOST=mysql DB_PORT=3306 DB_DATABASE=myapp DB_USERNAME=myuser DB_PASSWORD=secret
We should be able to scaffold out our authentication now!
php artisan make:auth php artisan migrate
And then we should be able to register and log into the server!