Menghubungkan Nginx dengan MySQL dan PhpMyAdmin di Windows
Setelah sukses menghubungkan nginx dan PHP pada artikel sebelumnya, kita lanjutkan pada artikel ini masih dalam edisi tutorial nginx windows. Kali ini kita akan menghubungkan web server nginx dengan database MySQL beserta phpMyAdmin sebagai manajemen basis datanya. Sebelum mengikuti tutorial ini, pastikan kamu sudah mengikuti dua artikel sebelumnya yang saya tulis dibawah ini, karena ini adalah kelanjutan dari praktik sebelumnya.
1. Instal Nginx Web Server di Windows
2. Menghubungkan Nginx dan PHP di Windows
Langkah 1 : Download dan Install MySQL
Ada dua cara untuk menginstal MySQL yaitu dengan installer atau melalui zip. Keduanya memiliki pro dan kontra. Menginstal menggunakan installer lebih mudah dan simpel. Keuntungan menggunakan versi zip adalah portabilitasnya, kita dapat dengan mudah mentransfer semuanya di komputer baru.Kita akan menggunakan mysql yang versi portable agar lebih mudah dipindahkan ke folder atau PC lain. Silahkan download MySQL melalui link dibawah ini :
Setelah download silahkan ekstrak file zip kemudian letakan folder mysql ke C:\nginx\mysql. Buka CMD sebagai Administrator dan sekarang kita dapat menginisialisasi pengaturan MySQL.
cd C:\nginx\mysql\bin
mysqld --initialize-insecure
mysqld --initialize-insecure
Di MySQL 8.0 dan yang lebih baru, plugin otentikasi default adalah caching_sha2_password yang tidak memungkinkan kita untuk terhubung ke mysql menggunakan login asli default di php. Sebagian besar pengguna akan mendapatkan pesan kesalahan ini yang mengatakan "Connection failed: The server requested authentication method unknown to the client" . Untuk mengaktifkannya kembali ke asli, kita harus mengatur kata sandi root Anda dengan mysql_native_password.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
Langkah 2 : Menambahkan ke PATH Environment
Agar kita dapat memanggil nginx, php dan MySQL langsung dari command line atau Windows Powershell tanpa masuk ke direktorinya, ini diperlukan untuk modul lain seperti Laravel dan Composer. Kita perlu menambahkannya di direktori PATH .Ketik di bar pencarian windows "Edit the system environment variables".
Klik Environment Variables.
Pilih System variables > Path kemudian klik Edit.
Tambahkan ketiga path berikut untuk nginx, php dan mysql. Kemudian klik OK.
C:\nginx
C:\nginx\php
C:\nginx\mysql\bin
C:\nginx\php
C:\nginx\mysql\bin
Langkah 3 : Mengaktifkan Ekstensi di PHP
Agar PHP dapat berkomunikasi dengan mysql di folder C:\nginx\mysql kita perlu mengaktifkan beberapa ekstensi di file konfigurasi PHP yaitu php.ini yang terletak di folder C:\nginx\php. Buka file php.ini menggunakan editor kemudian cari extension=/path/to/extension/mysqli.so .Kemudian enter satu baris dibawah tulisan tersebut. Kita akan memanggil ekstensi PHP disini. Sebagai contoh kita akan mengaktifkan ekstensi mysql, openssl, mbstring, json, pdo_mysql . Maka kita panggil pathnya sebagai berikut :Untuk menambahkan ekstensi lain sesuai dengan kebutuhan, kita bisa cek nama filenya di folder C:\nginx\php\ext. Kita juga perlu mengedit modul ekstensi yang dapat dimuat untuk menghindari Peringatan PHP untuk MySQL. Cari dan temukan ;extension_dir = "ext" lalu hapus tanda komentar dan ganti nilainya dengan extension_dir = "C:\nginx\php\ext\".
Langkah 4 : Membuat File Batch Untuk Menjalankan Nginx, PHP dan MySQL Bersamaan
Pada langkah selanjutnya, kita akan membuat file batch. Tapi ada masalah, menjalankan nginx dan php-cgi di baris perintah batch tidak akan memungkinkan kita untuk mengeksekusi baris kode berikutnya. Hanya karena program belum ditutup untuk melanjutkan ke baris berikutnya.
Agar kita dapat menjalankan setiap baris kode file batch, kita perlu menyembunyikan jendela command prompt dengan menggunakan RunHiddenConsole, kamu dapat mengunduh ini di situs web resminya ( https://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip ).
Setelah download ekstrak file zip dan copy file RunHiddenConsole.exe ke folder C:\nginx. Kemudian masih di folder yang sama kita buat file batch misalnya myserver.bat yang berfungsi untuk menjalankan dan menghentikan service nginx, php dan mysql secara bersamaan. Isi file myserver.bat dengan kode berikut :
Setelah download ekstrak file zip dan copy file RunHiddenConsole.exe ke folder C:\nginx. Kemudian masih di folder yang sama kita buat file batch misalnya myserver.bat yang berfungsi untuk menjalankan dan menghentikan service nginx, php dan mysql secara bersamaan. Isi file myserver.bat dengan kode berikut :
@echo off
cd C:\nginx
IF "%1" == "stop" (
GOTO STOPSERVER
)else IF "%1" == "start" (
GOTO STARTSERVER
)else (
echo Use these commands:
echo.
echo myserver start
echo myserver stop
)
GOTO END
:STARTSERVER
QPROCESS * | find /I /N "mysqld.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo MYSQLD is already running.
)else (
RunHiddenConsole.exe mysqld --console
echo MYSQLD is now running.
)
QPROCESS * | find /I /N "nginx.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo NGINX is already running.
)else (
RunHiddenConsole.exe nginx
echo NGINX is now running.
)
QPROCESS * | find /I /N "php-cgi.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo PHP-CGI is already running.
)else (
RunHiddenConsole.exe php-cgi -b 127.0.0.1:9999
echo PHP-CGI is now running.
)
echo.
echo To stop, type "myserver stop"
GOTO END
:STOPSERVER
QPROCESS * | find /I /N "mysqld.exe">NUL
IF "%ERRORLEVEL%"=="0" (
taskkill /F /IM mysqld.exe>NUL
echo MYSQLD ended successfully.
)else (
echo MYSQLD is not running
)
QPROCESS * | find /I /N "nginx.exe">NUL
IF "%ERRORLEVEL%"=="0" (
::nginx -s stop
taskkill /F /IM nginx.exe>NUL
echo NGINX ended successfully.
)else (
echo NGINX is not running
)
QPROCESS * | find /I /N "php-cgi.exe">NUL
IF "%ERRORLEVEL%"=="0" (
taskkill /F /IM php-cgi.exe>NUL
echo PHP-CGI ended successfully.
)else (
echo PHP-CGI is not running
)
:END
Untuk menjalankan service nginx, php dan mysql jalankan perintah myserver start melalui CMD. Maka ketiga service akan running secara bersamaan. Untuk menghentikannya jalankan perintah myserver stop.
myserver start
MYSQLD is now running.
NGINX is now running.
PHP-CGI is now running.
To stop, type "myserver stop"
MYSQLD is now running.
NGINX is now running.
PHP-CGI is now running.
To stop, type "myserver stop"
Langkah 5 : Download phpMyAdmin
Sampai tahap ke empat sebenarnya kita sudah bisa menggunakan database mysql. Namun agar lebih mudah dalam manajemennya kita perlu menggunakan phpmyadmin. Silahkan download melalui link dibawah ini.Download phpMyAdmin
Kemudian ekstrak ke folder C:\nginx\html sehingga kita akan mendapati folder C:\nginx\html\phpmyadmin. Terakhir tinggal akses melalui browser localhost/phpmyadmin.