-
Notifications
You must be signed in to change notification settings - Fork 43
Digital Ocean Setup
Ryan Haudenschilt edited this page Mar 25, 2024
·
27 revisions
-
Create a new droplet
-
SSH into new droplet as root ?
-
Create a new user with superuser
adduser XXXusermod -aG sudo XXX
-
Configure firewall
ufw allow OpenSSHufw enable
-
SSH into droplet as XXX user
-
OPTIONAL - If droplet has less than 1GB ram, add swap space.
sudo fallocate -l 1G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo cp /etc/fstab /etc/fstab.bakecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
-
Install the LAMP or LEMP stack ?
sudo apt updatesudo apt install apache2sudo ufw allow in "Apache Full"sudo apt install mysql-serversudo mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '<ROOT_DB_PASSWORD>';exitsudo mysql_secure_installationsudo apt install php libapache2-mod-php php-mysql
-
Configure apache vhosts
sudo mkdir /var/www/fcmssudo chown -R $USER:$USER /var/www/fcmssudo vi /etc/apache2/sites-available/fcms.conf
<VirtualHost *:80> ServerName <YOUR_DOMAIN> ServerAlias <YOUR_DOMAIN> ServerAdmin webmaster@localhost DocumentRoot /var/www/fcms/public <Directory /var/www/fcms/public> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>sudo a2ensite fcmssudo a2dissite 000-defaultsudo a2enmod rewritesudo systemctl reload apache2
-
Configure php.ini
sudo vi /etc/php/8.1/apache2/php.iniupload_max_filesize = 64Mpost_max_size = 64M
-
Add rest of things laravel needs
sudo apt updatesudo apt install php-mbstring php-xml php-bcmath php-curl php-imagick-
sudo apt install php-cli unzip? cd ~curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.phpsudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composercd ~-
curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh? sudo bash nodesource_setup.shsudo apt install nodejs
-
Setup the laravel project
cd /var/www/fcmssudo git clone https://github.com/ryanhowdy/fcms.git .composer installnpm installcp .env.example .envphp artisan key:generatesudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 775 storagechmod -R 775 bootstrap/cache
-
(Optional) Install SSL Cert