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.
Please or to participate in this conversation.