Saya telah melihat beberapa pertanyaan yang terlihat serupa, tetapi semuanya berakhir dengan multisite . Untuk pemeliharaan, kinerja, dan keamanan, saya tidak ingin menggunakan multisite. Jadi tolong bersabarlah.
Inilah yang saya pikirkan:
.
|_____branch1 // for branch1.domain.com
| |_____themes
| |_____plugins
|
|_____branch2 // for branch2.domain.com
| |_____themes
| |_____plugins
|
|_____branch3 // for branch3.domain.com
| |_____themes
| |_____plugins
|
|_____index.php
|_____WordPress
|_____wp-config.php
Seperti yang Anda lihat, setiap domain memiliki basis data dan direktori konten sendiri tetapi hanya satu contoh WordPress. Sekarang, tema, plugin, dan basis data menjadi lebih kecil dan independen. Maka, akan lebih mudah untuk mempertahankan, ...
Tetapi apakah itu mungkin? Jika Anda pernah mengalami masalah yang sama sebelumnya, silakan bagikan pendapat Anda! Saya sangat menghargai bantuan Anda.
customization
multisite
SarahCoding
sumber
sumber
Jawaban:
Seperti @ tom-j-nowell mengatakan dalam komentar untuk OP, multisite dapat membuat ini lebih mudah.
Kinerja dan keamanan sebenarnya bukan masalah bagi multisite (setidaknya, tidak lebih dari itu untuk instalasi reguler), tetapi saya setuju bahwa multisite kadang-kadang bisa menjadi masalah, karena banyak plugin (baik custom atau pihak ke-3) mungkin tidak berfungsi dengan baik di multisite, atau mungkin karena Anda ingin memisahkan pengguna dari situs web yang berbeda.
Yang mengatakan apa yang ingin Anda capai tidaklah sulit.
Yang perlu Anda ubah di antara instalasi adalah:
Konfigurasi tersebut dapat dilakukan dengan menggunakan konstanta dalam
wp-config.php
satu-satunya masalah Anda adalah bagaimana cara mengubahnya berdasarkan URL.Variabel server
'SERVER_NAME'
harus bekerja untuk Anda, setidaknya jika server web Anda dikonfigurasi dengan benar.Misalnya Anda dapat membuat folder bernama
/conf
pada tingkat yang sama dariwp-config.php
file yang dan/WordPress
folder.Di folder itu Anda dapat menambahkan beberapa file:
branch1.domain.com.conf
branch2.domain.com.conf
branch3.domain.com.conf
di dalam masing-masing Anda dapat melakukan sesuatu seperti
Ini akan berubah pada setiap file konfigurasi sesuai dengan "cabang".
Setelah itu, dalam keunikan
wp-config.php
Anda, Anda dapat sesuatu seperti:Apa yang terjadi di atas adalah bahwa berdasarkan nama server Anda memuat file konfigurasi yang berbeda (jika ditemukan) dan jika file konfigurasi tidak menentukan konfigurasi default apa pun (atau jika file tidak ditemukan) konfigurasi ditetapkan per default.
Yang menyenangkan adalah bahwa untuk menambah cabang baru, Anda hanya perlu membuat folder cabang dan memberikan
.conf
nama setelah domain cabang baru, dan Anda selesai, tidak ada yang berubah di sisi WP.Garis:
adalah tempat saya mendapatkan nama domain. Sebagai opsi pertama saya menggunakan variabel lingkungan, karena ada kemungkinan
$_SERVER['SERVER_NAME']
tidak akan berfungsi pada konteks baris perintah, seperti kita saat menggunakan WP CLI. Dalam situasi tersebut, Anda dapat mengatur variabel lingkungan untuk memaksa WP menggunakan pengaturan dari cabang tertentu.Perhatikan bahwa di cabang-spesifik file konfigurasi saya mengubah
WP_CONTENT_DIR
dan yang secara otomatis akan mengatur plugin dan tema folder ke terkait/plugins
dan/themes
subfolder cabang.Masalah yang mungkin terjadi di sini adalah jika Anda ingin membagikan
/uploads
folder (tempat file diunggah).Secara default folder itu adalah subfolder dari dir konten, jadi menggunakan alur kerja di atasnya akan menjadi
/uploads
subfolder dari setiap folder root cabang.Jika itu bukan masalah bagi Anda, daripada hanya pergi dengannya, jika tidak solusi termudah adalah membuat
/uploads
di setiap folder cabang symlink ke folder unggahan nyata yang ingin Anda bagikan.sumber
$_SERVER['SERVER_NAME']
tidak dapat diandalkan ./uploads
dir tidak masalah. Saya juga telah menguji dengan WP CLI, jika kita--url
memasukkan parameter untuk setiap situs, ia bekerja secara normal :)server_name
di nginx atauServerName
di Apache atau apa pun yang cocok dengan server web Anda,$_SERVER['SERVER_NAME']
hanya akan berfungsi. Bahkan jika WP CLI dapat bekerja menggunakan--url
parameter, alat baris perintah lainnya mungkin memiliki masalah jika Anda tidak menggunakan variabel lingkungan. WP CLI "mengolok-olok" URL permintaan dalam konteks CLI, perintah lain mungkin tidak akan melakukannya.SERVER_NAME
sudah dikonfigurasi dengan benar. Tentang env vars, saya telah menggunakan phpdotenv untuk memperbaikinya. Saat ini, semuanya tampak bekerja dengan baik :)Ini dimungkinkan dengan symlinking dan sedikit perencanaan. Saya melakukan penjelajahan di internet untuk hal yang sama. Akhirnya, kumpulkan semua barang dan mulai bekerja.
Saya telah menjalankan beberapa situs web, semuanya berbagi tema dan folder plugin yang sama. Folder yang sama berfungsi untuk situs multisite dan tunggal. Tetapi Anda harus berhati-hati tentang plugin tertentu yang dapat menjadi situs Multi / Tunggal saja dan unik.
Saya telah membuat direktori seperti master-tnp / themes dan master-tnp / plugins. Kemudian symlink ke direktori wordpress Anda menggunakan perintah ln -s.
Perangkap dalam konfigurasi server juga. Pastikan ikuti arahan symlink diatur untuk memungkinkan.
Jika Anda ingin menggunakan instalasi WordPress tunggal, saya telah mengumpulkan panduan terperinci tentang bagaimana saya melakukannya di https://vaish.co/multiple-sites-single-wordpress-directory
sumber