GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Laravel 9 sur Ubuntu 22.04

Laravel est un framework d'applications Web populaire conçu pour les développeurs PHP. Laravel est bien connu dans la communauté PHP pour sa simplicité en tant qu'outil de création d'applications volumineuses et robustes. Laravel est également connu pour sa syntaxe expressive et élégante.

Depuis sa création, Laravel a évolué pour devenir l'un des frameworks d'applications Web les plus populaires et les plus puissants et de nombreuses grandes organisations commencent à réaliser le potentiel de ce framework et ont commencé à l'adopter.

Dans ce didacticiel, nous vous guiderons pour configurer Laravel dans Ubuntu 22.04.

Commençons par la configuration.

1 Prérequis

  • Système d'exploitation Ubuntu 22.04
  • Version PHP minimale de 8.0.
  • Il serait préférable que votre serveur dispose d'au moins 2 Go de RAM

2 Mise à jour du système

Commençons par mettre à jour notre système.

sudo apt update -y && apt upgrade -y

3 Installer PHP et les extensions PHP

La version par défaut de PHP dans le référentiel Ubuntu 22.04 est PHP 8.1, nous pouvons donc procéder à l'installation de PHP sans ajouter de référentiels.

sudo apt-get install php php-fpm libapache2-mod-php php-dev php-zip php-curl php-pear php-mbstring php-mysql php-gd php-xml curl -y

Vérifiez la version PHP :

php -v


Output:

PHP 8.1.2 (cli) (built: Jul 21 2022 12:10:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

4 Installation et configuration de la base de données

Dans cette configuration, nous allons utiliser MariaDB comme système de gestion de base de données, mais vous pouvez choisir n'importe quel système de gestion de base de données pris en charge par Laravel, comme SQLite, MySQL, Postgres et SQL Server.

Installons MariaDB.

sudo apt install mariadb-server

Activez et démarrez MariaDB.

sudo systemctl enable mariadb --now

Vérifiez l'état de MariaDB.

sudo systemctl status mariadb

Output:
● mariadb.service - MariaDB 10.6.7 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-09-03 12:32:57 EDT; 2min 13s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 123075 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 9 (limit: 9456)
     Memory: 57.2M
        CPU: 425ms
     CGroup: /system.slice/mariadb.service
             └─123075 /usr/sbin/mariadbd

Sécurisons la base de données MariaDB.

sudo mysql_secure_installation

Suivez le guide de déploiement du serveur MariaDB :

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Maintenant, redémarrez MariaDB.

sudo systemctl restart mariadb

Créons maintenant une base de données et un utilisateur de base de données pour notre application Laravel.

mysql -u root -p
MariaDB [(none)]> create database laravel;
MariaDB [(none)]> grant all privileges on laravel.* to 'laravel_user'@'localhost' identified by 'your_secure_password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Remarque : N'oubliez pas de changer "votre_mot_de_passe_sécurisé ‘ à votre propre mot de passe.

5 Installation de Composer

Composer est un gestionnaire de packages de dépendances au niveau de l'application pour PHP qui fournit un format standard pour la gestion des dépendances des logiciels PHP et des bibliothèques requises. Composer est requis dans Laravel pour gérer facilement le package Laravel et les dépendances.

Installons composer.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Vérifiez l'installation.

composer --version

Output:

Composer version 2.4.1 2022-08-20 11:44:50

6 Installation du framework Laravel

Avant de commencer l'installation, changeons de répertoire.

cd /var/www/

Télécharger l'application Laravel. Au moment d'écrire ces lignes, la dernière version de Laravel est 9, nous pouvons donc télécharger Laravel 9 directement sans spécifier la version.

sudo composer create-project laravel/laravel mylara-app --prefer-dist

Sortie si l'installation a réussi :


79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].

No security vulnerability advisories found
> @php artisan key:generate --ansi

   INFO  Application key set successfully.

Pour vérifier la version, allez dans le répertoire Laravel :

cd mylara-app
php artisan --version

output:
Laravel Framework 9.28.0

Remarque : si vous souhaitez installer une version spécifique, vous pouvez exécuter cette commande (l'exemple ci-dessous installera la version 8):

sudo composer create-project laravel/laravel lara8-app "8.*" –prefer-dist

Définissez la propriété sur www-data.

sudo chown -R www-data:www-data /var/www/mylara-app

Définissez tous les répertoires sur l'autorisation 755.

sudo find /var/www/mylara-app/ -type d -exec chmod 755 {} \;

Définissez tous les fichiers sur l'autorisation 644.

sudo find /var/www/mylara-app/ -type f -exec chmod 644 {} \;

Vérifiez l'application en exécutant le serveur de développement.

php artisan serve --host=0.0.0.0

Output:

INFO  Server running on [http://0.0.0.0:8000].

  Press Ctrl+C to stop the server

Vous devriez pouvoir accéder à votre serveur de développement Laravel sur http://ipaddress:8000 .

7 Configuration de la production de Laravel

Serveur Web Apache :

sudo apt install apache2

Activez et démarrez Apache.

systemctl enable apache2 --now

Créez un hôte virtuel.

sudo nano /etc/apache2/sites-available/laravel.conf

Ajoutez ce qui suit :

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/mylara-app/public
     ServerName domain.com www.domain.com


     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

     <Directory /var/www/laravel/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

</VirtualHost>

Remarque :N'oubliez pas de modifier le domaine  dans la directive ServerName.

Enregistrez le fichier et quittez.

Activez l'hôte virtuel que nous avons créé.

sudo a2ensite laravel.conf

Activez également Apache mod_rewrite.

sudo a2enmod rewrite

Redémarrez le serveur Web Apache.

sudo systemctl restart apache2

Serveur Web Nginx :

Commençons par installer Nginx.

sudo apt install nginx -y

Activez et démarrez Nginx.

sudo systemctl enable nginx --now

Créez un bloc serveur.

sudo nano /etc/nginx/sites-available/laravel.conf

Ajoutez ce qui suit :

server {
        server_name domain.com www.domain.com;

    access_log   /var/log/nginx/domain.com.access.log;
    error_log    /var/log/nginx/domain.com.error.log;

        root /var/www/mylara-app/public;
        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
      fastcgi_pass unix:/run/php/php-fpm.sock;
      include         fastcgi_params;
      fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
      fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
        }
}

Remarque : N'oubliez pas de modifier le "domaine.com ".

Enregistrez le fichier et quittez.

Activez le fichier de configuration Nginx (bloc serveur).

sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/

Redémarrez Nginx.

sudo systemctl restart nginx

8 Accéder à votre application Laravel

Après avoir configuré avec succès la production, vous devriez pouvoir accéder à votre application Laravel avec votre domaine sur http://domain.com .

9 Conclusion

Vous avez appris à configurer Laravel 9 sur Ubuntu 22.04 avec le serveur Web Nginx ou Apache.

Si vous souhaitez installer un certificat SSL pour sécuriser votre site Web, vous pouvez consulter notre article sur Let's Encrypt.


Ubuntu
  1. Comment installer PHP sur Ubuntu 18.04

  2. Comment installer MariaDB sur Ubuntu 18.04

  3. Comment installer Laravel sur Ubuntu 18.04

  4. Comment installer PHP 8.0 sur Ubuntu 20.04 / Ubuntu 18.04

  5. Comment installer PHP 7.2 sur Ubuntu 16.04

Comment installer MariaDB sur Ubuntu 16.04

Comment installer Laravel sur Ubuntu 16.04

Comment installer PHP 8.0 sur Ubuntu 20.04 / 18.04

Comment installer PHP dans Ubuntu 22.04

Comment installer MariaDB sur Ubuntu

Comment installer PHP sur Ubuntu 22.04