Installing Laravel 9 with php 8.1 and Apache2 using Ubuntu 22

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.

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.