V této příručce se naučíme, jak nakonfigurovat Laravel Bagisto s Nginx a PHP-FPM s MariaDB jako zdrojem dat.
Související obsah:
- Jak nainstalovat Mysql 8 na Rocky Linux/Centos 8
Obsah
- Ujistěte se, že jsou serverové balíčky aktuální
- Zakázat Selinux
- Instalace Mariadb
- Vytvoření uživatele Mysql pro Bagisto
- Instalace PHP 7.4 v Rocky Linux 8
- Instalace nginx v Rocky Linux 8
- Upravit konfiguraci PHP a php-fpm pro Bagisto
- Spuštění a povolení služby php-fpm
- Instalace skladatele php
- Stáhněte si a nakonfigurujte Bagisto
- Nakonfigurujte Nginx tak, aby obsluhoval Bagosto z virtuálního hostitele
- Přístup k Bagisto z webové adresy URL
1. Ujistěte se, že serverové balíčky jsou aktuální
Ujistíme se, že naše serverové balíčky jsou aktuální pomocí tohoto příkazu:
sudo dnf -y update
Nainstalujte běžné balíčky, které budeme potřebovat
sudo dnf install -y git unzip vim
Nakonfigurujte také časové pásmo
sudo timedatectl set-timezone Africa/Nairobi
2. Zakázat SELinux
Dále deaktivujeme SELinux. Nastavíme SELinux na permisivní. Upravte tento soubor:
sudo vim /etc/selinux/config
Pak aktualizujte tento řádek:
SELINUX=permisive
Chcete-li zajistit, aby se změny projevily okamžitě bez restartu, použijte tento příkaz:
setenforce 0
3. Instalace Mariadb
Mariadb je populární Opensource relační systém pro správu. Je k dispozici ve výchozích úložištích jako mariadb-server
.
Nainstalujte jej pomocí tohoto příkazu:
sudo dnf install -y mariadb-server
Jakmile je mariadb nainstalován, můžete potvrdit podrobnosti pomocí tohoto příkazu:
$ 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.
Služba se ve výchozím nastavení nespustí. Začněte tímto příkazem:
sudo systemctl start mariadb
Potvrďte stav tímto příkazem:
$ 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.
Chcete-li zajistit, aby se mariadb spustil při bootování, povolte jej pomocí tohoto příkazu systemd:
sudo systemctl enable mariadb
Jakmile je služba mysql spuštěna, musíte ji zabezpečit. Mysql poskytuje nástroj příkazového řádku, který to udělá:
sudo mysql_secure_installation
Výše uvedený příkaz vás provede výzvami k zabezpečení a nastavení hesla uživatele root pro instanci mysql.
Další informace o tom, jak nainstalovat a nakonfigurovat mariadb v Rocky Linuxu, najdete v části Jak nainstalovat a konfigurovat Mariadb 10 v Rocky Linux/Alma Linux 8.
4. Vytváření uživatele mysql pro Bagisto
Vždy se doporučuje mít vyhrazeného uživatele pro každou aplikaci, která se připojuje k DB. Podívejte se na tohoto průvodce správou oprávnění mysql zde. Nastavíme databázi, uživatele a heslo, které bude nextcloud používat:
Připojte se k serveru mysql:
mysql -u root -p
Po zadání hesla uživatele root zadejte do výzvy mysql následující:
create database bagisto;
create user 'bagisto_user'@'%' identified by 'S0mStrongPa$$word';
grant all privileges on bagisto.* to 'bagisto_user'@'%';
Nyní, když jsme nakonfigurovali naše připojení mysql, pojďme k další části, kde nainstalujeme a nakonfigurujeme PHP a Nginx.
5. Instalace PHP 7.4 v Rocky Linux
Bagisto funguje dobře s PHP 7.4. Výchozí verze php v Rocky Linuxu může být zastaralá. Chcete-li mít kontrolu nad verzí php, nainstalujte remi release repo pomocí tohoto příkazu:
sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Povolit verzi 7.4 php
sudo dnf module enable -y php:remi-7.4
Pomocí tohoto příkazu můžete potvrdit, že je povolena správná verze:
sudo dnf module list php
Poté nainstalujte php a závislosti
sudo dnf install -y php \
php-cli \
php-common \
php-fpm \
php-intl \
php-gd \
php-zip \
php-mysql
Zkontrolujte verzi 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
Další informace o nastavení PHP a Nginx najdete v této příručce Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8.
6. Instalace Nginx v Rocky Linux 8
Dále nainstalujme Nginx do našeho systému. Tento příkaz použijte k instalaci nginx
sudo dnf install -y nginx
Nginx se ve výchozím nastavení nespustí. Začněte tímto příkazem:
sudo systemctl start nginx
Zkontrolujte stav pomocí tohoto příkazu:
$ 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)
označte, že služba je nyní spuštěna.
Chcete-li službu povolit při spouštění, použijte tento příkaz:
sudo systemctl enable nginx
7. Upravte PHP a php-fpm Config pro Bagisto
Aktualizujte konfiguraci php pro optimalizaci pro naši aplikaci.
Otevřete soubor php ini
sudo vim /etc/php.ini
Poté upravte tato nastavení na zobrazené hodnoty. Aktualizujte časové pásmo, aby odpovídalo vašemu.
memory_limit = 2G
max_execution_time = 360
date.timezone = Africa/Nairobi
cgi.fix_pathinfo=0
Nyní upravíme nastavení php-fpm.
sudo vim /etc/php-fpm.d/www.conf
Poté aktualizujte tyto hodnoty
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
8. Spuštění a povolení služby php-fpm
Služba php-fpm není ve výchozím nastavení spuštěna. Začněte používat tento příkaz:
sudo systemctl start php-fpm
Potvrďte kontrolou stavu:
$ 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.
Povolte spuštění služby při spuštění
sudo systemctl enable php-fpm
9. Instalace php Composer
Composer se používá pro správu závislostí
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');"
Přesuňte stažený soubor phar do koše
sudo mv composer.phar /usr/local/bin/composer
10. Stáhněte a nakonfigurujte Bagisto
Nyní, když jsme úspěšně nakonfigurovali LEMP server v našem systému, stáhněte si a nastavte Bagisto. Nejnovější verzi Bagisto můžete získat ze stránky ke stažení. Tento příkaz použijte ke stažení a rozbalení Bagisto v terminálu:
cd /tmp
curl -LO https://github.com/bagisto/bagisto/archive/refs/tags/v1.3.3.tar.gz
tar -xzvf v1.3.3.tar.gz
Přesuňte extrahovaný obsah do /var/www, kde jej může poskytovat nginx
sudo mv bagisto-1.3.3/ /var/www/bagisto
Přepněte se do adresáře a nainstalujte závislosti pomocí skladatel
cd /var/www/bagisto
sudo /usr/local/bin/composer install
Ujistěte se, že Nginx vlastní obsah
sudo chown -R nginx.nginx /var/www/bagisto/
11. Nakonfigurujte Nginx tak, aby obsluhoval Bagisto z virtuálního hostitele
Podařilo se nám stáhnout obsah NextCloud na /var/www/bagisto
. Dalším krokem je nastavení Nginx, aby jej obsluhoval.
Pojďme vytvořit virtuální web v adresáři, kde nginx poskytuje obsah zde /etc/nginx/conf.d
:
sudo vim /etc/nginx/conf.d/bagisto.conf
Aby to fungovalo, ujistěte se, že použité záznamy DNS jsou mapovány s IP serverem.
Přidejte následující obsah:
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;
}
}
Jakmile budou provedeny výše uvedené změny, musíme restartovat server nginx a server php-fom. K tomu použijte tyto příkazy v terminálu.
sudo systemctl restart php-fpm nginx
12. Přístup k Bagisto z webové adresy URL
Poté přejděte na svou nastavenou doménu http://bagisto.citizix.com/
pro mě.
Budete provedeni Konfigurace serveru, Konfigurace prostředí, Konfigurace databáze. Jakmile je to hotovo, můžete zahájit instalaci. Nakonec vytvořte správce a přidejte konfigurace SMTP.
Závěr
V této příručce se nám podařilo nastavit zásobník LEMP, aby sloužil platformě Bagisto eComerce.