GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment configurer Laravel Bagisto avec Nginx et PHP-FPM dans Rocky Linux/Alma Linux 8

Dans ce guide, nous apprendrons comment configurer Laravel Bagisto avec Nginx et PHP-FPM avec MariaDB comme source de données.

Contenu connexe :

  • Comment installer Mysql 8 sur Rocky Linux/Centos 8

Table des matières

  1. Assurez-vous que les packages du serveur sont à jour
  2. Désactiver Selinux
  3. Installer Mariadb
  4. Création d'un utilisateur Mysql pour Bagisto
  5. Installation de PHP 7.4 dans Rocky Linux 8
  6. Installation de nginx dans Rocky Linux 8
  7. Modifier la configuration PHP et php-fpm pour Bagisto
  8. Démarrer et activer le service php-fpm
  9. Installer le compositeur php
  10. Télécharger et configurer Bagisto
  11. Configurer Nginx pour servir Bagosto à partir d'un hôte virtuel
  12. Accéder à Bagisto depuis l'url Web

1. Assurez-vous que les packages du serveur sont à jour

Assurons-nous que nos packages serveur sont à jour avec cette commande :

sudo dnf -y update

Installez les packages communs dont nous aurons besoin

sudo dnf install -y git unzip vim

Configurez également le fuseau horaire

sudo timedatectl set-timezone Africa/Nairobi

2. Désactiver SELinux

Ensuite, désactivons SELinux. Nous allons définir SELinux sur permisif. Modifiez ce fichier :

sudo vim /etc/selinux/config

Mettez ensuite à jour cette ligne :

SELINUX=permisive

Pour vous assurer que les modifications sont appliquées immédiatement sans redémarrage, utilisez cette commande :

setenforce 0

3. Installer Mariadb

Mariadb est un système de gestion relationnelle Opensource populaire. Il est disponible dans les dépôts par défaut en tant que mariadb-server .

Installez-le avec cette commande :

sudo dnf install -y mariadb-server

Une fois mariadb installé, vous pouvez confirmer les détails à l'aide de cette commande :

$ rpm -qi mariadb-server
Name        : mariadb-server
Epoch       : 3
Version     : 10.3.28
Release     : 1.module+el8.4.0+427+adf35707
Architecture: x86_64
Install Date: Mon 10 Jan 2022 11:09:11 PM EAT
Group       : Unspecified
Size        : 85968333
License     : GPLv2 with exceptions and LGPLv2 and BSD
Signature   : RSA/SHA256, Mon 31 May 2021 03:18:29 AM EAT, Key ID 15af5dac6d745a60
Source RPM  : mariadb-10.3.28-1.module+el8.4.0+427+adf35707.src.rpm
Build Date  : Mon 31 May 2021 02:56:08 AM EAT
Build Host  : ord1-prod-x86build003.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://mariadb.org
Summary     : The MariaDB server and related files
Description :
MariaDB is a multi-user, multi-threaded SQL database server. It is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MariaDB server and some accompanying files and directories.
MariaDB is a community developed branch of MySQL.

Le service ne sera pas démarré par défaut. Commencez par cette commande :

sudo systemctl start mariadb

Confirmez le statut avec cette commande :

$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 05:58:54 UTC; 7min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 40293 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 23176)
   Memory: 83.8M
   CGroup: /system.slice/mariadb.service
           └─40293 /usr/libexec/mysqld --basedir=/usr

Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: See the MariaDB Knowledgebase at http://mariadb.com/kb or the
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: MySQL manual for more instructions.
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: Please report any problems at http://mariadb.org/jira
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: The latest information about MariaDB is available at http://mariadb.org/.
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: You can find additional information about the MySQL part at:
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: http://dev.mysql.com
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: Consider joining MariaDB's strong and vibrant community:
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: https://mariadb.org/get-involved/
Jan 11 05:58:54 rockysrv.citizix.com mysqld[40293]: 2022-01-11  5:58:54 0 [Note] /usr/libexec/mysqld (mysqld 10.3.28-MariaDB) starting as process 40293 ...
Jan 11 05:58:54 rockysrv.citizix.com systemd[1]: Started MariaDB 10.3 database server.

Pour vous assurer que mariadb démarre au démarrage, activez-le avec cette commande systemd :

sudo systemctl enable mariadb

Une fois le service mysql en cours d'exécution, vous devez le sécuriser. Mysql fournit un utilitaire en ligne de commande qui fera cela :

sudo mysql_secure_installation

La commande ci-dessus vous guidera à travers les invites pour sécuriser et définir un mot de passe root pour l'instance mysql.

Pour plus d'informations sur l'installation et la configuration de mariadb dans Rocky Linux, consultez Comment installer et configurer Mariadb 10 dans Rocky Linux/Alma Linux 8.

4. Création d'un utilisateur mysql pour Bagisto

Il est toujours recommandé d'avoir un utilisateur dédié pour chaque application qui se connecte à la base de données. Consultez ce guide sur la gestion des autorisations MySQL ici. Nous allons configurer une base de données, un utilisateur et un mot de passe à utiliser par nextcloud :

Connectez-vous au serveur mysql :

mysql -u root -p

Après avoir fourni votre mot de passe root, entrez ce qui suit à l'invite mysql :

create database bagisto;
create user 'bagisto_user'@'%' identified by 'S0mStrongPa$$word';
grant all privileges on bagisto.* to 'bagisto_user'@'%';

Maintenant que nous avons configuré notre connexion mysql, passons à la section suivante où nous installons et configurons PHP et Nginx.

5. Installation de PHP 7.4 dans Rocky Linux

Bagisto fonctionne bien avec PHP 7.4. La version php par défaut de Rocky Linux est peut-être obsolète. Pour avoir le contrôle sur la version php, installons le repo release remi en utilisant cette commande :

sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Activer la version 7.4 de php

sudo dnf module enable -y php:remi-7.4

Vous pouvez confirmer que la bonne version est activée à l'aide de cette commande :

sudo dnf module list php

Ensuite, installez php et ses dépendances

sudo dnf install -y php \
    php-cli \
    php-common \
    php-fpm \
    php-intl \
    php-gd \
    php-zip \
    php-mysql

Vérifier la version php

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

Pour plus d'informations sur la configuration de PHP et Nginx, consultez ce guide Comment installer et configurer PHP et Nginx (LEMP) sur Rocky Linux/Alma Linux 8.

6. Installation de Nginx dans Rocky Linux 8

Ensuite, installons Nginx dans notre système. Utilisez cette commande pour installer nginx

sudo dnf install -y nginx

Nginx ne sera pas démarré par défaut. Commencez par cette commande :

sudo systemctl start nginx

Vérifiez l'état à l'aide de cette commande :

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 06:15:10 UTC; 6s ago
  Process: 42317 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 42315 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 42313 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 42318 (nginx)
    Tasks: 3 (limit: 23176)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ├─42318 nginx: master process /usr/sbin/nginx
           ├─42319 nginx: worker process
           └─42320 nginx: worker process

Jan 11 06:15:10 rockysrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 11 06:15:10 rockysrv.citizix.com nginx[42315]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 11 06:15:10 rockysrv.citizix.com nginx[42315]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 11 06:15:10 rockysrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

Active: active (running) indiquent que le service est maintenant opérationnel.

Pour activer le service au démarrage, utilisez cette commande :

sudo systemctl enable nginx

7. Modifier la configuration PHP et php-fpm pour Bagisto

Mettez à jour la configuration php pour l'optimiser pour notre application.

Ouvrez le fichier php ini

sudo vim /etc/php.ini

Modifiez ensuite ces paramètres aux valeurs indiquées. Mettez à jour le fuseau horaire pour l'adapter au vôtre.

memory_limit = 2G
max_execution_time = 360
date.timezone = Africa/Nairobi
cgi.fix_pathinfo=0

Modifions ensuite les paramètres de php-fpm.

sudo vim /etc/php-fpm.d/www.conf

Puis mettez à jour ces valeurs

user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

8. Démarrage et activation du service php-fpm

Le service php-fpm n'est pas démarré par défaut. Commencez à utiliser cette commande :

sudo systemctl start php-fpm

Confirmez en vérifiant le statut :

$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 09:22:55 EAT; 31s ago
 Main PID: 43022 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23176)
   Memory: 16.0M
   CGroup: /system.slice/php-fpm.service
           ├─43022 php-fpm: master process (/etc/php-fpm.conf)
           ├─43023 php-fpm: pool www
           ├─43024 php-fpm: pool www
           ├─43025 php-fpm: pool www
           ├─43026 php-fpm: pool www
           └─43027 php-fpm: pool www

Jan 11 09:22:55 rockysrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 11 09:22:55 rockysrv.citizix.com php-fpm[43022]: [11-Jan-2022 09:22:55] WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored
Jan 11 09:22:55 rockysrv.citizix.com php-fpm[43022]: [11-Jan-2022 09:22:55] WARNING: [pool www] ACL set, listen.group = 'nginx' is ignored
Jan 11 09:22:55 rockysrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

Activer le service pour qu'il démarre au démarrage

sudo systemctl enable php-fpm

9. Installation de php Composer

Composer est utilisé pour la gestion des dépendances

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Déplacez le fichier phar téléchargé vers bin

sudo mv composer.phar /usr/local/bin/composer

10. Téléchargez et configurez Bagisto

Maintenant que nous avons configuré avec succès le serveur LEMP dans notre système, téléchargeons et configurons Bagisto. Vous pouvez obtenir la dernière version de Bagisto à partir de la page de téléchargement. Utilisez cette commande pour télécharger et extraire Bagisto dans le terminal :

cd /tmp
curl -LO https://github.com/bagisto/bagisto/archive/refs/tags/v1.3.3.tar.gz
tar -xzvf v1.3.3.tar.gz

Déplacez le contenu extrait vers /var/www où il peut être servi par nginx

sudo mv bagisto-1.3.3/ /var/www/bagisto

Basculez vers le répertoire et installez les dépendances à l'aide de composer

cd /var/www/bagisto
sudo /usr/local/bin/composer install

Assurez-vous que Nginx est propriétaire du contenu

sudo chown -R nginx.nginx /var/www/bagisto/

11. Configurer Nginx pour servir Bagisto à partir d'un hôte virtuel

Nous avons réussi à télécharger le contenu NextCloud sur /var/www/bagisto . Ensuite, il a fallu configurer Nginx pour le servir.

Créons un site virtuel dans le répertoire où nginx sert le contenu ici /etc/nginx/conf.d :

sudo vim /etc/nginx/conf.d/bagisto.conf

Pour que cela fonctionne, veuillez vous assurer que les enregistrements DNS utilisés sont mappés avec l'adresse IP du serveur.

Ajoutez le contenu suivant :

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name bagisto.citizix.com;

    root /var/www/bagisto/public;
    index index.php;

    if ($host !~* ^(bagisto.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Une fois les modifications ci-dessus effectuées, nous devons redémarrer le serveur nginx et le serveur php-fom. Utilisez ces commandes dans le terminal pour y parvenir.

sudo systemctl restart php-fpm nginx

12. Accéder à Bagisto depuis l'url web

Ensuite, dirigez-vous vers votre domaine défini, http://bagisto.citizix.com/ pour moi.

Vous serez guidé à travers la configuration du serveur, la configuration de l'environnement, la configuration de la base de données. Une fois cela fait, vous pouvez lancer l'installation. Enfin, vous créez un administrateur et ajoutez des configurations SMTP.

Conclusion

Dans ce guide, nous avons réussi à configurer la pile LEMP pour servir la plate-forme Bagisto eComerce.


Rocky Linux
  1. Comment installer Nginx avec PHP-FPM et MySQL sur openSUSE 12.1

  2. Comment installer WordPress avec LEMP (Nginx, MariaDB et PHP) sur Rocky Linux 8 ?

  3. Comment installer et utiliser Podman dans Rocky Linux/Alma Linux/Centos 8

  4. Comment installer et configurer PHP et Nginx (LEMP) sur Rocky Linux/Alma Linux 8

  5. Comment configurer le serveur et le client NFS sur Rocky/Alma Linux 8

Comment installer MariaDB 10.6 sur Rocky Linux 8

Comment installer NEOS CMS avec Nginx et Lets Encrypt SSL sur Rocky Linux 8

Comment installer Apache Tomcat 10 avec Nginx sur Rocky Linux 8

Comment installer Joomla avec Nginx sur Rocky Linux

Comment définir la date et l'heure sur Rocky Linux 8 Desktop et Server

Comment installer Nginx sur Rocky Linux 8