GNU/Linux >> Belajar Linux >  >> OpenSuse

Cara Install Nginx, PHP dan MySQL (LEMP Stack) di OpenSUSE Leap 42.1

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.php

Sekarang 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 phpMyAdmin

Perintah 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 pengguna

Selanjutnya, 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.conf

Tentukan 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 baru

Kemudian 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 nginx

Selanjutnya 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.


OpenSuse
  1. Cara menginstal dan mengatur PHP dan Apache (LAMP stack) di OpenSUSE Leap 15.3

  2. Cara Menginstal dan mengatur Nginx sebagai proxy OpenSUSE Leap 15.3

  3. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di OpenSUSE Leap 15.3

  1. Cara Menginstal Nginx Dengan PHP-FPM Dan MySQL Di openSUSE 12.1

  2. Cara Install LEMP Stack Nginx, MySQL, PHP di Debian 11

  3. Cara Instal LEMP Stack Nginx, MySQL, PHP di Ubuntu 22.04

  1. Cara Menginstal LEMP Stack (Nginx, MySQL, PHP v7) di CentOS 7

  2. Cara Instal Nginx Dengan PHP Dan MySQL (LEMP Stack) Di CentOS 7

  3. Bagaimana menginstal Mysql Server 8 pada OpenSUSE Leap 15.3