GNU/Linux >> Belajar Linux >  >> Debian

Cara Instal Nginx dengan PHP + MySQL (LEMP) di Debian 9

Tutorial ini akan menunjukkan kepada Anda instalasi server web Nginx di Debian 9 (Stretch). Nginx (diucapkan "engine x") adalah server HTTP gratis, open-source, berkinerja tinggi. Nginx dikenal dengan stabilitasnya, rangkaian fitur yang kaya, konfigurasi sederhana, dan konsumsi sumber daya yang rendah. Tutorial ini menunjukkan penginstalan Nginx dengan dukungan PHP (melalui PHP-FPM) serta MySQL dan MariaDB. Pengaturan ini sering disebut sebagai LEMP =L inux + nginx (diucapkan "e ngine x") + M ySQL + P HP) .

Catatan Awal

Dalam tutorial ini, saya menggunakan hostname server1.example.com dengan alamat IP 192.168.1.100. Pengaturan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu. Anda harus memiliki server Debian 9, saya akan menggunakan server minimal Debian sebagai sistem dasar untuk tutorial ini.

Perbarui Sistem Debian

Disarankan untuk memperbarui daftar paket dan menginstal pembaruan yang tertunda sebelum kita mulai dengan pengaturan Nginx. Jalankan perintah berikut untuk menginstal pembaruan yang tertunda.

apt-get update
apt-get upgrade -y

Saya akan menggunakan editor nano nanti untuk mengedit file konfigurasi. Nano dapat diinstal dengan perintah ini:

apt-get -y install nano

Instal Nginx

Nginx tersedia sebagai paket untuk Debian 9 yang dapat kita instal dengan perintah ini:

apt-get -y install nginx

Sekarang mulai server web Nginx:

systemctl start nginx.service

Ketik alamat IP atau nama host server web Anda ke dalam browser (mis. http://192.168.1.100), dan Anda akan melihat laman berikut:

Akar dokumen nginx default di Debian Linux adalah /var/www/html.

Instal MySQL atau MariaDB

Pada langkah ini, saya akan menunjukkan cara menginstal MySQL atau MariaDB. Anda bebas memilih sistem database yang Anda inginkan. Pastikan Anda menginstal hanya satu mesin database dan bukan MySQL dan MariaDB secara bersamaan.

Instal MySQL

Paket MySQL untuk Debian 9 dapat diperoleh dari Oracle secara langsung. Oracle menyediakan paket repositori MySQL yang mengintegrasikan repositori Oracle MySQL ke Debian sehingga kita dapat menginstal dan memperbarui MySQL dengan apt. Dapatkan paket repositori apt MySQL di sini jika unduhan wget di bawah gagal karena perubahan pada URL unduhan.

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
dpkg -i mysql-apt-config_0.8.9-1_all.deb

Pilih untuk mengkonfigurasi 'OK' dalam daftar, lalu fokuskan tombol OK di footer dan tekan enter. Ini akan memilih versi stabil saat ini, yaitu MySQL 5.7.

Sekarang kita akan memperbarui daftar paket dan menginstal server MySQL dan paket klien.

apt-get update
apt-get -y install mysql-community-client mysql-community-server

Penginstal MySQL akan meminta Anda untuk mengatur kata sandi untuk pengguna root MySQL. Pilih kata sandi yang panjang dan aman karena kata sandi ini memungkinkan akses administratif penuh ke database MySQL.

Masukkan kembali kata sandi seperti yang diminta.

Instal MariaDB

Untuk menginstal MariaDB, kami menjalankan:

apt-get -y install mariadb-server mariadb-client

Berbeda dengan penginstal MySQL, penginstal MariaDB tidak akan menetapkan kata sandi root selama penginstalan. Untuk mengamankan instalasi MariaDB, hapus pengguna anonim dan untuk menonaktifkan database pengujian, jalankan perintah ini:

mysql_secure_installation

Jawablah pertanyaan sebagai berikut:

Change the root password? [Y/n] <-- y
New password: <-- Enter a new MySQL root password
Re-enter new password: <-- Repeat the MySQL root password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Menginstal PHP

Kita dapat membuat PHP bekerja di nginx melalui PHP-FPM (PHP FastCGI Process Manager). Ini adalah implementasi PHP FastCGI alternatif dengan beberapa fitur tambahan yang berguna untuk situs dari berbagai ukuran, terutama situs yang lebih sibuk. Instal PHP 7 sebagai berikut:

apt-get -y install php7.0-fpm

PHP-FPM adalah proses daemon (dengan file unit systemd php7.0-fpm.service) yang menjalankan server FastCGI pada soket /var/run/php/php7.0-fpm.sock.

Mengonfigurasi Nginx

Konfigurasi Nginx ada di /etc/nginx/nginx.conf yang kita buka sekarang:

nano /etc/nginx/nginx.conf

Konfigurasinya mudah dipahami (Anda dapat mempelajarinya lebih lanjut di sini: https://www.nginx.com/resources/wiki/start/topics/examples/full/ dan di sini:https://www.nginx.com/ sumber/wiki/)

Pertama-tama atur keepalive_timeout ke nilai yang wajar seperti 2 detik:

[...]
keepalive_timeout 2;
[...]

Host virtual didefinisikan dalam kontainer {} server. Vhost default didefinisikan dalam file /etc/nginx/sites-available/default - mari kita ubah sebagai berikut:

nano /etc/nginx/sites-available/default
[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

nama server _; menjadikannya vhost catchall default (tentu saja, Anda juga dapat menentukan nama host di sini seperti www.example.com).

Saya telah menambahkan index.php ke baris indeks. root /var/www/html; berarti root dokumen adalah direktori /var/www/html.

Bagian penting untuk PHP adalah lokasi ~ \.php$ {} bait. Batalkan komentar seperti yang ditunjukkan di atas untuk mengaktifkannya. Ada dua baris fastcgi_pass yang disertakan, batalkan komentar hanya satu untuk file php-7.0-fpm.sock.

Sekarang simpan file dan muat ulang Nginx:

systemctl reload nginx.service

Selanjutnya buka /etc/php/7.0/fpm/php.ini...

nano /etc/php/7.0/fpm/php.ini

... dan atur cgi.fix_pathinfo=0:

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

... maka Anda mungkin ingin menaikkan batas POST dan batas unggah file:

post_max_size = 25M
upload_max_filesize = 20M

Ketika Anda berencana untuk mengunggah file besar dengan PHP, maka Anda harus menaikkan nilainya hingga 500 juta atau lebih. M adalah singkatan dari Megabytes.

Terakhir, Anda mungkin ingin mengatur zona waktu ke zona waktu lokal Anda. Dalam kasus saya, zona waktunya adalah:

date.timezone = 'Europe/Berlin'

Anda dapat menemukan daftar zona waktu yang didukung di sini.

Muat ulang PHP-FPM untuk menerapkan perubahan:

systemctl reload php7.0-fpm.service

Sekarang buat file PHP berikut di root dokumen /var/www/html/:

nano /var/www/html/info.php
<?php
phpinfo();

Sekarang kita memanggil file itu di browser (mis. http://192.168.1.100/info.php):

Seperti yang Anda lihat, PHP 7 bekerja, dan bekerja melalui FPM/FastCGI, seperti yang ditunjukkan pada baris Server API. Jika Anda menggulir lebih jauh ke bawah, Anda akan melihat semua modul yang sudah diaktifkan di PHP. MySQL tidak terdaftar di sana yang berarti kami belum memiliki dukungan MariaDB / MySQL di PHP.

Mendapatkan Dukungan MySQL / MariaDB di PHP

Untuk mendapatkan dukungan MySQL di PHP, kita dapat menginstal paket php7.0-mysqlnd. Ini adalah ide yang baik untuk menginstal beberapa modul PHP lain serta Anda mungkin membutuhkannya untuk aplikasi Anda. Anda dapat mencari modul PHP yang tersedia seperti ini:

apt-cache search php7.0

Pilih yang Anda butuhkan dan instal seperti ini:

apt-get -y install php7.0-mysqlnd php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Sekarang muat ulang PHP-FPM:

systemctl reload php7.0-fpm.service

Sekarang muat ulang http://192.168.1.100/info.php di browser Anda dan gulir ke bawah ke bagian modul lagi. Anda sekarang akan menemukan banyak modul baru di sana, termasuk modul MySQLi dan MySQLnd:

Membuat PHP-FPM menggunakan koneksi TCP (opsional)

Secara default, PHP-FPM mendengarkan di soket /var/run/php/php7.0-fpm.sock dan itulah cara yang disarankan dan tercepat untuk menghubungkan PHP ke Nginx. Namun, mungkin ada pengaturan di mana Anda ingin Nginx terhubung ke PHP melalui jaringan. Dimungkinkan untuk membuat PHP-FPM menggunakan koneksi TCP. Untuk melakukannya, buka /etc/php/7.0/fpm/pool.d/www.conf...

nano /etc/php/7.0/fpm/pool.d/www.conf

... dan buat garis dengar terlihat sebagai berikut:

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

Ini akan membuat PHP-FPM mendengarkan pada port 9000 pada IP 127.0.0.1 (localhost). Pastikan Anda menggunakan port yang tidak digunakan di sistem Anda.

Kemudian muat ulang PHP-FPM:

systemctl reload php7.0-fpm.service

Selanjutnya buka konfigurasi Nginx Anda dan semua vhost Anda dan ubah baris fastcgi_pass unix:/var/run/php7.0-fpm.sock; ke fastcgi_pass 127.0.0.1:9000;, mis. seperti ini:

nano /etc/nginx/sites-available/default
[...]
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
fastcgi_pass 127.0.0.1:9000;
} [...]

Terakhir, muat ulang Nginx:

systemctl reload nginx.service

Aktifkan SSL dan HTTP/2 di Nginx

Sebagian besar situs web saat ini menggunakan SSL (TLS) untuk menyediakan akses yang aman. Dalam bab ini, saya akan menunjukkan cara membuat sertifikat SSL dan cara mengaktifkan SSL di Nginx. Anda dapat menggunakan sertifikat SSL yang ditandatangani sendiri atau meminta sertifikat SSL yang ditandatangani secara resmi dari Let's encrypt. Biarkan#s mengenkripsi sertifikat SSL tersedia gratis, tetapi Anda harus memiliki nama domain yang valid yang mengarah ke server Anda di DNS. Jika Anda belum memiliki nama domain atau saat server Anda berada di jaringan lokal dan tidak dapat diakses dari luar, gunakan sertifikat SSL yang ditandatangani sendiri. Ikuti langkah-langkah untuk sertifikat SSL yang ditandatangani sendiri atau sertifikat Let's encrypt di bawah, tetapi jangan keduanya.

Buat sertifikat SSL yang ditandatangani sendiri

Buat file kunci SSL dengan perintah OpenSSL:

openssl genrsa -out /etc/ssl/private/nginx.key 4096

Kemudian buat sertifikat SSL yang ditandatangani sendiri:

openssl req -new -x509 -key /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.pem -days 3650

Perintah akan menanyakan detail seperti negara, negara bagian, kota, nama perusahaan, dan nama domain.

Aktifkan sertifikat SSL yang ditandatangani sendiri di Nginx. Untuk melakukannya, edit file nginx.conf lagi:

nano /etc/nginx/sites-available/default

dan buat bagian server menjadi seperti ini:

server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/ssl/private/nginx.key;
ssl_certificate /etc/ssl/certs/nginx.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}

Mulai ulang Nginx untuk menerapkan perubahan.

systemctl restart nginx.service

Sekarang buka URL https server Anda di browser, mis. https://192.169.1.100/. Anda akan mendapatkan peringatan keamanan yang harus Anda terima untuk melanjutkan. Setelah itu, Anda akan melihat halaman awal Nginx, ikon peringatan di bilah URL browser menunjukkan bahwa kami menggunakan sertifikat SSL yang ditandatangani sendiri.

Gunakan sertifikat SSL Let's Encrypt gratis

Dalam bab ini, saya akan menjelaskan cara mengamankan server Nginx Anda dengan menggunakan sertifikat SSL Let's encrypt gratis. Prasyaratnya adalah Anda memiliki nama domain yang menunjuk ke IP server tempat Anda menginstal Nginx saat ini.

Instal Certbot, klien Let's encrypt yang digunakan untuk mendapatkan sertifikat SSL gratis.

apt-get -y install certbot python-certbot-nginx

Edit file konfigurasi situs web /etc/nginx/sites-available/default dan atur nama domain Anda di baris nama_server:

nano /etc/nginx/sites-available/default

Baris akan terlihat seperti ini setelah diedit:

server_name example.com;

Ganti example.com dengan nama domain Anda sendiri. Jika Anda memiliki beberapa nama domain atau subdomain, tambahkan dengan dipisahkan oleh spasi.

server_name example.com www.example.com otherdomain.tld;

Sekarang kami meminta sertifikat SSL dari mari mengenkripsi dengan menggunakan plugin nginx dari Certbot.

certbot --nginx -d example.com

Beberapa domain dapat ditambahkan dengan mengulangi opsi -d. Contoh:

certbot certonly --webroot -d example.com -d www.example.com

Certbot akan meminta alamat email Anda untuk mengirim pemberitahuan pembaruan. Masukkan alamat email yang valid di sini:

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]

Terima persyaratan lisensi dengan memasukkan 'A'.

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

Di sini dialog lebih lanjut yang meminta sertifikat SSL. Saya telah menambahkan jawaban saya dengan warna merah.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Select the webroot for example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for example.com: (Enter 'c' to cancel):/var/www/html
Select the webroot for www.example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /var/www/html
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2018-04-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Ada metode alternatif dengan menggunakan opsi '--nginx' di Certbot, tetapi metode ini tampaknya tidak berfungsi saat ini karena masalah TLS-SNI-01 di Let's encrypt. Metode webroot, seperti yang ditunjukkan di atas, berfungsi dengan baik.

Sertifikat SSL yang baru dibuat berada di subfolder dari folder /etc/letsencrypt/live/. Jalur persisnya ditampilkan di keluaran Certbot.

Sekarang kami akan menambahkan sertifikat SSL ini di file situs web Nginx kami. Edit file default Nginx:

nano /etc/nginx/sites-available/default

dan ubah bagian SSL seperti ini:

[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

Ganti 'example.com' di jalur sertifikat SSL dengan nama domain Anda sendiri. Mulai ulang Nginx untuk menerapkan perubahan.

systemctl restart nginx.service

Gambar Mesin Virtual

Tutorial ini tersedia sebagai mesin virtual siap pakai dalam format OVA / OVF untuk pelanggan Howtoforge. Format VM kompatibel dengan VMWare dan Virtualbox dan mungkin beberapa alat lain yang dapat mengimpor format ini. Anda dapat menemukan tautan unduhan di menu kanan di atas. Klik pada nama file untuk memulai pengunduhan.

Detail login VM adalah:

Masuk SSH

Nama pengguna:administrator
Kata sandi:howtoforge

Jalankan 'su' untuk menjadi pengguna root, kata sandi root adalah 'howtoforge' juga.

Gambar mesin virtual menggunakan MySQL sebagai server database.

Masuk MySQL

Nama pengguna:root
Kata sandi:howtoforge

Harap ubah kata sandi setelah boot pertama.

VM dikonfigurasi untuk IP statis 192.168.1.100, IP dapat diubah di file /etc/network/interfaces.

  • nginx:https://nginx.net/
  • PHP:http://www.php.net/
  • MySQL: https://www.mysql.com/
  • MariaDB: https://mariadb.org/
  • Debian:https://www.debian.org/

Debian
  1. Cara Menginstal Phorum dengan Nginx di Debian 9

  2. Cara Menginstal Magento dengan Nginx di Debian 10

  3. Cara Menginstal WonderCMS dengan Nginx di Debian 11

  1. Cara Instal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 18.04

  2. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Debian 11

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

  1. Cara Menginstal WonderCMS dengan Nginx di Debian 9

  2. Cara Memasang Fork CMS dengan NGINX di Debian 9

  3. Cara Menginstal InvoicePlane dengan Nginx di Debian 9