In questa guida impareremo come configurare Laravel Bagisto con Nginx e PHP-FPM con MariaDB come fonte dati.
Contenuti correlati:
- Come installare Mysql 8 su Rocky Linux/Centos 8
Indice dei contenuti
- Assicurati che i pacchetti del server siano aggiornati
- Disabilita Selinux
- Installazione di Mariadb
- Creazione utente Mysql per Bagisto
- Installazione di PHP 7.4 in Rocky Linux 8
- Installazione di nginx in Rocky Linux 8
- Modifica la configurazione PHP e php-fpm per Bagisto
- Avvio e abilitazione del servizio php-fpm
- Installazione del compositore php
- Scarica e configura Bagisto
- Configura Nginx per servire Bagosto da virtualhost
- Accesso a Bagisto dalla web url
1. Assicurati che i pacchetti del server siano aggiornati
Assicuriamoci che i nostri pacchetti server siano aggiornati con questo comando:
sudo dnf -y update
Installa i pacchetti comuni di cui avremo bisogno
sudo dnf install -y git unzip vim
Configura anche il fuso orario
sudo timedatectl set-timezone Africa/Nairobi
2. Disabilita SELinux
Quindi, disabilitiamo SELinux. Imposteremo SELinux su permissivo. Modifica questo file:
sudo vim /etc/selinux/config
Quindi aggiorna questa riga:
SELINUX=permisive
Per assicurarti che le modifiche vengano applicate immediatamente senza riavviare, usa questo comando:
setenforce 0
3. Installazione di Mariadb
Mariadb è un popolare sistema di gestione relazionale Opensource. È disponibile nei repository predefiniti come mariadb-server
.
Installalo con questo comando:
sudo dnf install -y mariadb-server
Una volta installato mariadb, puoi confermare i dettagli usando questo comando:
$ 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.
Il Servizio non verrà avviato per impostazione predefinita. Inizia con questo comando:
sudo systemctl start mariadb
Conferma lo stato con questo comando:
$ 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.
Per assicurarti che mariadb si avvii all'avvio, abilitalo con questo comando systemd:
sudo systemctl enable mariadb
Una volta che il servizio MySQL è in esecuzione, è necessario proteggerlo. Mysql fornisce un'utilità della riga di comando che lo farà:
sudo mysql_secure_installation
Il comando precedente ti guiderà attraverso le richieste per proteggere e impostare una password di root per l'istanza mysql.
Per ulteriori informazioni su come installare e configurare mariadb in Rocky Linux, consulta Come installare e configurare Mariadb 10 in Rocky Linux/Alma Linux 8.
4. Creazione utente mysql per Bagisto
Si consiglia sempre di avere un utente dedicato per ogni app che si connette al DB. Dai un'occhiata a questa guida sulla gestione delle autorizzazioni MySQL qui. Imposteremo un database, un utente e una password che verranno utilizzati da nextcloud:
Connettiti al server MySQL:
mysql -u root -p
Dopo aver fornito la tua password di root, inserisci quanto segue nel prompt di mysql:
create database bagisto;
create user 'bagisto_user'@'%' identified by 'S0mStrongPa$$word';
grant all privileges on bagisto.* to 'bagisto_user'@'%';
Ora che abbiamo configurato la nostra connessione mysql, andiamo alla sezione successiva in cui installiamo e configuriamo PHP e Nginx.
5. Installazione di PHP 7.4 in Rocky Linux
Bagisto funziona bene con PHP 7.4. La versione php predefinita in Rocky Linux potrebbe essere obsoleta. Per avere il controllo sulla versione php, installiamo il repository di rilascio remi usando questo comando:
sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Abilita la versione 7.4 di php
sudo dnf module enable -y php:remi-7.4
Puoi confermare che la versione corretta è abilitata usando questo comando:
sudo dnf module list php
Quindi installa php e le dipendenze
sudo dnf install -y php \
php-cli \
php-common \
php-fpm \
php-intl \
php-gd \
php-zip \
php-mysql
Controlla la versione 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
Per maggiori informazioni sulla configurazione di PHP e Nginx, consulta questa guida Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8.
6. Installazione di Nginx in Rocky Linux 8
Quindi, installiamo Nginx nel nostro sistema. Usa questo comando per installare nginx
sudo dnf install -y nginx
Nginx non verrà avviato per impostazione predefinita. Inizia con questo comando:
sudo systemctl start nginx
Verifica lo stato usando questo comando:
$ 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)
indica che il servizio è ora attivo e funzionante.
Per abilitare il servizio all'avvio, utilizzare questo comando:
sudo systemctl enable nginx
7. Modifica PHP e php-fpm Config per Bagisto
Aggiorna la configurazione php per ottimizzare per la nostra app.
Apri il file php ini
sudo vim /etc/php.ini
Quindi modificare queste impostazioni sui valori mostrati. Aggiorna il fuso orario per adattarlo al tuo.
memory_limit = 2G
max_execution_time = 360
date.timezone = Africa/Nairobi
cgi.fix_pathinfo=0
Quindi modifichiamo le impostazioni di php-fpm.
sudo vim /etc/php-fpm.d/www.conf
Quindi aggiorna questi valori
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
8. Avvio e abilitazione del servizio php-fpm
Il servizio php-fpm non è avviato per impostazione predefinita. Inizia a usare questo comando:
sudo systemctl start php-fpm
Conferma controllando lo stato:
$ 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.
Abilita l'avvio del servizio all'avvio
sudo systemctl enable php-fpm
9. Installazione di php Composer
Composer viene utilizzato per la gestione delle dipendenze
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');"
Sposta il file phar scaricato nel cestino
sudo mv composer.phar /usr/local/bin/composer
10. Scarica e configura Bagisto
Ora che abbiamo configurato correttamente il server LEMP nel nostro sistema, scarichiamo e configuriamo Bagisto. Puoi ottenere l'ultima versione di Bagisto dalla pagina Download. Usa questo comando per scaricare ed estrarre Bagisto nel terminale:
cd /tmp
curl -LO https://github.com/bagisto/bagisto/archive/refs/tags/v1.3.3.tar.gz
tar -xzvf v1.3.3.tar.gz
Sposta il contenuto estratto in /var/www dove può essere servito da nginx
sudo mv bagisto-1.3.3/ /var/www/bagisto
Passa alla directory e installa le dipendenze usando il compositore
cd /var/www/bagisto
sudo /usr/local/bin/composer install
Assicurati che Nginx possieda il contenuto
sudo chown -R nginx.nginx /var/www/bagisto/
11. Configura Nginx per servire Bagisto da un host virtuale
Siamo riusciti a scaricare i contenuti di NextCloud su /var/www/bagisto
. Il prossimo passo è impostare Nginx per servirlo.
Creiamo un sito virtuale nella directory in cui nginx offre contenuti qui /etc/nginx/conf.d
:
sudo vim /etc/nginx/conf.d/bagisto.conf
Affinché funzioni, assicurati che i record DNS utilizzati siano mappati con l'IP del server.
Aggiungi il seguente contenuto:
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;
}
}
Una volta apportate le modifiche precedenti, è necessario riavviare il server nginx e il server php-fom. Usa questi comandi nel terminale per ottenerlo.
sudo systemctl restart php-fpm nginx
12. Accesso a Bagisto dalla web url
Quindi vai al dominio impostato, http://bagisto.citizix.com/
per me.
Verrai guidato attraverso la configurazione del server, la configurazione dell'ambiente, la configurazione del database. Fatto ciò, puoi avviare l'installazione. Infine crei un amministratore e aggiungi le configurazioni SMTP.
Conclusione
In questa guida siamo riusciti a configurare lo stack LEMP per servire la piattaforma eComerce di Bagisto.