1. Install Nginx Web Server

Untuk menampilkan halaman web kepada pengunjung situs, Anda akan menggunakan Nginx, server web berkinerja tinggi. Anda akan menggunakan manajer paket APT untuk mendapatkan perangkat lunak ini.

Jika ini adalah pertama kalinya Anda menggunakan apt untuk sesi ini, mulailah dengan memperbarui indeks paket server Anda:

				
					sudo apt update
				
			

Setelah itu, jalankan apt install untuk menginstal Nginx:

				
					sudo apt install nginx
				
			
2. Installing MySQL
				
					sudo apt install mysql-server
				
			

Ketika penginstalan selesai, Anda disarankan untuk menjalankan skrip keamanan yang sudah diinstal sebelumnya dengan MySQL. Skrip ini akan menghapus beberapa pengaturan default yang tidak aman dan mengunci akses ke sistem database Anda. Mulai skrip interaktif dengan menjalankan perintah berikut:

				
					sudo mysql_secure_installation
				
			

Untuk sisa pertanyaan, tekan Y dan tekan tombol ENTER pada setiap prompt. Ini akan menghapus beberapa pengguna anonim dan database pengujian, menonaktifkan login root jarak jauh, dan memuat aturan baru ini sehingga MySQL segera menghargai perubahan yang telah Anda buat.

Setelah selesai, uji apakah Anda dapat masuk ke konsol MySQL:

				
					sudo mysql
				
			
				
					Output
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)
 
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>
				
			

Untuk keluar dari konsol MySQL, tulis perintah berikut :

				
					mysql> exit
				
			
3. Install PHP

Berbeda dari Apache yang menyematkan interpreter PHP di setiap permintaan, Nginx memerlukan program eksternal untuk menangani pemrosesan PHP dan bertindak sebagai jembatan antara interpreter PHP itu sendiri dan server web. Ini memungkinkan kinerja keseluruhan yang lebih baik di sebagian besar situs web berbasis PHP, tetapi memerlukan konfigurasi tambahan.

Anda harus menginstal php8.1-fpm, yang merupakan singkatan dari “PHP fastCGI process manager” dan menggunakan versi PHP saat ini (pada saat penulisan), untuk memberi tahu Nginx agar meneruskan permintaan PHP ke perangkat lunak ini untuk diproses. Selain itu, Anda memerlukan php-mysql, modul PHP yang memungkinkan PHP berkomunikasi dengan database berbasis MySQL. Paket inti PHP akan secara otomatis diinstal sebagai dependensi.

Untuk menginstal paket php8.1-fpm dan php-mysql, jalankan perintan berikut :

				
					sudo apt install php8.1-fpm php-mysql
				
			

Saat diminta, tekan Y dan ENTER untuk mengonfirmasi penginstalan. Anda sekarang telah menginstal komponen PHP Anda.

Selanjutnya, Anda akan mengonfigurasi Nginx untuk menggunakannya.

4. Konfigurasi Nginx untuk menggunakan PHP Processor

Pertama-tama buat direktori web root untuk domain_anda sebagai berikut:

				
					sudo mkdir /var/www/domain_anda
				
			

Selanjutnya, tetapkan kepemilikan direktori dengan variabel lingkungan user anda, yang akan mereferensikan pengguna sistem Anda saat ini :

				
					sudo chmod -R bagoes:www-data /var/www/domain_anda
				
			

Kemudian, buka file konfigurasi baru di direktori yang tersedia di situs Nginx menggunakan editor baris perintah pilihan Anda. Di sini, kita akan menggunakan nano atau vim:

				
					sudo nano /etc/nginx/sites-available/domain_anda
				
			

Ini akan membuat file kosong baru. Masukkan konfigurasi domain_anda seperti berikut ini :

Setelah selesai mengedit, simpan dan tutup file. Jika Anda menggunakan nano, Anda dapat melakukannya dengan menekan CTRL+X lalu Y dan ENTER untuk mengonfirmasi.

Aktifkan konfigurasi Anda dengan menautkan ke file konfigurasi dari direktori yang mendukung situs Nginx:

				
					server {
    listen 80;
    server_name domain_anda;
    root /var/www/domain_anda;
 
    index index.html index.htm index.php;
 
    location / {
        try_files $uri $uri/ =404;
    }
 
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
     }
 
    location ~ /\.ht {
        deny all;
    }
 
}
				
			
				
					sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
				
			

Ini akan memberi tahu Nginx untuk menggunakan konfigurasi saat dimuat ulang.

Anda dapat menguji konfigurasi Anda untuk kesalahan sintaks dengan menjalankan yang berikut ini :

				
					sudo nginx -t
				
			

Jika ada kesalahan yang dilaporkan, kembali ke file konfigurasi /etc/nginx/sites-available/your_domain Anda untuk meninjau isinya sebelum melanjutkan.

Saat Anda siap, muat ulang Nginx untuk menerapkan perubahan:

				
					sudo systemctl reload nginx
				
			

Situs web baru Anda sekarang aktif, tetapi root web /var/www/domain_anda masih kosong.

Buat file index.html di lokasi itu sehingga Anda dapat menguji apakah blok server baru Anda berfungsi seperti yang diharapkan:

				
					nano /var/www/your_domain/index.html
				
			
				
					<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>
 
    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>
				
			

Sekarang buka browser Anda dan akses nama domain atau alamat IP server Anda, seperti yang tercantum dalam direktif server_name di file konfigurasi blok server Anda:

				
					http://domain_anda
				
			

Anda akan menerima halaman seperti berikut:

5. Testing PHP with Nginx

Buat file baru bernama info.php di dalam root dokumen Anda di editor teks pilihan Anda:

				
					<?php
phpinfo();
?>
				
			

Setelah selesai, simpan dan tutup file.

Anda sekarang dapat mengakses halaman ini di browser web Anda dengan mengunjungi nama domain atau alamat IP publik yang telah Anda siapkan di file konfigurasi Nginx Anda, diikuti oleh /info.php:

				
					http://domain_anda/info.php
				
			

Anda akan menerima halaman web yang berisi informasi rinci tentang server Anda :

6. Test Koneksi Database MySQL dari PHP

Jika Anda ingin menguji apakah PHP dapat terhubung ke MySQL dan mengeksekusi kueri basis data, Anda dapat membuat tabel pengujian dengan data dummy dan kueri kontennya dari skrip PHP. Sebelum melakukannya, Anda perlu membuat database pengujian dan pengguna MySQL baru yang dikonfigurasi dengan benar untuk mengaksesnya.

Catatan: Rilis lama tertentu dari library MySQL PHP asli mysqlnd tidak mendukung caching_sha2_authentication, metode autentikasi default untuk MySQL 8, Anda mungkin perlu memastikannya dikonfigurasi untuk menggunakan mysql_native_password sebagai gantinya.

Kita akan membuat database bernama example_database dan pengguna bernama example_user, tetapi Anda dapat mengganti nama-nama ini dengan nilai yang berbeda. Pertama, sambungkan ke konsol MySQL menggunakan akun root:

				
					sudo mysql
				
			

Untuk membuat database baru, jalankan perintah berikut dari konsol MySQL Anda :

				
					mysql> CREATE DATABASE example_database;
				
			

Sekarang Anda dapat membuat pengguna baru dan memberi mereka hak istimewa penuh pada database khusus yang telah Anda buat.

Perintah berikut membuat pengguna baru bernama example_user, menggunakan mysql_native_password sebagai metode otentikasi default. Kami mendefinisikan password sebagai kata sandi, tetapi Anda harus mengganti nilai ini dengan kata sandi aman yang Anda pilih sendiri.

				
					mysql> CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
				
			

Sekarang kita perlu memberikan izin pengguna ini ke database example_database:

				
					mysql> GRANT ALL ON example_database.* TO 'example_user'@'%';
				
			

Perintah di atas akan memberikan hak istimewa penuh kepada pengguna example_user atas database example_database sambil mencegah pengguna ini membuat atau memodifikasi database lain di server Anda.

Sekarang keluar dari shell MySQL dengan perintah berikut :

				
					mysql> exit
				
			

Setelah keluar anda dapat menguji apakah pengguna baru memiliki izin yang tepat dengan masuk ke konsol MySQL lagi, kali ini menggunakan kredensial pengguna khusus.

Perhatikan option -p dalam perintah ini, yang akan menanyakan kata sandi yang digunakan saat membuat pengguna example_user :

				
					mysql -u example_user -p
				
			

Setelah login ke konsol MySQL, konfirmasikan bahwa Anda memiliki akses ke database example_database :

				
					mysql> SHOW DATABASES;
				
			

Akan menampilkan output berikut :

				
					Output+--------------------+
| Database           |
+--------------------+
| example_database   |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
				
			

Selanjutnya, kita akan membuat tabel pengujian bernama todo_list. Dari konsol MySQL, jalankan baris perintah berikut :

				
					mysql> CREATE TABLE example_database.todo_list (
    item_id INT AUTO_INCREMENT,
    content VARCHAR(255),
    PRIMARY KEY(item_id)
);
				
			

Sisipkan beberapa baris konten dalam tabel pengujian. Anda mungkin ingin mengulangi perintah berikutnya beberapa kali, menggunakan nilai yang berbeda :

				
					mysql> INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

				
			

Untuk mengonfirmasi bahwa data berhasil disimpan ke tabel Anda, jalankan :

				
					mysql> SELECT * FROM example_database.todo_list;
				
			

Output Anda akan ditampilkan sebagai berikut:

				
					Output+---------+--------------------------+
| item_id | content                  |
+---------+--------------------------+
|       1 | My first important item  |
|       2 | My second important item |
|       3 | My third important item  |
|       4 | and this one more thing  |
+---------+--------------------------+
4 rows in set (0.000 sec)
				
			

Setelah mengonfirmasi bahwa Anda memiliki data yang valid di tabel pengujian, Anda dapat keluar dari konsol MySQL:

				
					mysql> exit
				
			

Sekarang Anda dapat membuat skrip PHP yang akan terhubung ke MySQL dan kueri konten Anda. Buat file PHP baru di direktori root web kustom Anda menggunakan editor pilihan Anda.

Saya akan menggunakan nano :

				
					nano /var/www/your_domain/todo_list.php
				
			

Skrip PHP berikut terhubung ke database MySQL dan kueri untuk konten tabel todo_list, menampilkan hasilnya dalam daftar. Jika ada masalah dengan koneksi database, itu akan menimbulkan pengecualian.

Tambahkan konten berikut ke skrip todo_list.php Anda :

				
					<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";
 
try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
				
			

Simpan dan tutup file setelah Anda selesai mengedit.

Anda sekarang dapat mengakses halaman ini di browser web anda dengan mengunjungi nama domain atau alamat IP publik yang dikonfigurasi untuk situs web Anda, diikuti oleh /todo_list.php:

				
					http://domain_anda_or_IP/todo_list.php
				
			

Anda akan menerima halaman seperti berikut, yang menunjukkan konten yang telah Anda sisipkan di tabel pengujian Anda :

Itu berarti lingkungan PHP Anda siap untuk terhubung dan berinteraksi dengan server MySQL Anda.

Leave a Reply

Your email address will not be published.Required fields are marked *

16 + 5 =