Cara yang tepat untuk mengubah direktori atau menjalankan dari banyak direktori di bawah port yang berbeda untuk apache2 adalah sebagai berikut:
Untuk apache2 file konfigurasi terletak di bawah /etc/apache2
dan tidak menggunakan file konfigurasi tunggal seperti dalam versi yang lebih lama tetapi dibagi menjadi file konfigurasi yang lebih kecil, dengan /etc/apache2/apache2.conf
menjadi file konfigurasi utama. Untuk melayani file dari direktori yang berbeda, kami memerlukan file conf virtualhost baru. File conf virtualhost berada di /etc/apache2/sites-available
(jangan mengedit file dalam situs yang diaktifkan). Instalasi apache default menggunakan file conf virtualhost000-default.conf
.
Mulailah dengan membuat file virtualhost baru dengan menyalin file virtualhost default yang digunakan oleh instalasi default apache (yang berjalan di localhost pada port 80). Ubah ke direktori /etc/apache2/sites-available
dan kemudian salin dengan sudo cp 000-default.conf example.com.conf
, sekarang edit file dengan sudo gedit example.com.conf
ke:
<VirtualHost *:80>
ServerAdmin example@localhost
DocumentRoot /home/ubuntu/example.com
</VirtualHost>
Saya telah menghapus baris yang tidak penting dari file di atas untuk singkatnya. Berikut DocumentRoot
adalah jalur ke direktori tempat file situs web akan dilayani seperti index.html
.
Buat direktori dari mana Anda ingin melayani file, untuk misalnya; mkdir example.com
dan ubah pemilik dan grup default direktori, misalnya misalnya jika nama pengguna Anda yang login adalah ubuntu
ubah izin sudo chown ubuntu:www-data example.com
. Ini memberikan akses penuh ke pengguna ubuntu
dan memungkinkan membaca dan mengeksekusi akses ke grup www-data
.
Sekarang edit file conf apache /etc/apache2/apache2.conf
dengan mengeluarkan perintah sudo gedit apache2.conf
dan temukan baris <Directory /var/www/>
dan di bawah tag penutup </Directory>
, tambahkan yang berikut di bawah ini:
<Directory /home/ubuntu/example.com>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Sekarang ada dua perintah untuk mengaktifkan atau menonaktifkan file konfigurasi virtualhost, yaitu a2ensite
dan a2dissite
masing - masing. Sekarang karena example.com.conf
file kita menggunakan port yang sama ( 80
) seperti yang digunakan oleh file konfigurasi default ( 000-default.conf
), kita harus menonaktifkan file konfigurasi default dengan mengeluarkan perintah sudo a2dissite 000-default.conf
dan mengaktifkan file conf virtualhost kami dengansudo a2ensite example.com.conf
Sekarang restart atau muat ulang server dengan perintah sudo service apache2 restart
. Sekarang apache melayani file dari direktori example.com
pada localhost
pada port default80
.
Itu a2ensite
perintah pada dasarnya menciptakan link simbolik ke file conf di bawah direktori situs-diaktifkan
Jangan mengedit file di dalam pengarahan situs-situs yang diaktifkan (atau * -diaktifkan), seperti yang ditunjukkan dalam jawaban ini https://stackoverflow.com/a/41568701/2532763
Untuk mengubah port dan menjalankan dari banyak direktori pada port yang berbeda:
Sekarang jika Anda perlu menjalankan direktori pada port yang berbeda, ubah nomor port dari 80 menjadi 8080 dengan mengedit file virtualhost sebagai:
<VirtualHost *:8080>
ServerAdmin user@localhost
DocumentRoot /home/ubuntu/work
</VirtualHost>
dan mengedit /etc/apache2/ports.conf
dan menambahkan Listen 8080
tepat di bawah garisListen 80
Sekarang kita dapat mengaktifkan file conf virtualhost default yang berjalan pada port 80 karena direktori example.com menggunakan port 8080, sebagai sudo a2ensite 000-default.conf
Sekarang restart atau muat ulang server dengan perintah sudo service apache2 restart
. Sekarang kedua direktori dapat diakses dari localhost
danlocalhost:8080