GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Setting Laravel Bagisto dengan Nginx dan PHP-FPM di Rocky Linux/Alma Linux 8

Dalam panduan ini kita akan mempelajari cara mengkonfigurasi Laravel Bagisto dengan Nginx dan PHP-FPM dengan MariaDB sebagai sumber data.

Konten Terkait:

  • Cara menginstal Mysql 8 di Rocky Linux/Centos 8

Daftar Isi

  1. Pastikan bahwa paket server terbaru
  2. Nonaktifkan Selinux
  3. Menginstal Mariadb
  4. Membuat pengguna Mysql untuk Bagisto
  5. Menginstal PHP 7.4 Di Rocky Linux 8
  6. Menginstal nginx di Rocky Linux 8
  7. Edit konfigurasi PHP dan php-fpm untuk Bagisto
  8. Memulai dan mengaktifkan layanan php-fpm
  9. Menginstal komposer php
  10. Unduh dan konfigurasikan Bagisto
  11. Konfigurasikan Nginx untuk melayani Bagosto dari virtualhost
  12. Mengakses Bagisto dari url web

1. Pastikan paket server terbaru

Mari kita pastikan bahwa paket server kita up to date dengan perintah ini:

sudo dnf -y update

Instal paket umum yang kita perlukan

sudo dnf install -y git unzip vim

Konfigurasikan juga zona waktu

sudo timedatectl set-timezone Africa/Nairobi

2. Nonaktifkan SELinux

Selanjutnya, mari kita nonaktifkan SELinux. Kami akan mengatur SELinux ke permisif. Edit file ini:

sudo vim /etc/selinux/config

Kemudian perbarui baris ini:

SELINUX=permisive

Untuk memastikan bahwa perubahan diterapkan segera tanpa reboot, gunakan perintah ini:

setenforce 0

3. Menginstal Mariadb

Mariadb adalah sistem manajemen relasional Opensource yang populer. Ini tersedia di repositori default sebagai mariadb-server .

Instal dengan perintah ini:

sudo dnf install -y mariadb-server

Setelah mariadb diinstal, Anda dapat mengonfirmasi detailnya menggunakan perintah ini:

$ 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.

Layanan tidak akan dimulai secara default. Mulailah dengan perintah ini:

sudo systemctl start mariadb

Konfirmasi status dengan perintah ini:

$ 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.

Untuk memastikan bahwa mariadb dimulai saat boot, aktifkan dengan perintah systemd ini:

sudo systemctl enable mariadb

Setelah layanan mysql berjalan, Anda harus mengamankannya. Mysql menyediakan utilitas baris perintah yang akan melakukan itu:

sudo mysql_secure_installation

Perintah di atas akan membawa Anda melalui petunjuk untuk mengamankan dan menetapkan kata sandi root untuk instance mysql.

Untuk info lebih lanjut tentang cara menginstal dan mengkonfigurasi mariadb di Rocky Linux, lihat Cara menginstal dan Mengonfigurasi Mariadb 10 di Rocky Linux/Alma Linux 8.

4. Membuat pengguna mysql untuk Bagisto

Selalu disarankan untuk memiliki pengguna khusus untuk setiap aplikasi yang terhubung ke DB. Lihat panduan ini tentang mengelola izin mysql di sini. Kami akan menyiapkan database, pengguna, dan kata sandi untuk digunakan oleh nextcloud:

Hubungkan ke server mysql:

mysql -u root -p

Setelah Menyediakan kata sandi root Anda, masukkan yang berikut ke prompt mysql:

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

Sekarang kita telah mengkonfigurasi koneksi mysql kita, mari kita pergi ke bagian berikutnya di mana kita menginstal dan mengkonfigurasi PHP dan Nginx.

5. Menginstal PHP 7.4 di Rocky Linux

Bagisto bekerja dengan baik dengan PHP 7.4. Versi php default di Rocky Linux mungkin sudah usang. Untuk mengontrol versi php, mari kita instal repo rilis remi menggunakan perintah ini:

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

Aktifkan php versi 7.4

sudo dnf module enable -y php:remi-7.4

Anda dapat mengonfirmasi bahwa versi yang tepat diaktifkan menggunakan perintah ini:

sudo dnf module list php

Kemudian instal php dan dependensi

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

Periksa versi 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

Untuk info lebih lanjut tentang pengaturan PHP dan Nginx, lihat panduan ini Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Rocky Linux/Alma Linux 8.

6. Menginstal Nginx di Rocky Linux 8

Selanjutnya, mari kita instal Nginx di sistem kita. Gunakan perintah ini untuk menginstal nginx

sudo dnf install -y nginx

Nginx tidak akan dimulai secara default. Mulailah dengan perintah ini:

sudo systemctl start nginx

Periksa status menggunakan perintah ini:

$ 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) menunjukkan bahwa layanan sekarang aktif dan berjalan.

Untuk mengaktifkan layanan saat boot, gunakan perintah ini:

sudo systemctl enable nginx

7. Edit PHP dan php-fpm Config untuk Bagisto

Perbarui konfigurasi php untuk mengoptimalkan aplikasi kita.

Buka file php ini

sudo vim /etc/php.ini

Kemudian ubah pengaturan ini ke nilai yang ditampilkan. Perbarui zona waktu agar sesuai dengan Anda.

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

Selanjutnya mari kita edit pengaturan php-fpm.

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

Kemudian perbarui nilai ini

user = nginx
group = nginx

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

8. Memulai dan mengaktifkan layanan php-fpm

Layanan php-fpm tidak dimulai secara default. Mulai gunakan perintah ini:

sudo systemctl start php-fpm

Konfirmasi dengan memeriksa status:

$ 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.

Aktifkan layanan untuk memulai saat boot

sudo systemctl enable php-fpm

9. Menginstal Komposer php

Komposer digunakan untuk manajemen ketergantungan

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');"

Pindahkan file phar yang diunduh ke bin

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

10. Unduh dan konfigurasikan Bagisto

Sekarang kita telah berhasil mengonfigurasi server LEMP di sistem kita, mari kita unduh dan atur Bagisto. Anda bisa mendapatkan Bagisto versi terbaru dari halaman Download. Gunakan perintah ini untuk mengunduh dan mengekstrak Bagisto di 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

Pindahkan konten yang diekstrak ke /var/www di mana dapat dilayani oleh nginx

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

Beralih ke direktori dan instal dependensi menggunakan komposer

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

Pastikan Nginx memiliki kontennya

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

11. Konfigurasi Nginx untuk melayani Bagisto dari virtual host

Kami berhasil mendownload konten NextCloud ke /var/www/bagisto . Bit berikutnya untuk menyiapkan Nginx untuk menyajikannya.

Mari kita buat situs virtual di direktori tempat nginx menyajikan konten di sini /etc/nginx/conf.d :

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

Agar ini berfungsi, pastikan bahwa catatan DNS yang digunakan dipetakan dengan IP server.

Tambahkan konten berikut:

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;
    }
}

Setelah perubahan di atas dibuat, kita perlu me-restart server nginx dan server php-fom. Gunakan perintah ini di terminal untuk mencapainya.

sudo systemctl restart php-fpm nginx

12. Mengakses Bagisto dari url web

Kemudian buka domain yang Anda tetapkan, http://bagisto.citizix.com/ untuk saya.

Anda akan dibawa melalui konfigurasi Server, Konfigurasi Lingkungan, Konfigurasi Database. Setelah selesai, Anda dapat memulai instalasi. Terakhir Anda Buat Administrator dan tambahkan konfigurasi SMTP.

Kesimpulan

Dalam panduan ini kami berhasil menyiapkan tumpukan LEMP untuk melayani platform eComerce Bagisto.


Rocky Linux
  1. Cara Menginstal Nginx Dengan PHP-FPM Dan MySQL Di openSUSE 12.1

  2. Bagaimana Cara Install WordPress dengan LEMP (Nginx, MariaDB, dan PHP) di Rocky Linux 8 ?

  3. Cara menginstal dan menggunakan Podman di Rocky Linux/Alma Linux/Centos 8

  1. Cara Install dan Setting PHP dan Nginx (LEMP) di Rocky Linux/Alma Linux 8

  2. Cara Mengatur Server dan Klien NFS di Rocky/Alma Linux 8

  3. Cara Install NodeJS dan NPM di Rocky Linux/Alma Linux 8

  1. Cara Install dan Konfigurasi HAProxy load balancer di Rocky Linux/Alma Linux 8

  2. Cara Setting Laravel Bagisto dengan Nginx dan PHP-FPM di Rocky Linux/Alma Linux 8

  3. Cara Install dan Konfigurasi Memcached di Rocky Linux/Alma Linux 8