Saya menggunakan server Ubuntu 16.04.2 dengan Apache2, di mana saya menyimpan situs web pribadi saya.
Untuk mengaktifkan semua file conf saya di bawah /etc/apache2/sites-available
(selain 000-default.conf
dan ssl-default.conf
), saya pergi ke /var/www/html
dan dieksekusi a2ensite
.
Saya kemudian diberitahu:
Your choices are:
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4
Which site(s) do you want to enable (wildcards ok)?
Saya kemudian melakukan Ctrl+ Cbertujuan untuk mengeksekusi sesuatu yang lain.
Saya mencari cara untuk secara otomatis mengaktifkan semua conf situs, tanpa memperhatikan yang spesifik --- Saya hanya ingin menjalankan perintah yang akan memungkinkan semua conf situs yang saya tambahkan sendiri.
*.conf
ekstensi. Atau a2ensite akan mengeluh bahwa situs tersebut tidak adaAnda harus menavigasi ke
/etc/apache2/sites-available
dan kemudian menjalankan perintah:Ini akan memungkinkan semua situs dalam direktori. (file harus berupa sesuatu seperti xxx.conf)
Dan kemudian memuat ulang apache menggunakan
sudo service apache2 reload
.Jadi urutan perintah Anda harus seperti ini:
sumber
default-ssl.conf
... Ini jelas dari outputEnabling site default-ssl.
dpkg -S
untuk melihat apakah file konfigurasi berasal dari sebuah paket.Tidak peduli apa lokasi kami saat ini, perintah
sudo a2ensite "*.conf"
akan berusaha untuk mengaktifkan semua file konfigurasi yang ditempatkan di/etc/apache2/sites-available/
.Selanjutnya kita dapat menggunakan
a2dissite 000-default.conf default-ssl.conf
untuk menonaktifkan konfigurasi default Apache dan kemudian kita dapat menggunakannyasystemctl restart apache2.service
untuk me-restart itu.Kita dapat menjalankan ini semua seperti satu perintah:
Sesuatu yang lebih, kita dapat membuat perintah khusus melalui fungsi di bash:
Sekarang kita memiliki perintah , yang dirancang untuk melakukan pekerjaan ini. Untuk membuat perintah ini permanen, kita harus menempatkan baris di atas ke bagian bawah file dan kemudian . Skrip sederhana berikutnya akan menyelesaikan tugas ini:
a2ensites
~/.bashrc
source
sumber
*
wildcard sedang diperluas sebelum itu akan diteruskan kea2ensite
perintah dalam kasus saya. Namun, ini berhasilsudo a2ensite "*.conf"
.a2ensite '*.conf'
berfungsi dengan benar di sistem Anda?Eksekusi
a2ensite /var/www/html/*/
akan membuat Apache mengaktifkan setiap situs conf yang memiliki nama yang sama , seperti dir situs.Sebagai efek samping, itu juga akan mencoba untuk mencocokkan dir situs yang tidak cocok dengan file conf situs, seperti yang diperkirakan dari output berikut, tapi saya pikir ini dapat diabaikan dengan aman:
Anda mungkin perlu me-restart Apache setelah mengaktifkan file conf:
sumber
/etc/apache2/sites-available
folder untuk konfigurasi untuk situs Anda. Setelah Anda mengaktifkannya melalui a2ensite, mereka secara otomatis ditautkan ke/etc/apache2/sites-enabled
. Apa yang Anda lakukan sekarang cukup aneh dan semua orang yang memiliki akses ke server Anda dapat melihat ke dalam konfigurasi Anda?/var/www/html
karena itu adalah DocumentRoot daridefault.html
-Situs. Jadi dalam kasus Anda, Anda tampaknya menjalankan konfigurasi di sana ... Ini seperti makan dengan mulut terbuka, jangan lakukan itu ;-)./var/www/html
dijadikan folder konfigurasi Anda. Nvm lalu. Apa yang sebenarnya Anda butuhkan hanyalahfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
salin tempel baris berikut dalam nama file
apache_enable.sh
dan berikan perintah baca + eksekusi ke
apache_enable.sh
dan jalankan skrip menggunakan pengguna rootsumber
Pindahkan konfigurasi default ke folder lain dan kemudian * seharusnya berfungsi untuk Anda seperti yang Anda inginkan.
Buka folder "situs yang tersedia" karena hanya berfungsi di folder ini.
sumber