Pada tutorial ini kita akan membahas tentang konfigurasi LEMP Stack pada Server CentOS 7.
LEMP Server, singkatan dari Linux, Nginx, MySQL, PHP/Perl/Python, adalah setup yang sangat populer untuk Server CentOS 7. Dengan menggunakan beberapa aplikasi tambahan, CentOS dapat menjadi server sistem yang cukup andal. MySQL digunakan sebagai database dengan tambahan phpMyAdmin untuk sistem pengelolaannya, lalu Nginx digunakan sebagai server web itu sendiri dan PHP/Perl/Phyton digunakan untuk memproses konten yang dinamis.
Server CentOS yang kita gunakan pada tutorial ini adalah versi 7, dengan sedikit twist yaitu penambahan GUI pada server kita. Tapi tidak perlu khawatir, semua proses instalasinya sama saja dengan Ubuntu Server non GUI, karena semua proses instalasinya akan menggunakan Command Line. Kemudian kita akan melakukan instalasi PHP untuk Environmentnya.
Komposisi pada stack ini sebenarnya bisa kita sesuaikan dengan kebutuhan di lapangan atau client. Kita bisa melihat dari aplikasi apa yang akan di gunakan, di bangun menggunakan bahasa pemrograman apa dan database yang digunakan. Untuk web server sendiri, tergantung dari trafik atau banyaknya user client yang akan mengakses server kita, kita bisa menggunakan Apache, Nginx, atau Litespeed.
Sebelum masuk ke konfigurasi, pastikan bahwa server CentOS 7 kalian selalu up to date, ketikan perintah dibawah ini untuk memeriksa update yang tersedia :
sudo yum update
Selanjutnya kita masuk sebagai super user, ketikan perintah :
su
Lalu masukkan password server kalian.
Kemudian pastikan juga bahwa kalian sudah melakukan konfigurasi dasar pada server CentOS 7 kalian, seperti melakukan instalasi EPEL Repository, dengan mengaktifkan repositori ini akan memberikan kita akses pada paket aplikasi yang tidak tersedia pada repositori standar CentOS.
Baca juga :
Konfigurasi Dasar Pada Server CentOS 7
Dibawah ini adalah tahapan yang akan kita lakukan untuk melakukan konfigurasi LEMP Stack :
- Install Nginx Web Server
- Install MySQL
- Install PHP
- Install phpMyAdmin
Kita mulai saja proses konfigurasi LEMP Stack ini.
1. Install Nginx Web Server
Nginx adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3. Kenapa menggunakan Nginx?, Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya karena penggunaan memori yang kecil.
Sebelumnya menginstal nginx, pastikan bahwa server kalian sudah mengaktifkan EPEL Repository, kalian bisa melihat cara instalasinya pada post kami sebelumnya :
Baca juga :
Konfigurasi Dasar Pada Server CentOS 7
Kita bisa menginstall Nginx dengan mengetikan perintah :
sudo yum install nginx
Disini akan dilakukan pengecekan package Nginx, jika proses pengecekan sudah selesai akan muncul jumlah size paket yang akan diinstal, ketik Y lalu Enter untuk memulai proses instalasi Nginx.
Setelah proses instalasi Nginx selesai, kita bisa mengaktifkan service Nginx pada server kita dengan mengetikan perintah :
sudo systemctl start nginx
Selanjutnya kita enable service nginx server :
sudo systemctl enable nginx.service
Kemudian kita cek status dari service nginx :
sudo systemctl status nginx.service
Output :
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-06-09 14:52:00 WIB; 53s ago
Main PID: 3245 (nginx)
CGroup: /system.slice/nginx.service
├─3245 nginx: master process /usr/sbin/nginx
├─3246 nginx: worker process
└─3247 nginx: worker process
Pastikan bahwa status service nginx sudah enabled dan active.
Terakhir kita bisa melakukan pengecekan apakah service nginx ini sudah berjalan atau belum pada server kita, caranya dengan membuka browser dan ketikan ip server pada address bar.
Jika browser menampilkan halaman default Nginx dari server CentOS, berarti service nginx sudah berhasil kita instal dan berjalan pada server.
2. Install MySQL
Sebelum memutuskan untuk memilih CentOS sebagai server, kalian tentunya sudah memahami bahwa tiap OS memiliki default databasenya masing-masing, seperti CentOS yang menggunakan MariaDB sebagai defaultnya. Untuk menginstalnya kalian hanya perlu mengetik perintah sudo yum install mysql dan secara otomatis akan terinstal database MariaDB, tapi pada tutorial ini kita akan menggunakan MySQL untuk database pada server CentOS 7 kita.
Untuk cara instalasi database MySQL agak sedikit berbeda, kita perlu mengunjungi website repository MySQL pada link dibawah ini :
https://dev.mysql.com/downloads/repo/yum/
Dibawah ini adalah tampilan dari halaman websitenya :
Kita perlu mengimport repository mysql ini kedalam server kita, caranya dengan menggunakan wget dan link repository dari mysql. Kalian bisa menggunakan perintah dibawah ini :
wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
Kalian bisa menyesuaikan dengan versi repositori yang ada pada websitenya, karena versinya bisa saja berbeda karena sudah update.
Selanjutnya kita perlu mengecek kesamaan repositori yang sudah kita import ke dalam server, caranya dengan mengetikan perintah :
md5sum mysql80-community-release-el7-6.noarch.rpm
Output :
62f64deae31dcc2399a0ebe05366498f mysql80-community-release-el7-6.noarch.rpm
Kemudian kalian samakan serial number md5 yang muncul pada output dengan serial number md5 yang ada pada website repo. Ini bertujuan untuk memastikan bahwa repositori yang kita import sama dengan versi resminya dan tidak ada kerusakan atau perubahan.
Selanjutnya kita bisa menginstal repositori mysql ke server dengan mengetikan perintah :
sudo rpm -Uvh mysql80-community-release-el7-6.noarch.rpm
Output :
warning: mysql80-community-release-el7-6.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql80-community-release-el7-6 ################################# [100%]
Kemudian kita perlu mengimport GPG-KEY mysql ke dalam server kita, ketikan perintah dibawah ini :
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
Barulah kita bisa menginstal mysql ke dalam server kita, ketikan perintah dibawah ini :
sudo yum install mysql-server
Setelah mysql terinstal, kita jalankan servicenya dengan mengetikan perintah :
sudo systemctl start mysqld
Kalian bisa mengecek status dari service mysql menggunakan perintah :
sudo systemctl status mysqld
Output :
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-06-09 15:53:40 WIB; 8s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 6118 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 6208 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─6208 /usr/sbin/mysqld
Pastikan bahwa statusnya sudah enabled dan active, jika status masih terdisable kalian bisa mengetikan perintah enable agar service mysql bisa berjalan pada server.
Selanjutnya kita akan melakukan ubahan pada password root mysql, pertama kita akan melihat password default root, caranya dengan mengetikan perintah :
sudo grep 'password' /var/log/mysqld.log
Output :
2022-06-09T08:53:33.426610Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qwkBphbdr3#h
Kalian bisa mencatat atau mengcopy password pada outputnya, kemudian kita setting mysql dengan mengetikan perintah :
sudo mysql_secure_installation
Kemudian masukkan password root yang sudah kita catat atau copy sebelumnya ke dalam terminal.
Selanjutnya kita akan diminta untuk melakukan penggantian password, buat password dengan panjang 12 karakter, terdiri dari angka, simbol dan 1 huruf besar.
Selanjutnya akan muncul output seperti dibawah ini :
Output :
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Kalian bisa ketik N untuk lanjut atau ketik Y jika belum yakin dengan password baru kalian.
Setelah itu, kita dapat mengetik Y pada semua pertanyaan yang muncul.
Output :
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : y
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? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL 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? (Press y|Y for Yes, any other key for No) : y
- 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? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
Sampai pada tahap ini database MySQL sudah terinstal pada server kita.
Kalian bisa melakukan test login dengan perintah :
mysql -u root -p
3. Install PHP
Selanjutnya kita akan menginstal PHP versi 7 pada server kita. PHP digunakan sebagai environment pada server kita untuk pengelolaan konten website. Untuk menginstal PHP kita bisa menggunakan perintah sudo yum install php php-mysql.
Versi yang akan kalian dapatkan jika menggunakan perintah diatas adalah PHP versi 5, versi yang sudah sangat usang, terlebih kita juga akan menginstal phpmyadmin pada server kita, pasti akan terjadi error nanti, karena itulah kita akan menggunakan PHP versi 7 pada server kita.
Untuk menginstal PHP versi 7, kita akan import dulu repositorinya, caranya dengan mengetikan perintah :
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Selanjutnya kita instal repositori yang sudah kita import dengan mengetikan perintah :
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php74
Sekarang kita bisa menginstal PHP pada server kita, ketikan perintah dibawah ini :
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
Setelah proses instalasi PHP selesai, kita perlu merestart Nginx agar service PHP bisa berjalan :
sudo systemctl restart httpd.service
Selanjutnya kita bisa melakukan pengecekan pada service PHP dengan membuat file info.php pada direktori /var/www/html. Fungsi pengecekan instalasi PHP disini adalah untuk memastikan bahwa instalasi php yang dilakukan pada server berhasil.
Kita akses terlebih dahulu direktorinya, ketikan perintah :
cd /var/www/html
Kemudian kita buat file info.php :
touch info.php
Selanjutnya kita lakukan ubahan pada file info.php :
nano info.php
Lalu masukkan script dibawah ini ke dalam file info.php :
<?php
phpinfo();
?>
Jika sudah tekan CTRL+X untuk keluar dan ketik Y untuk menyimpan pengaturan yang sudah dibuat. Selanjutnya kita bisa membuka browser dan ketikan ip_address_server/info.php ke dalam address bar.
Terlihat versi PHP yang terinstal pada server kita adalah versi 7, sampai pada tahap ini kita sudah berhasil menginstal PHP dan menjalankan service PHP pada server.
4. Install phpMyAdmin
Sebelum menginstal phpmyadmin, kita perlu melakukan import dan menginstal EPEL Repository pada server kita.
sudo yum install epel-release
Baca juga :
Konfigurasi Dasar Pada Server CentOS 7
Jika repositori EPEL sudah tersedia pada server, kalian bisa menginstal phpmyadmin dengan mengetikan perintah :
sudo yum install phpmyadmin
Setelah phpmyadmin selesai di instal, kita perlu melakukan ubahan pada konfigurasinya, ketikan perintah dibawah ini :
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Kemudian tambahkan rule autentikasi dan lakukan ubahan pada ip 127.0.0.1 ke alamat ip server kalian seperti dibawah ini :
Output :
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpMyAdmin/.htpasswd
Require valid-user
<IfModule mod_authz_core.c>
# Apache 2.4
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpMyAdmin/.htpasswd
Require valid-user
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require all granted
Require ip 10.10.10.10
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Require all granted
Allow from 10.10.10.10
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require all granted
Require ip 10.10.10.10
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 10.10.10.10
Allow from ::1
</IfModule>
</Directory>
Jika sudah tekan CTRL+X untuk keluar dan ketik Y untuk menyimpan pengaturan yang sudah dibuat.
Selanjutnya masuk ke dalam terminal mysql untuk menambahkan identifikasi pada user root mysql dengan mengetikan perintah :
mysql -u root -p
Kemudian ketikan query dengan format dibawah ini :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password_User_Root';
Terakhir kita bisa akses phpmyadmin menggunakan browser dan test login menggunakan user root.
Sampai pada langkah ini kita berhasil menginstal phpmyadmin ke dalam server kita, terlihat tidak ada pesan error pada dashboard phpmyadmin.
Seperti itu tadi cara bagaimana untuk melakukan setup LEMP Stack pada Server CentOS 7, cukup banyak tahapan yang harus dilakukan dengan proses import dan instalasi repositori lainnya.
Hal ini disebabkan karena komposisi dari web server kita yang beberapa menggunakan aplikasi yang tidak tersedia pada repositori bawaan CentOS.
Jadi kita diharuskan untuk mengimport dan menginstal repositori dari aplikasi yang ingin kita instal, baru setelah itu kita bisa menginstal aplikasi yang kita inginkan pada komposisi web server kita.
Sekian untuk tutorial konfigurasi LEMP Stack pada Server CentOS 7, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.
0 comments: