GNU/Linux >> Belajar Linux >  >> Debian

Instal WordPress dengan database jarak jauh di Debian

Ringkasan

Dalam posting berikut kita akan membahas skenario di mana kita akan menginstal WordPress dengan database jarak jauh di Debian. Dengan kata lain, kita akan memiliki lingkungan di mana kita akan memiliki dua server terpisah, satu yang hanya akan memiliki instalasi WordPress (artinya hanya akan meng-host situs web) dan yang lainnya hanya akan memiliki database (bertindak hanya sebagai server database) .

Ada banyak alasan menguntungkan mengapa lingkungan semacam ini disiapkan – salah satunya adalah kemudahan pemeliharaan situs web dan pemeliharaan basis data, peningkatan kinerja (artinya wordpress karena tidak bergantung pada satu server, akan membutuhkan sumber daya yang jauh lebih sedikit).

Namun kekurangannya adalah – karena kami memiliki dua server sekarang, pemeliharaan server akan meningkat.

Setup ini akan dikonfigurasi pada dua server Debian (keduanya di jaringan yang sama/LAN yang sama).

Tumpukan akan menjadi LEMP – server web Nginx, PHP dan server MariaDB.

Konfigurasi server basis data

Kami akan fokus dulu pada server database:

1. Instal server MariaDB

sudo apt install mariadb-server

Jalankan mysql_secure_installation

sudo mysql_secure_installation

2. Edit file konfigurasi database dan ubah parameter bind-address dan masukkan alamat pribadi server database Anda:

Berkas yang akan diedit:

sudo /etc/mysql/mariadb.conf.d/50-server.cnf

Baris yang akan diedit – bind-address =127.0.0.1

bind-address =192.168.56.252

Simpan dan keluar, mulai ulang dan aktifkan mariadb.service.

sudo systemctl restart mariadb.service

sudo systemctl enabled mariadb.service

Untuk mengetahui alamat IP server database Anda, jalankan perintah – ip a.

3. Buat database, pengguna dan atur hak istimewa (info dalam perintah digunakan sebagai contoh)

sudo mysql -u root -p
CREATE DATABASE wptest;
GRANT ALL ON wptest.* TO 'wpadmin'@'192.168.56.251' IDENTIFIED BY 'StrongPassword';
FLUSH PRIVILEGES;
exit

Pada database perlu untuk membuat remote user, alias akun pengguna yang akan digunakan instalasi WordPress kita untuk terhubung ke database. Anda perlu mengetahui terlebih dahulu alamat IP server WordPress dan menentukannya/mengikatnya ke akun pengguna jarak jauh.

Konfigurasi firewall

Jika Anda memiliki firewall yang berjalan di server database Anda, maka perlu membuka port 3306 untuk menerima koneksi dari server web dan untuk mengakses database. Untuk berjaga-jaga, ada baiknya mengonfigurasi aturan untuk hanya menerima koneksi dari server web kami saja.

Konfigurasi firewall UFW

sudo ufw allow from 192.168.56.251 to any port 3306

Konfigurasi IPTABLES

iptables -I INPUT -p tcp -s 192.168.56.251 --dport 3306 -j ACCEPT

Konfigurasi server web

1. Instal server web Nginx dengan pustaka php lain yang diperlukan untuk menjalankan WordPress dan untuk berkomunikasi dengan server database dan klien mysql/mariadb.

sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl

sudo apt install mariadb-client

Kita dapat menguji koneksi ke server database jika kita menjalankan perintah ini dari server web kita (pada dasarnya, login dari jarak jauh ke database):

sudo mysql -u remote-admin -h 192.168.56.252 -p

2. Instal WordPress, konfigurasikan dan konfigurasikan Nginx. Di sini sekarang kita hanya akan mengonfigurasi bagian WordPress di mana kita perlu menambahkan alamat server database jarak jauh kita. Jika Anda memerlukan langkah-langkah mendetail tentang cara menginstal WordPress dan Konfigurasi Nginx, Anda dapat menemukan petunjuknya di postingan ini.

cd /var/www/html/wordpress/

sudo mv wp-config-sample.php wp-config.php

sudo nano wp-config.php

Pada baris database, ganti localhost dengan alamat IP server database Anda. Lihat gambar di bawah ini sebagai contoh:

3. Buat file conf Nginx dan hapus yang default:

sudo nano /etc/nginx/sites-available/wordpress.conf

sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/

Konfigurasi Nginx yang dapat Anda gunakan, Anda dapat menemukannya di pos yang sama yang kami sebutkan sebelumnya.

sudo rm /etc/nginx/sites-available/default

sudo rm /etc/nignx/sites-enabled/default

Setelah konfigurasi ini, Anda sekarang dapat menjalankan WordPress, mengakses basis data jarak jauhnya, dan menyelesaikan instalasi WordPress.

Dan sekarang Anda harus memiliki situs WordPress yang berjalan dengan web dan server database terpisah. Anda dapat berhenti di sini jika Anda puas dengan pengaturannya. Ini adalah langkah-langkah yang diperlukan untuk menginstal WordPress dengan basis data jarak jauh, dan pada titik ini, semuanya harus aktif dan berjalan. Jika tidak, lanjutkan ke bab berikutnya dan terakhir tentang cara mengamankan dan mengenkripsi koneksi database dan lalu lintas antara web dan server database dan membuat pengaturan lebih aman.

Amankan dan enkripsi koneksi database dengan SSL(Opsional tapi disarankan)

Ini juga merupakan praktik keamanan yang baik dan lapisan keamanan tambahan untuk mengamankan dan mengenkripsi lalu lintas antara web dan server database. Alasan mengapa jika tidak aman dan terenkripsi, dan JIKA entah bagaimana seorang penyerang membobol subnet pribadi Anda (jaringan LAN pribadi di mana server berada) atau server web, penyerang kemudian dapat mencegat dan mengendus lalu lintas (memantau dan get data) yang dapat mengakibatkan pelanggaran dan peretasan situs web dan server Anda.

Sertifikat server basis data

1. Pada kedua server (web dan database), buat direktori sementara untuk menyimpan sertifikat (contoh ssl atau certs) di direktori home Anda sebagai contoh atau di suatu tempat yang mudah bagi Anda untuk menyimpannya – sebagai contoh, di sini kita akan membuat direktori certs di direktori home kami:

cd

mkdir certs

Pertama-tama kita akan mulai dengan server database, jadi beralihlah ke direktori sertifikat baru yang baru saja kita buat:

cd certs

2. Di server database kita akan membuat CA key, certificate dan private key. Ikuti petunjuknya dan jawab sesuai saat diminta. Anda dapat menggunakan gambar di bawah ini sebagai referensi. Satu hal yang harus diperhatikan adalah untuk nama umum (yang cukup penting) prompt. Itu meminta nama server database. Di sini Anda harus menambahkan alamat IP server (seperti yang kami miliki) atau nama domain server jika Anda memiliki atau nama host. Info harus cocok karena kami akan membuat sertifikat server dan kunci klien untuk dicocokkan.:

sudo openssl genrsa 4096 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 1825 -key ca-key.pem -out cacert.pem

Pada perintah kedua, atribut -days 1825 mengacu bahwa sertifikat yang dibuat akan berlaku selama 5 tahun (1825 hari). Anda dapat mengatur hari sesuai keinginan atau kebutuhan.

3. Selanjutnya buat kunci privat RSA dan tanda tangani sertifikatnya:

sudo openssl rsa -in server-key.pem -out server-key.pem

sudo openssl req -newkey rsa:4096 -days 1825 -nodes -keyout server-key.pem -out server-req.pem
sudo openssl x509 -req -in server-req.pem -days 1825 -CA cacert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Sekarang kita dapat memindahkan sertifikat ke lokasi permanen:

sudo mkdir /etc/mysql/ssl

sudo mv *.* /etc/mysql/ssl

cd /etc/mysql/ssl

Sertifikat server web

4. Buat sertifikat klien. Perintahnya akan sama seperti untuk server database tetapi pada pertanyaan Common Name, masukkan detail server web tempat Wodpress diinstal (seperti alamat IP server web). Tulis RSA dan tanda tangani sertifikatnya:

sudo openssl req -newkey rsa:2048 -days 1825 -nodes -keyout client-key.pem -out client-req.pem

sudo openssl rsa -in client-key.pem -out client-key.pem

sudo openssl x509 -req -in client-req.pem -days 1825 -CA cacert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Konfigurasi SSL untuk kedua server

Pengaturan server basis data

1. Langkah selanjutnya adalah mengkonfigurasi server kami untuk menggunakan sertifikat yang kami buat dan mengaktifkan koneksi SSL antara web dan server database. Pertama edit konfigurasi pada konfigurasi server MariaDB:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Dan temukan baris berikut, hapus komentar mereka tambahkan tulis ulang baris yang cocok dengan direktori dan file sertifikat yang kami buat:

ssl-ca=/etc/mysql/ssl/cacert.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Simpan file dan keluar.

2. Sekarang login di MariDB sebagai root dan jalankan kueri berikut untuk mengaktifkan di server yang memungkinkan koneksi dari server web hanya dengan SSL:

sudo mysql -u root -p
GRANT ALL PRIVILEGES ON wptest.* TO 'wpadmin'@'192.168.56.251' REQUIRE SSL;
FLUSH PRIVILEGES;
exit

Mulai ulang server basis data:

sudo systemctl restart mariadb.service
Penyiapan server web

3. Saat masih di direktori /etc/mysql/ssl (atau pindah ke sini), dengan alat scp, salin sertifikat klien ke server web (pengguna web dan alamat IP ganti dengan nama pengguna dan alamat IP Anda yang sebenarnya server web):

scp cacert.pem client-cert.pem client-key.pem [email protected]:~/certs

Sekarang beralih/login ke server web dan pindahkan sertifikat ke suatu tempat permanen juga (sama seperti untuk server database):

sudo mkdir /etc/mysql/ssl

cd certs

sudo mv /certs/*.* /etc/mysql/ssl

Edit file konfigurasi untuk klien MariaDB yang kami instal pada langkah pertama. Ini memiliki lokasi yang sama dengan yang dimiliki server:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Dan temukan baris SSL (harus di bawah bagian [mysql]) yang sama seperti yang kita lakukan untuk server database dan minta mereka mencocokkan lokasi dan nama file dari sertifikat yang kita tambahkan di direktori /etc/mysql/ssl:

[mysql]
ssl-ca=/etc/mysql/ssl/cacert.pem
ssl-cert=/etc/mysql/ssl/client-cert.pem
ssl-key=/etc/mysql/ssl/client-key.pem

Simpan file, keluar.

Anda dapat menguji apakah koneksi berfungsi dengan login jarak jauh:

mysql -u wpadmin -h 192.168.56.252 -p

4. File terakhir yang harus diedit adalah wp-config.php. Kita juga perlu ke sana baris konfigurasi SSL:

sudo nano /var/www/html/wordpress/wp-config.php

dan tambahkan baris sebelum baris dengan nama database:

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL );

Lihat gambar:

Mulai ulang server web Nginx, dan selesaikan instalasi WordPress dari browser web. Ini harus aktif dan berjalan.

Ringkasan

Untuk meringkas artikel ini, kami membahas langkah-langkah cara menginstal WordPress dengan database jarak jauh. Kami juga membahas proses cara mengamankan koneksi antara dua server (jika Anda belum pernah mengalami sebelum sertifikat yang ditandatangani sendiri dan cara bekerja dengannya, Anda dapat melewati langkah, seperti yang dikatakan di atas, itu tidak perlu, hanya rekomendasi) . Proses dasar menginstal WordPress dengan database jarak jauh sendiri tidak terlalu sulit dan memberikan beberapa manfaat, salah satunya kinerja dan pemeliharaan server web sekarang menjadi lebih mudah dan mengurangi waktu henti saat pemeliharaan diperlukan.


Debian
  1. Cara Menginstal Server LAMP di Debian 9 Stretch Linux

  2. Instal Server Log Terpusat dengan Rsyslog di Debian 9

  3. Cara Menginstal HTTP Git Server dengan Nginx di Debian 11

  1. Instal WordPress di openSUSE 13.2 dengan LAMP

  2. Instal Cockpit di Debian 9

  3. Cara Menginstal WordPress dengan Nginx di Debian 10

  1. Cara Menginstal Server Xrdp (Desktop Jarak Jauh) di Debian 10

  2. Instal WordPress di Fedora 22/21 dengan AMP

  3. Instal phpMyAdmin di Debian 11 dengan Nginx