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
- Assurez-vous que les packages du serveur sont à jour
- Désactiver Selinux
- Installer Mariadb
- Création d'un utilisateur Mysql pour Bagisto
- Installation de PHP 7.4 dans Rocky Linux 8
- Installation de nginx dans Rocky Linux 8
- Modifier la configuration PHP et php-fpm pour Bagisto
- Démarrer et activer le service php-fpm
- Installer le compositeur php
- Télécharger et configurer Bagisto
- Configurer Nginx pour servir Bagosto à partir d'un hôte virtuel
- 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.