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
- Pastikan bahwa paket server terbaru
- Nonaktifkan Selinux
- Menginstal Mariadb
- Membuat pengguna Mysql untuk Bagisto
- Menginstal PHP 7.4 Di Rocky Linux 8
- Menginstal nginx di Rocky Linux 8
- Edit konfigurasi PHP dan php-fpm untuk Bagisto
- Memulai dan mengaktifkan layanan php-fpm
- Menginstal komposer php
- Unduh dan konfigurasikan Bagisto
- Konfigurasikan Nginx untuk melayani Bagosto dari virtualhost
- 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.