LEMP atau Linux, Engine-x, MySQL, dan PHP adalah kumpulan perangkat lunak yang diinstal pada sistem operasi Linux untuk mengaktifkan dan menjalankan aplikasi web berbasis PHP di server web Nginx yang cepat. Tumpukan LEMP menyediakan dasar yang cepat dan andal untuk menghosting aplikasi web. LEMP adalah kumpulan perangkat lunak sumber terbuka yang memiliki kumpulan dokumentasi lengkap sehingga Anda dapat dengan mudah mempelajari lebih lanjut tentang berbagai aplikasi dan cara mereka cocok satu sama lain.
Dalam tutorial ini, saya akan menunjukkan cara menginstal Nginx, MariaDB, dan PHP-FPM pada openSUSE leap 42.1. Kemudian saya akan mengonfigurasi firewall OpenSUSE dengan SuSEfirewall2 untuk mengizinkan akses ke server web Nginx dan menunjukkan cara menambahkan konfigurasi host virtual baru di server web Nginx.
Terakhir, kita akan menginstal phpMyAdmin sebagai alat administrasi database yang mudah digunakan dan mengamankannya dengan mengubah direktori web dan mengaktifkan otentikasi HTTP untuk direktori phpMyAdmin.
Prasyarat
- OpenSUSE Leap 42.1.
- Hak istimewa root.
- Memahami perintah zypper.
Langkah 1 - Instal dan Konfigurasi SuSEfirewall2
SuSEfirewall2 adalah skrip yang menghasilkan aturan iptables berdasarkan file konfigurasi "/etc/sysconfig/SuSEfirewall2". Kami akan menginstal dan mengkonfigurasinya untuk mencegah serangan jaringan pada port server.
Instal SuSEfirewall2 dengan zypper:
zypper di SuSEfirewall2
Ketika instalasi selesai, kita harus membuka beberapa port untuk aplikasi web dan SSH. Kami akan membuka port 22 untuk layanan ssh dan port 80 dan 443 untuk http dan https. Buka direktori "/etc/sysconfig/" dan edit file "SuSEfirewall2":
cd /etc/sysconfig/
vim SuSEfirewall2
Pada baris 253, tambahkan nomor port layanan, dipisahkan dengan spasi:
FW_SERVICES_EXT_TCP="22 80 443"
Simpan file dan keluar.
Restart SuSEfirewall2 dan layanan SSH, kemudian uji konfigurasi port dengan menghubungkan dengan telnet ke server.
Mulai ulang SuSEfirewall2 dan layanan SSH:
/sbin/rcSuSEfirewall2 restart
systemctl restart sshd
Menguji koneksi ssh dengan telnet pada port 22:
telnet 192.168.1.101 22
Langkah 2 - Instal dan Konfigurasi Nginx
Nginx atau engine x adalah server proxy dan HTTP berkinerja tinggi dengan konsumsi memori rendah. Ini digunakan oleh situs web skala besar seperti Netflix, Pinterest, CloudFlare, Github, dll. Nginx memiliki sintaks konfigurasi yang mudah dipelajari dan dapat bertindak juga sebagai penyeimbang beban dengan pemeriksaan kesehatan dan proxy terbalik dengan fitur caching.
Pada langkah ini, kita akan menginstal nginx dan menambahkannya untuk memulai saat boot. Instal dengan perintah "zypper in":
zypper di nginx
Mulai nginx dan aktifkan untuk dimulai saat boot:
systemctl start nginx
systemctl aktifkan nginx
Nginx dimulai sekarang, tetapi jika Anda mencoba mengaksesnya melalui browser web, Anda akan mendapatkan kesalahan terlarang 403. Kesalahan ini terjadi karena tidak ada dokumen indeks standar di folder akar web. Untuk mengatasi masalah ini, buat html indeks baru di direktori web root "/srv/www/htdocs". Buka direktori dan buat file index.html:
cd /srv/www/htdocs/
echo "Ini adalah Nginx OpenSUSE Leap 42.1
"> index.html
Buka browser web Anda dan ketik IP server Anda dan Anda akan mendapatkan halaman indeks:
http://192.168.1.101/
Langkah 3 - Instal dan Konfigurasi MariaDB
MariaDB adalah open source RDBMS (Relational Database management System) bercabang dari MySQL di bawah lisensi GNU GPL. Dalam tutorial ini, kita akan menginstal MariaDB dan mengkonfigurasi kata sandi root untuk shell MariaDB.
Instal MariaDB dengan perintah zypper:
zypper di mariadb mariadb-client
Mulai MariaDB/MySQL dan tambahkan ke boot startup dengan perintah systemctl di bawah ini:
systemctl start mysql
systemctl aktifkan mysql
Selanjutnya, konfigurasikan kata sandi admin untuk MariaDBb/MySQL dengan perintah mysqladmin. Pilihan lain yang dapat Anda gunakan untuk tujuan ini adalah "mysql_secure_installation". Pada langkah ini, saya akan menggunakan mysqladmin:
/usr/bin/mysqladmin -u kata sandi root 'aqwe123'
Catatan:
"aqwe123" adalah kata sandi baru untuk MariaDB/MySQL.
Kemudian login ke shell mysql dengan user root dan password aqwe123:
mysql -u root -p
TYPE PASSWORD 'aqwe123'
Sekarang MariaDB/MySQL diinstal dan dikonfigurasi dengan kata sandi baru kami.
Langkah 4 - Instal dan Konfigurasi PHP-FPM
PHP-FPM atau FastCGI Process Manager adalah alternatif untuk FastCGI PHP lama dengan menyediakan fitur tambahan dan peningkatan kecepatan. PHP-FPM sangat cocok untuk situs kecil dan besar berdasarkan bahasa pemrograman PHP.
Pada langkah ini, kita akan menginstal php5-fpm dengan beberapa ekstensi tambahan yang dibutuhkan oleh phpMyAdmin. Instal php5-fom dan ekstensinya dengan zypper:
zypper di php5 php5-mysql php5-fpm php5-gd php5-mbstring
Ketika instalasi telah selesai, buka direktori php5-fpm dan salin file konfigurasi:
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
Edit konfigurasi dengan perintah vim:
vim php-fpm.conf
Batalkan komentar pada baris 32 untuk mengaktifkan log php-fpm, awalan defaultnya adalah /var dan jika Anda memiliki masalah dengan php5-fpm, Anda dapat memeriksa file log "/var/log/php-fpm.log".
error_log =log/php-fpm.log
Pada baris 148 kita akan mengkonfigurasi pemilik proses nginx ke pengguna Nginx. Ubah pengguna dan grup proses menjadi nginx:
pengguna =nginx
grup =nginx
Baris 159:konfigurasikan php-fpm agar berjalan di bawah file soket, bukan port. Ubah baris itu seperti ini:
listen =/var/run/php-fpm.sock
Dan pada baris 170, ubah hak akses soket unix menjadi pengguna dan grup nginx dengan mode 0660.
listen.owner =nginx
listen.group =nginx
listen.mode =0660
Simpan file dan keluar dari editor.
Selanjutnya, buka direktori PHP cli dan edit file php.ini dengan vim:
cd /etc/php5/cli/
vim php.ini
Ubah nilai cgi.fix_pathinfo menjadi nol untuk alasan keamanan. baris 178:
cgi.fix_pathinfo=0
simpan dan keluar.
Salin php.ini ke direktori conf.d:
cp php.ini /etc/php5/conf.d/
Konfigurasi PHP-FPM dilakukan pada tahap ini, tetapi kita masih perlu mengkonfigurasi Nginx. Kita harus mengatur Nginx untuk bekerja dengan php-fpm.
Buka direktori konfigurasi nginx dan buat cadangan file konfigurasi dengan perintah cp:
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
Edit nginx.conf dengan vim:
vim nginx.conf
Tambahkan index.php pada baris 48:
indeks index.php index.html index.htm;
Tambahkan bagian konfigurasi php baru pada baris 68, ini adalah konfigurasi untuk menangani permintaan file .php.
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
fastcgi / unix; :/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Simpan file dan keluar.
Selanjutnya, uji sintaks file konfigurasi nginx untuk memastikan tidak ada kesalahan. Kemudian mulai daemon php-fpm dan mulai ulang Nginx:
nginx -t
systemctl start php-fpm
systemctl restart nginx
Untuk memastikan php-fpm dan nginx berfungsi dengan baik, kami akan menambahkan file uji php baru. Buka direktori DocumentRoot dan buat file phpinfo dengan nama info.php:
cd /srv/www/htdocs/
echo ""> info.php
Buka browser web Anda ketik alamat ipad server Anda:
http://192.168.1.101/info.php
Nginx dan php-fpm berfungsi sekarang.
Langkah 5 - Konfigurasikan Virtualhost Nginx
Pada langkah ini, saya akan menunjukkan cara menambahkan konfigurasi virtual host untuk sebuah situs web. Kami akan mengkonfigurasi domain baru "www.example.com" dan direktori webroot di "/srv/www/example/". Silakan ganti example dan example.com dengan nama domain Anda sendiri.
GNginx nginx direktori dan buat direktori baru untuk konfigurasi virtualhost.
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Selanjutnya, buat file baru example.conf untuk nama domain virtualhost "example.com".
contoh vim.conf
rekatkan konfigurasi virtualhost di bawah ini:
server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
root /srv/www/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
lokasi ~ \.php$ {
try_files $uri =404;
sertakan fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script__name;
/pra>Simpan file dan keluar.
Sekarang buat direktori untuk situs "example.com" di direktori /srv/www/, dan buat file indeks baru.
mkdir -p /srv/www/example/
cd /srv/www/example/
echo "Ini adalah situs www.example.com.
"> index .html
echo ""> info.phpSekarang buka browser web Anda dan kunjungi domain:
contoh.com
Anda akan diarahkan ke domain www, dan sekarang akses file php:
http://www.example.com/info.php
Langkah 6 - Instal dan Konfigurasi phpMyAdmin
PhpMyAdmin adalah aplikasi berbasis PHP untuk mengelola database MySQL atau MariaDB dari browser web. Pada langkah ini, saya akan mengkonfigurasi phpMyAdmin agar berjalan di bawah php-fpm dan kemudian membuat PHPMyAdmin aman dengan membatasi akses halaman login phpMyAdmin.
Instal phpMyAdmin dengan perintah zypper:
zypper di phpMyAdminPerintah tersebut akan menginstal semua paket yang dibutuhkan oleh phpMyAdmin, termasuk apache2-utils yang diperlukan untuk membuat file password.
Sekarang kita telah menginstal phpMyAdmin pada sistem. Selanjutnya kita akan membuat file htpasswd baru dengan perintah htpasswd.
buat file kata sandi htpasswd:
htpasswd -c /etc/nginx/htpasswd megumi
KETIKA SANDI ANDA untuk megumi penggunaSelanjutnya, kita harus mengonfigurasi Nginx untuk menggunakan autentikasi dasar HTTP untuk direktori phpmyadmin. Kami akan membatasi akses ke halaman login phpMyAdmin dengan auth_basic, dan hanya pengguna yang ada di file "htpasswd" yang bisa login ke phpMyAdmin.
Buka direktori konfigurasi Nginx dan edit file nginx.conf:
cd /etc/nginx/
vim nginx.confTentukan direktori root web di dalam bagian server dengan menambahkan baris baru di bawah baris 40 (nama_server):
nama_server localhost;
root /srv/www/htdocs; #konfigurasi baris baruKemudian tambahkan konfigurasi phpMyAdmin untuk nginx pada baris 60:
lokasi ~ ^/phpMyAdmin/.*\.php$ {
auth_basic "Akses Terbatas";
auth_basic_user_file /etc/nginx/htpasswd;
fastcgi_pass un php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
Simpan file dan keluar dari editor.
Uji konfigurasi nginx dan mulai ulang nginx:
nginx -t
systemctl restart nginxSelanjutnya buka web browser anda dan kunjungi URL phpMyAdmin, anda akan dimintai username dan password untuk halaman login.
http://192.168.1.101/phpMyAdmin/
Kemudian masuk dengan nama pengguna dan kata sandi MySQL Anda.
phpMyAdmin telah berhasil diinstal dan hanya pengguna di htpasswd yang dapat masuk.
Cara menginstal dan mengkonfigurasi OpenVPN pada OpenSUSE Leap 42.1 Cara Menginstal PostgreSQL dan phpPgAdmin di OpenSUSE Leap 42.1OpenSuse