Menginstal LEMP (Nginx, PHP, MySQL dengan mesin MariaDB dan PhpMyAdmin) di Arch Linux


Karena model Rilis Bergulir yang mencakup perangkat lunak mutakhir Arch Linux tidak dirancang dan dikembangkan untuk dijalankan sebagai server guna menyediakan layanan jaringan yang andal karena memerlukan waktu ekstra untuk pemeliharaan, peningkatan konstan, dan konfigurasi file yang masuk akal.

Namun, tetap saja, karena Arch Linux hadir dengan instalasi inti CD dengan sedikit perangkat lunak pra-instal, ini dapat mewakili titik awal yang kuat untuk menginstal sebagian besar layanan jaringan populer saat ini, termasuk < b>LEMP atau LAMP, Apache Web Server, Nginx, PHP, database SQL, Samba, server FTP, BIND dan lain-lain, banyak di antaranya disediakan dari Arch Repositori resmi Linux dan lainnya dari AUR.

Tutorial ini akan memandu cara menginstal dan mengkonfigurasi tumpukan LEMP (Nginx, PHP , MySQL dengan mesin MariaDB dan PhpMyAdmin) dari jarak jauh menggunakan SSH, yang dapat memberikan landasan yang kuat untuk membangun Aplikasi Server Web.

Persyaratan

Panduan Instalasi Arch Linux sebelumnya, kecuali bagian terakhir tentang jaringan dengan DHCP.

Langkah 1: Tetapkan IP Statis pada Antarmuka Jaringan

1. Setelah instalasi inti Arch Linux minimal, boot ulang server Anda, masuk dengan akun root atau akun sudo administratif yang setara, dan identifikasi nama perangkat NIC sistem Anda menggunakan tautan ip perintah.

ip link

2. Untuk menetapkan konfigurasi jaringan statis kita akan menggunakan paket Netctl untuk mengelola koneksi jaringan. Setelah Anda berhasil mengidentifikasi nama Antarmuka Jaringan Anda, salin templat file ethernet-static ke jalur sistem netctl dan ubah namanya menjadi skema penamaan deskriptif ( coba gunakan string “statis” yang digabungkan dengan nama NIC), dengan mengeluarkan perintah berikut.

cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. Langkah selanjutnya adalah mengedit file template baru ini dengan mengubah arahan file dan memberikan pengaturan jaringan Anda yang sebenarnya ( Antarmuka, IP/Netmask, Gateway, Broadcast, DNS) seperti pada kutipan di bawah ini.

nano  /etc/netctl/static.ens33

Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. Langkah selanjutnya adalah memulai koneksi jaringan Anda melalui alat sistem netctl dan memverifikasi konektivitas sistem Anda dengan mengeluarkan perintah berikut.

netctl start static.ens33
netctl status static.ens33

5. Jika Anda mendapatkan status keluar hijau aktif, Anda telah berhasil mengonfigurasi Antarmuka Jaringan dan inilah waktunya untuk mengaktifkannya secara otomatis pada layanan seluruh sistem. Uji juga jaringan Anda dengan menjalankan perintah ping terhadap nama domain dan juga, instal paket net-tools (fitur paling terkenal dari paket ini adalah perintah ifconfig yang Arch pengembang dianggap sudah tidak digunakan lagi dan menggantinya dengan iproute2).

Aktifkan konfigurasi NIC di seluruh sistem
netctl enable static.ens33
Instal paket net-tools
pacman -S net-tools

6. Sekarang Anda dapat menjalankan perintah ifconfig untuk memverifikasi pengaturan Antarmuka Jaringan Anda dan memeriksa apakah semuanya ditampilkan dengan benar, lalu boot ulang sistem Anda untuk memastikan semuanya sudah siap dan dikonfigurasi dengan benar.

ping linux-console.net

Langkah 2: Instal Perangkat Lunak LEMP

Seperti yang ditunjukkan dalam artikel ini, pendahuluan LEMP adalah singkatan dari Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB yang merupakan salah satu platform aplikasi web yang paling banyak tersebar saat ini setelah LAMP (the tumpukan yang sama dengan Apache dalam persamaan).

7. Sebelum benar-benar menginstal tumpukan LEMP kita perlu memperbarui sistem dan kemudian mendapatkan kendali jarak jauh ke server Arch Linux. Seperti yang mungkin Anda ketahui OpenSSH adalah kandidat utama untuk pekerjaan ini, jadi lanjutkan dan instal, mulai daemon SSH dan aktifkan di seluruh sistem.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Sekarang saatnya melanjutkan instalasi LEMP. Karena tutorial ini dimaksudkan sebagai panduan komprehensif, saya akan membagi instalasi tumpukan LEMP menjadi bagian-bagian kecil, langkah demi langkah.

8. Pertama-tama instal Nginx Web Server, lalu jalankan dan verifikasi statusnya dengan mengeluarkan perintah berikut.

sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx

9. Layanan selanjutnya yang akan diinstal adalah database MySQL. Keluarkan perintah berikut untuk menginstal server database MySQL dan pilih mesin MariaDB, lalu mulai dan verifikasi status daemon.

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld

10. Langkah selanjutnya adalah menyediakan lingkungan yang sangat aman untuk database MySQL dengan memberikan kata sandi untuk akun root MySQL, menghapus akun pengguna anonim, menghapus database pengujian dan akun root yang dapat diakses dari luar localhost. Jalankan perintah berikut untuk meningkatkan keamanan MySQL, tekan [Enter] untuk kata sandi akun root saat ini, lalu jawab Ya untuk semua pertanyaan (juga siapkan kata sandi akun root Anda).

sudo mysql_secure_installation

Catatan: Jangan samakan akun root MySQL dengan akun root sistem Linux – keduanya adalah hal yang berbeda – tidak terlalu berbeda tetapi keduanya berjalan pada level yang berbeda.

Untuk memverifikasi keamanan MySQL saat login ke database menggunakan sintaks perintah mysql -u root -p, berikan kata sandi root Anda lalu keluar dari database dengan perintah exit;.

mysql -u root -p

11. Sekarang saatnya menginstal bahasa skrip sisi server PHP agar dapat mengembangkan dan menjalankan aplikasi web dinamis yang kompleks, tidak hanya melayani HTML/CSS kode.

Karena kita menggunakan Nginx sebagai server web, kita perlu menginstal modul yang didukung PHP-FPM untuk berkomunikasi melalui Fast Common Gateway dan mengubah konten dinamis yang dihasilkan oleh skrip PHP.

Keluarkan baris perintah berikut untuk menginstal layanan PHP-FPM, lalu mulai daemon dan verifikasi status.

sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

Untuk membuat daftar semua modul PHP yang tersedia, jalankan perintah berikut.

sudo pacman –S php[TAB]
sudo pacman –Ss | grep php

12. Salah satu langkah terakhir adalah menginstal Antarmuka Web PhpMyAdmin untuk database MySQL. Keluarkan perintah berikut untuk menginstal PhpMyAdmin bersama dengan modul PHP yang diperlukan, lalu buat tautan simbolis untuk jalur sistem PhpMyAdmin ke jalur root default Nginx.

pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Kemudian konfigurasikan file php.ini untuk menyertakan ekstensi yang diperlukan oleh aplikasi PhpMyAdmin.

sudo nano /etc/php/php.ini

Temukan dengan tombol [CTRL+W] dan batalkan komentar (hapus ; di awal baris) baris berikut.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

Pada file yang sama cari dan edit open_basedir direktif agar menyerupai dengan direktori yang disertakan berikut ini.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. Langkah selanjutnya adalah mengaktifkan PHP-FPM FastCGI pada arahan localhost Nginx. Keluarkan perintah selanjutnya untuk mem-backup konfigurasi file server web nginx.conf lalu ganti dengan konten berikut.

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf

Tambahkan seluruh konten berikut di nginx.conf.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. Setelah semua konfigurasi file dibuat, yang perlu Anda lakukan hanyalah memulai ulang layanan Nginx dan PHP-FPM dan arahkan browser Anda ke URL http://localhost/phpmyadmin dari node lokal atau http://arch_IP/phpmyadmin dari komputer lain.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Jika semuanya berjalan sebagaimana mestinya, langkah terakhir adalah mengaktifkan LEMP seluruh sistem dengan perintah berikut.

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld

Selamat! Anda telah menginstal dan mengkonfigurasi LEMP di Arch Linux dan, sekarang, Anda memiliki antarmuka dinamis penuh untuk memulai dan mengembangkan aplikasi web.

Meskipun Arch Linux bukan sistem yang paling cocok untuk dijalankan pada server produksi karena model rilis bergulirnya yang berorientasi pada komunitas, ia dapat menjadi sumber yang sangat cepat dan andal untuk lingkungan produksi kecil yang tidak kritis.