Prasyarat
- Pelayan Vultr yang menjalankan Arch Linux terkini. Lihat panduan ini untuk mendapatkan maklumat lanjut.
- Akses Sudo.
- Perintah yang diperlukan untuk dijalankan sebagai root diawali oleh
#, dan perintah yang boleh dijalankan sebagai pengguna biasa oleh $. Cara yang disyorkan untuk menjalankan arahan sebagai root ialah, sebagai pengguna biasa, awalan masing-masing dengan sudo.
- Mempunyai editor teks dipasang, dan membiasakan diri dengannya, seperti
vi, vim, nano, emacsdan sebagainya.
Pasang Pelayan Web Apache 2.4
Sekiranya anda menggunakan firewall, anda perlu mendayakan trafik masuk TCP ke pelabuhan 80.
Pasang Apache:
# pacman -S apache
Mulakan Apache, dan mulakan selepas setiap but:
# systemctl enable --now httpd
Uji bahawa Apache sedang berjalan. Lawati http://YOUR-SERVER-WEB-ADDRESS-OR-IP, dan anda akan melihat halaman yang menunjukkan "Indeks /". Jalankan ip addrjika anda perlu mengetahui alamat IP.
Fail konfigurasi Apache adalah /etc/httpd/conf/httpd.conf. Walaupun Apache dimulakan oleh pengguna root, User httpmenjadikannya segera beralih ke pengguna sebagai pengguna ini atas alasan keselamatan. DocumentRoot "/srv/http"menetapkan di mana ia akan mencari fail web. CustomLog "/var/log/httpd/access_log" commonmenetapkan di mana akses ke Apache yang berjaya akan dicatat. ErrorLog "/var/log/httpd/error_log"menetapkan di mana akses ke Apache kesalahan itu akan dicatat.
Melumpuhkan Indeks
Secara lalai, jika Apache diberikan direktori yang tidak dapat mencari fail indeks dengan sambungan yang dikonfigurasikan untuk digunakan, ia secara automatik akan menjana indeks yang menunjukkan kandungan direktori. Ini boleh dianggap sebagai kerentanan keselamatan. Untuk menyahdayakannya, edit /etc/httpd/conf/httpd.confdan dalam <Directory "/srv/http">, dari Options, padam Indexes. Setelah dimulakan semula, Apache akan memberikan "Akses dilarang!" mesej ralat, kecuali fail seperti yang /srv/http/index.htmlwujud.
Restart Apache:
# systemctl restart httpd
Direktori Pengguna
Secara lalai, direktori pengguna ~/public_html/akan ditunjukkan di http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. Tetapi, pengguna httpmesti mempunyai akses bit yang dapat dilaksanakan ke direktori pengguna dan public_htmldirektori:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Selain itu, pengguna httpmesti mempunyai akses membaca ke fail individu. Sekiranya perlu, jalankan arahan berikut:
$ chmod o+r ~/public_html/<FILES>
Sekiranya anda ingin melumpuhkan public_htmldirektori pengguna agar tidak berada di pelayan web anda, tanpa mengira kebenaran direktori dan fail, komen baris ini (tambahkan #ke awal) di /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Restart Apache:
# systemctl restart httpd
Hos Maya
Anda boleh menjadi tuan rumah beberapa nama domain dari pelayan Apache yang sama, dan memberikannya kandungan yang berbeza.
Buat folder untuk menahan konfigurasi host maya anda:
# mkdir /etc/httpd/conf/vhosts
Buat fail konfigurasi untuk setiap hos maya, seperti /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Buat direktori penyediaan hos maya:
# mkdir /srv/YOUR-DOMAIN-NAME.com
Pada akhir /etc/httpd/conf/httpd.conf, sertakan setiap fail konfigurasi host maya ini:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Restart Apache:
# systemctl restart httpd
Permintaan yang diterima oleh Apache YOUR-DOMAIN-NAME.comakan diselesaikan /srv/YOUR-DOMAIN-NAME.com. Permintaan nota untuk Apache tidak sesuai dengan alamat tertentu , ServerNameatau ServerAliashanya alamat IP, atau nama domain lain yang diselesaikan ke IP anda, masih akan dilayani dari host maya pertama yang disertakan. Walaupun begitu, anda masih harus mempertimbangkan apa sahaja yang umum DocumentRoot, yang mana lalai /srv/http, boleh diakses.