Installing Laravel 9 with php 8.1 and Apache2 using Ubuntu 22 Rumi, February 11, 2024 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. Administrations Configurations (Linux) LaravelLaravel 9PHP 8.1Ubuntu 22