GNU/Linux >> Belajar Linux >  >> Linux

Instal WordPress di Linux dengan Apache

Artikel ini menjelaskan cara menginstal WordPress® di server web Linux® dengan Apache®.

WordPress, alat blogging sumber terbuka yang populer, menggunakan PHP dan MySQL® untuk mengelola konten dan antarmuka situs.

Penting :Dukungan Rackspace tidak mendukung konfigurasi WordPress. Artikel ini memberikan langkah-langkah sebagai solusi upaya terbaik, tetapi pengembang Anda harus meninjaunya secara menyeluruh sebelum menerapkannya untuk mencegah waktu henti yang tidak terduga.

Prasyarat

Jalankan semua perintah sebagai pengguna non-root dengan sudo hak istimewa.

Untuk instalasi ini, instal tumpukan LAMP di server. LAMP termasuk Linux®, Apache, MySQL, dan PHP). Jika Anda sudah menginstal ini, lanjutkan ke bagian berikutnya. Jika tidak, lihat artikel kami tentang cara Memasang tumpukan LAMP pada distribusi berbasis RHEL 7.

Buat database MySQL dan pengguna untuk WordPress

Seperti disebutkan sebelumnya, WordPress menggunakan database relasional untuk mengelola konten. Contoh ini menggunakan MariaDB, yang diinstal sebelumnya, untuk membuat pengguna dan database untuk digunakan WordPress. Lakukan langkah-langkah berikut untuk membuat database dan pengguna WordPress:

  1. Jalankan perintah berikut untuk login ke MySQL dengan root user:
$ mysql -u root -p
  1. Buat database dengan nama wpdatabase . Ingat, semua instruksi MySQL harus diakhiri dengan titik koma (; ):
CREATE DATABASE wpdatabase;
  1. Buat pengguna, yang digunakan WordPress untuk mengerjakan database ini. Tetapkan pengguna sebagai wpuser dengan kata sandi password :
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
  1. Berikan izin kepada pengguna untuk mengelola seluruh database:
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. Keluar dari antarmuka MySQL:
exit

Prosedur ini melengkapi persyaratan WordPress MySQL. Anda tidak perlu membuat database dan pengguna khusus untuk WordPress, tetapi kami sangat merekomendasikannya untuk keamanan.

Instal WordPress

Lakukan langkah-langkah berikut untuk menginstal WordPress:

  1. Jalankan perintah berikut untuk menginstal paket PHP yang memungkinkan WordPress untuk mengubah ukuran gambar thumbnail dan mengizinkan database MySQL mengakses fungsi yang diperlukan:
$ sudo yum install php74-gd php74-mysqlnd
$ sudo service httpd restart
  1. Unduh versi WordPress terbaru di direktori home server Anda:
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
  1. Ekstrak semua file dari folder terkompresi:
$ tar xzvf latest.tar.gz

Perintah ini membuat direktori bernama wordpress di direktori home Anda yang berisi semua file yang dibutuhkan WordPress agar berfungsi dengan baik.

  1. Jalankan perintah berikut untuk menyalin wordpress direktori ke /var/www/html , yang berisi semua file halaman web, dan mempertahankan izin default:
$ sudo mv ~/wordpress/ /var/www/html/example.com
  1. Buat folder tempat WordPress dapat menyimpan semua file yang diunggah:
$ mkdir /var/www/html/example.com/wp-content/uploads
  1. Langkah-langkah sebelumnya membuat halaman contoh WordPress di server web Anda. Namun, agar berfungsi tanpa masalah, Anda harus mengubah kepemilikan file ke pengguna FTP Anda atau pengguna dan grup Apache sehingga WordPress dapat mengakses semua file dengan izin yang sesuai. Jalankan perintah berikut:
$ sudo chown -R FTP_USER:apache /var/www/html/example.com

Konfigurasi WordPress

Meskipun Anda menyelesaikan sebagian besar konfigurasi melalui antarmuka grafis (GUI) di halaman web, Anda perlu membuat beberapa perubahan konfigurasi di server. Lakukan langkah-langkah berikut untuk mengkonfigurasi server:

  1. Ubah ke folder tempat semua file web berada:
$ cd /var/www/html
  1. Karena WordPress membutuhkan file konfigurasi bernama wp-config.php , yang tidak ada, jalankan perintah berikut untuk menyalin file sampel dan mengganti namanya:
$ sudo cp wp-config-sample.php wp-config.php
  1. Edit file konfigurasi dengan editor teks seperti nano atau vi. Contoh ini menggunakan vi :
$ sudo vi wp-config.php
  1. Tentukan informasi database di setelan MySQL bagian. Masukkan nama database dan kredensial pengguna yang ditentukan di Buat database MySQL dan pengguna untuk WordPress bagian, mirip dengan contoh berikut:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Mengamankan WordPress

Mengubah izin file

Sesuai dengan dokumentasi WordPress, mengubah izin file di root dokumen situs web Anda, akan meningkatkan keamanan di situs web Anda.

$ find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
$ find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Dalam konfigurasi vHost Anda atau di dalam .htaccess Anda dapat menempatkan blok berikut untuk mencegah skrip agar tidak diakses oleh pengguna mana pun.

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress

Nonaktifkan eksekusi PHP di direktori upload

Ketika situs Wordpress disusupi, seringkali ada pintu belakang yang diunggah ke direktori yang dapat ditulis yang menyamar sebagai file Wordpress yang sah. Satu langkah yang dapat Anda ambil untuk menambahkan strategi keamanan yang ada adalah dengan menonaktifkan eksekusi PHP di direktori tertentu.

Salah satu yang paling umum adalah menonaktifkan eksekusi PHP dalam direktori wp-content/uploads. Ini dapat dilakukan dengan:

$ vim /var/www/vhosts/example.com/wp-content/uploads/.htaccess
[...]
# Prevent PHP execution
<Files *.php>
deny from all
</Files>
[...]

PERINGATAN: Ini dapat merusak tema Anda jika memerlukan eksekusi PHP dalam direktori wp-content/uploads. Jika Anda menemukan sesuatu yang rusak, cukup putar kembali perubahan Anda dan situs akan mulai bekerja kembali.

Blokir serangan xmlrpc.php

Wordpress menggunakan XML-RPC untuk menjalankan fungsi dalam Wordpress dari jarak jauh. Sering kali pihak jahat akan mencoba untuk mengeksploitasi xmlrpc.php dengan memaksanya, yang dapat mengirim ribuan permintaan ke server web, dan karena itu menyebabkan masalah perebutan sumber daya.

Serangan xmlrpc.php dapat dideteksi dengan memeriksa melalui log akses situs. Jika Anda melihat ratusan atau ribuan permintaan dalam waktu singkat yang terlihat seperti di bawah ini, itu adalah tanda bahwa xmlrpc.php sedang diserang:

$ tail /var/log/httpd/example.com-access.log
[...]
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:03 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[...]

Anda dapat mengurangi serangan brute force xmlrpc.php di Apache dengan memasukkan yang berikut ke dalam file .htaccess:

$ vim /var/www/vhosts/example.com/.htaccess
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

Paksa SSL pada login wp-admin

$ vim /var/www/vhosts/example.com/wp-config.php
[...]
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* That's all, stop editing! Happy blogging. */
[...]

Selesaikan konfigurasi di GUI

Anda sekarang dapat mengakses halaman WordPress Anda dengan menjelajahi http:// . Masukkan bahasa penginstalan, informasi situs, dan pengguna untuk mengakses portal administrator saat diminta. Setelah Anda menyelesaikan konfigurasi ini, sistem akan mengarahkan Anda ke dasbor WordPress utama.

Untuk mengakses dasbor ini kapan saja, buka http:///wp-login.php atau http:///wp-login.php .

Kesimpulan

WordPress adalah Sistem Manajemen Konten (CMS) yang sangat intuitif yang memungkinkan Anda mengatur halaman web blog, dengan cepat dan gratis. Setelah Anda menyelesaikan langkah-langkah dalam artikel ini, Anda dapat mulai menggunakan situs WordPress Anda.


Linux
  1. Instal phpMyAdmin di Ubuntu 20.04 dengan Apache

  2. Instal phpMyAdmin di Debian 11 dengan Apache

  3. Instal Apache 2 dari Sumber di Linux

  1. Instal phpMyAdmin di Ubuntu 22.04 dengan Apache

  2. Cara Instal Apache 2 dengan SSL di Linux (dengan mod_ssl, openssl)

  3. Menyiapkan subdomain dengan Apache di Linux

  1. Instal aplikasi di Linux dengan Flatpak

  2. Instal Linux dengan LVM

  3. Instal WordPress dengan Docker Compose, Nginx, Apache dengan SSL