Connect to your ubuntu instance.
1. Install Apache
sudo apt update sudo apt install apache2 sudo systemctl status apache2
2. Install PHP 8.1
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt install php8.1 libapache2-mod-php8.1 sudo systemctl restart apache2
3. Install required PHP extensions for Laravel 9
sudo apt install php8.1-common php8.1-bcmath php8.1-curl php8.1-dom php8.1-mbstring php8.1-intl php8.1-zip
4. Test Apache installation
Create a new file index.php in /var/www/html
rename index.html -> index.html_old
Edit the index.php with the following.
Copy<?php phpinfo(); ?>
Grab your ubuntu public URL and plug into a browser. You should see the PHP info page.
5. Install Composer
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" sudo php composer-setup.php sudo php -r "unlink('composer-setup.php');" sudo mv composer.phar /usr/local/bin/composer
6. Install Laravel 9
Navigate to /var/www/html and run your composer laravel install command.
sudo composer create-project laravel/laravel YOURPROJECTNAME
7. Configure Apache to serve Laravel
Open the /etc/apache2/sites-available/000-default.conf file. change DocumentRoot to /var/www/html/laravel project directory/public
8. Set permissions on Laravel for USER and APACHE
sudo chown -R www-data:www-data /var/www/html/your_project_name sudo find /var/www/html/your_project_name -type f -exec chmod 644 {} \; sudo find /var/www/html/your_project_name -type d -exec chmod 755 {} \;
9. Enable rewrites and overrides in Apache for laravel
Navigate to and edit the /etc/apache2/sites-available/000-default.conf file. Under DocumentRoot declaration in the conf file add…
<Directory /var/www/html/your laravel project directory/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
then
sudo a2enmod rewrite
Now when you go to the public DNS address for your instance you should have the Laravel 9 start page.