jaddz's avatar
Level 1

Laravel 9 with php 8.1 and Apache2 on AWS Ubuntu 22.04 LTS free tier

My Guide to installing Laravel 9 on AWS Ubuntu.

I will assume that the ubuntu instance has been set up with a public IP and associated security groups to enable port 80 (HTTP) and 22 (SSH)

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

sudo apt install php8.1-bcmath

sudo apt install php8.1-curl

sudo apt install php8.1-dom

sudo apt install php8.1-mbstring

sudo apt install 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.

<?php
	phpinfo();
?>

Grab your aws 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 -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

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 AWS public DNS address for your instance you should have the Laravel 9 start page.

0 likes
0 replies

Please or to participate in this conversation.