GNU/Linux >> Belajar Linux >  >> Cent OS

Instal Apache, MariaDB, PHP (LAMP Stack) Di CentOS 8

LAMPU tumpukan adalah kombinasi dari L inux, A server web pache, M ySQL/M ariaDB, P HP. Panduan langkah demi langkah ini menjelaskan cara menginstal Apache, MariaDB, PHP (LAMP Stack) di server minimal CentOS 8. LAMP stack digunakan untuk menerapkan aplikasi berbasis web dan menghosting situs web dinamis. Saya menguji panduan ini pada CentOS 8, namun langkah-langkah yang diberikan di bawah ini harus bekerja pada server RHEL 8 juga. Mari kita mulai.

Instal Apache, MariaDB, PHP (LAMP Stack) Di CentOS 8

Berikut adalah detail mesin uji saya:

  • Sistem operasi - Server minimal CentOS 8 (8.1.1911 (Core))
  • Alamat IP - 192.168.225.52/24
  • Nama Inang - centos8.ostechnix.lan

Semua perintah yang diberikan di bawah ini harus dijalankan sebagai "root" pengguna. Jika Anda login sebagai pengguna biasa, gunakan 'sudo' di depan setiap perintah. # simbol mewakili saya adalah perintah sebagai pengguna root.

Catatan:

Salah satu pembaruan utama di CentOS 8 adalah manajer paket default telah dimigrasikan dari YUM ke DNF. Namun, Anda masih bisa YUM di CentOS 8 jika sudah terbiasa. Penggunaan DNF sama persis dengan YUM. Saya telah menyusun daftar contoh perintah DNF untuk pemula. Jika Anda tertarik untuk mengetahui cara menggunakan DNF, lihat tautan berikut.

  • Contoh Perintah DNF Untuk Pemula

1. Instal server web Apache di CentOS 8

Untuk menginstal Apache di CentOS 8, jalankan perintah berikut sebagai pengguna root:

# dnf install httpd

Setelah Apache diinstal, aktifkan dan mulai layanan apache menggunakan perintah:

# systemctl enable httpd
# systemctl start httpd

Atau, Anda dapat menggunakan perintah satu baris berikut ini untuk mengaktifkan dan memulai layanan Apache sekaligus.

# systemctl enable --now httpd

Periksa apakah layanan Apache berjalan atau tidak dengan perintah:

# systemctl status httpd

Contoh keluaran:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Seperti yang Anda lihat, layanan Apache dimuat dan berjalan. Dan itu mendengarkan mendengarkan pada port 80. Untuk menemukan layanan mana yang mendengarkan pada port tertentu, lihat panduan ini .

Periksa versi Apache:

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

Selanjutnya, semua port default server Apache 80 dan 443 melalui firewall dan router Anda.

Untuk mengizinkan port http 80 melalui firewall, jalankan:

# firewall-cmd --permanent --add-service=http

Untuk mengizinkan port https 443:

# firewall-cmd --permanent --add-service=https

Mulai ulang firewall untuk menerapkan perubahan menggunakan perintah:

$ systemctl restart firewalld

1.1. Uji server web Apache

Kami baru saja menyelesaikan semua langkah yang diperlukan untuk menerapkan server web Apache. Mari kita lanjutkan dan periksa apakah itu benar-benar berfungsi atau tidak. Untuk melakukannya, buka browser web Anda (pada sistem jarak jauh mana pun di jaringan, karena ini adalah server minimal tanpa GUI) dan navigasikan ke - http://ip-address . Jika Anda telah menginstal GUI di sistem CentOS, Anda dapat menavigasi ke http://localhost atau http://ip-address/ atau http://nama-domain .

Jika semuanya OK, Anda akan melihat halaman pengujian berikut di browser Anda.

Nah, server web Apache berfungsi!

Langkah selanjutnya dalam penyiapan LAMP adalah menginstal server database.

2. Instal server Database MariaDB di CentOS 8

Jalankan perintah berikut dari Terminal untuk menginstal MariaDB di CentOS 8:

# dnf install mariadb-server mariadb

Setelah MariaDB diinstal, aktifkan dan mulai layanan mariadb menggunakan perintah:

# systemctl enable mariadb
# systemctl start mariadb

Atau, gunakan perintah satu baris berikut untuk mengaktifkan dan memulai layanan mariadb sekaligus:

# systemctl enable --now mariadb

Untuk memverifikasi apakah layanan mariadb dimulai atau tidak, jalankan:

# systemctl status mariadb

Contoh keluaran:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

Layanan Mariadb dimuat dan aktif sekarang!

Periksa instal versi MariaDB:

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Setel kata sandi pengguna root basis data (administrator)

Secara default, kata sandi pengguna root basis data kosong. Untuk mengamankan server database, kita perlu mengatur kata sandi untuk pengguna root. Untuk melakukannya, jalankan skrip mysql_secure_installation:

# mysql_secure_installation

Anda akan ditanya beberapa pertanyaan. Baca dan jawablah sesuai dengan itu. Pertama, Anda akan diminta untuk memasukkan kata sandi saat ini untuk pengguna root. Karena kata sandinya kosong secara default, cukup tekan tombol ENTER untuk melanjutkan. Selanjutnya, Anda akan diminta untuk menjawab pertanyaan berikut:

  1. Setel kata sandi root ? - Ketik y untuk mengatur kata sandi dan memasukkan kata sandi dua kali.
  2. Hapus pengguna anonim? - Ketik y untuk menghapus pengguna anonim. Pengguna anonim diberikan untuk tujuan pengujian secara default. Anda harus menghapus pengguna anonim dalam produksi.
  3. Larang login root dari jarak jauh? - Ketik y untuk mencegah pengguna root mengakses server database dari sistem jarak jauh mana pun.
  4. Hapus database pengujian dan akses ke sana? - Ketik y untuk menghapus database pengujian.
  5. Muat ulang tabel hak istimewa sekarang? - Ketik y untuk menerapkan semua perubahan yang dibuat.

Contoh keluaran:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #Type y and press ENTER
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #Type y and ress ENTER
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #Type y and press ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #Type y and press ENTER
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Kami sekarang telah mengamankan instalasi MariaDB.

2.2. Masuk ke shell MariaDB

Jalankan perintah berikut untuk login ke mariadb shell sebagai root user:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Untuk keluar dari shell mariadb, jalankan saja:

exit;

3. Instal PHP di CentOS 8

PHP adalah komponen terakhir dalam tumpukan LAMP. Untuk menginstal php bersama semua modul php lain yang diperlukan, jalankan perintah berikut sebagai pengguna root:

# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Konfigurasi Apache dengan PHP-FPM

Salah satu cara paling umum yang diketahui untuk menjalankan PHP dengan Apache adalah mod_php modul. Namun, PHP-FPM (FastCGI Process Manager) memiliki beberapa keunggulan dibandingkan mod_php. Bagi mereka yang bertanya-tanya, PHP-FPM adalah implementasi FastCGI PHP. PHP-FPM berjalan sebagai server FastCGI mandiri dan meningkatkan kinerja lingkungan PHP Anda secara signifikan.

Kami sudah menginstal php-fpm, jadi mari kita aktifkan dan mulai layanan php-fpm menggunakan perintah:

# systemctl enable php-fpm
# systemctl start php-fpm

Atau, gunakan perintah satu baris berikut untuk mengaktifkan dan memulai layanan php-fpm sekaligus:

# systemctl enable --now php-fpm

Untuk memverifikasi apakah layanan php-fpm dimulai atau tidak, jalankan:

# systemctl status php-fpm

Contoh keluaran:

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Nah, layanan php-fpm telah dimuat dan aktif sekarang.

3.2. Uji PHP

Untuk memverifikasi apakah PHP berfungsi dengan baik atau tidak, buat file contoh bernama “info.php” di folder root web:

# vi /var/www/html/info.php

Tambahkan baris berikut:

<?php 
phpinfo(); 
?>

Mulai ulang layanan Apache untuk menerapkan perubahan:

# systemctl restart httpd

Sekarang, buka browser web Anda dan navigasikan ke http://IP_Address/info.php .

Anda akan melihat halaman php berikut yang mencantumkan semua modul yang diinstal dan detail lainnya seperti versi php, tanggal pembuatan dan perintah, dll.

Selamat! Pada tahap ini, Anda harus memiliki tumpukan LAMP yang berfungsi penuh di server CentOS 8.

Kami telah mempublikasikan instalasi LAMP stack pada platform Linux yang berbeda. Periksa tautan berikut untuk mengetahui cara menyiapkan LAMP di berbagai distribusi Linux.

  • Panduan tumpukan LAMP

Cent OS
  1. Cara Memasang LAMP Stack di CentOS 7

  2. Cara Install Apache dan PHP (LAMP stack) di Rocky Linux/Centos 8

  3. Instal Zenario dengan Apache, PHP dan MariaDB di CentOS 7

  1. Memasang tumpukan LAMP di CentOS 7

  2. Instal Apache, PHP, dan MySQL Pada CentOS 7 (LAMP)

  3. Cara menginstal Apache, PHP 7.1 dan MySQL di CentOS 7.3 (LAMP)

  1. Cara menginstal Apache, PHP 7.2 dan MySQL di CentOS 7.4 (LAMP)

  2. Cara Instal Linux, Apache, MariaDB, PHP (LAMP Stack) di CentOS 7 / RHEL 7

  3. Cara Instal Linux, Apache, MariaDB, PHP (LAMP Stack) di CentOS 8 / RHEL 8