Pasang Apache di Ubuntu 18.04 Bionic Beaver Linux
- 2411
- 211
- Clarence Powlowski
Objektif
Ketahui bagaimana memasang Apache di Ubuntu 18.04, Cara Mengkonfigurasi Hos Maya, Menyediakan Firewall dan Gunakan Sijil SSL untuk Sambungan Selamat
Keperluan
- Keizinan akar
Konvensyen
- # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
secara langsung sebagai pengguna akar atau dengan menggunakansudo
perintah - $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak
Pengenalan
Pelayan Web Apache tidak memerlukan persembahan besar: Perisian Sumber Terbuka, yang dikeluarkan oleh Yayasan Apache, adalah salah satu pelayan web yang paling banyak digunakan di dunia. Dalam tutorial ini, kami akan melihat cara memasangnya, menyesuaikan konfigurasi firewall untuk membolehkan trafik HTTP dan HTTPS, dan persediaan tuan rumah maya di Ubuntu 18.04.
Pemasangan
Memasang pelayan web Apache di Ubuntu 18.04 Bionic Beaver adalah proses yang sangat mudah:
$ sudo apt-get update & & apt-get install Apache2
Skrip pemasangan ubuntu akan menjaga permulaan dan membolehkan apache2
perkhidmatan di boot.
Persediaan Firewall
Untuk mengakses kandungan lalai yang disampaikan oleh Apache, pada mesin yang sama pelayan sedang berjalan, kita hanya perlu menyalakan pelayar web dan menavigasi ke localhost
di bar alamat. Sekiranya semua persediaan dengan betul, halaman harus mengalu -alukan kami dengan "ia berfungsi!"Mesej:
Sekiranya firewall didayakan pada sistem kami (seperti yang sepatutnya), untuk menjadikan kandungan dapat diakses dari luar mesin kami, kami perlu membenarkan trafik masuk di port 80
. Perintah untuk dijalankan bergantung pada pengurus firewall yang digunakan. Contohnya, semasa menggunakan ufw
(Lalai Ubuntu), kita mesti lari:
$ sudo ufw membenarkan http
Begitu juga, jika menggunakan Firewalld
, kita boleh lari:
$ sudo firewall-cmd --permanent --add-service = http && firewall-cmd-reload
Perhatikan bahawa arahan di atas akan memberi kesan kepada zon firewalld lalai. Sekiranya kita mahu beroperasi pada yang lain, kita mesti menentukannya dengan --Kawasan
pilihan.
Mengkonfigurasi tuan rumah maya
Pelayan Web Apache mempunyai keupayaan untuk menjalankan lebih dari satu laman web di mesin yang sama. Setiap laman web (tuan rumah maya dalam terminologi Apache) yang harus disampaikan mesti mempunyai konfigurasi sendiri. Tuan rumah maya boleh menjadi IP atau dinamakan berdasarkan.
Dalam tutorial ini, kami akan memberi tumpuan kepada jenis kedua, kerana ia lebih mudah untuk persediaan dan tidak memerlukan banyak alamat IP (tuan rumah maya berasaskan nama membolehkan banyak laman web untuk berkongsi alamat yang sama).
Tuan rumah maya lalai
Di Ubuntu, tuan rumah maya lalai ditakrifkan ke dalam /etc/apache2/tapak yang tersedia
direktori, di dalam 000-lalai.Conf
fail. Mari kita melihatnya:
[… .] ServerAdmin Webmaster@localhost Documentroot/var/www/html [.. .] Errorlog $ apache_log_dir/ralat.log customlog $ APACHE_LOG_DIR/akses.log digabungkan [.. .]
Salinan The Arahan pada baris 1 digunakan untuk mengumpulkan tetapan yang digunakan oleh Apache untuk tuan rumah maya tertentu. Perkara pertama yang kita lihat ditakrifkan di dalamnya, adalah
*: 80
arahan. Ini menunjukkan alamat IP dan port yang digunakan oleh tuan rumah maya.
Pelbagai tuan rumah maya boleh ditakrifkan dalam fail yang sama atau dengan mengikuti skim "satu definisi tuan rumah maya setiap fail". Dalam kedua -dua kes, definisi pertama dianggap sebagai lalai, jika tidak ada hos maya lain yang dipadankan dengan permintaan klien.
The ServerAdmin
Arahan pada baris 3is pilihan, dan ia digunakan untuk menentukan alamat kenalan yang akan ditunjukkan oleh pelayan web dalam hal mesej ralat. Biasanya kami ingin memberikan alamat e -mel yang sah sebagai hujah arahan ini, kerana pelayan web akan menggunakan Mailto:
di atasnya, untuk menghubungi pentadbir lebih mudah.
Documentroot
pada baris 4is wajib dan penting untuk konfigurasi tuan rumah maya. Hujah untuk arahan ini mestilah laluan sistem fail yang sah. Direktori yang disediakan akan dianggap sebagai direktori akar tuan rumah maya, dan tidak boleh mengandungi '/'. Dalam kes ini, direktori root dokumen itu /var/www/html
. Sekiranya kita melihat kandungannya, kita melihat bahawa ia mengandungi indeks.html
halaman yang digunakan sebagai halaman selamat datang pelayan yang kita lihat sebelumnya.
Dua arahan terakhir pada baris 8 - 9 yang dibekalkan dalam virtualhost ini adalah Errorlog
dan CustomLog
. Dengan menggunakan yang pertama, kami menetapkan fail yang mana pelayan akan log kesilapan yang berlaku. Yang kedua, sebaliknya digunakan untuk log permintaan yang dihantar ke pelayan dalam format yang ditentukan (anda boleh menggunakan ini sebagai rujukan untuk pengetahuan yang mendalam mengenai format log).
Buat tuan rumah maya baru
Kami melihat bagaimana VirtualHost lalai ditakrifkan; Sekarang katakan kami ingin melayani laman web lain menggunakan webserver kami: Kami mesti menentukan tuan rumah maya baru untuk dapat mencapai matlamat kami.
Seperti yang dikatakan di atas, fail tuan rumah maya mesti ditakrifkan di dalam /etc/apache2/tapak yang tersedia
Direktori (sekurang-kurangnya dalam pengagihan berasaskan Debian): Oleh itu, kami akan membuat fail kami di sana. Sebelum melakukan itu, kami ingin membuat direktori untuk digunakan sebagai kami root dokumen
, dan buat halaman asas untuk dipaparkan apabila kami sampai ke laman web:
$ sudo mkdir/var/www/contoh && echo "Selamat datang ke contoh!">/var/www/contoh/indeks.html
Kami kini boleh meneruskan mengkonfigurasi tuan rumah maya kami:
Documentroot/var/www/Contoh ServerName www.Contoh.tempatan
Ini adalah konfigurasi minimum yang diperlukan untuk menjalankan tuan rumah maya. Di sini kita dapat melihat arahan baru, Nama pelayan
: Inilah yang mentakrifkan tuan rumah maya kami. Mari simpan fail ini sebagai Contoh.Conf
. Untuk mengaktifkan Virtualhost kami, kami menggunakan a2ensite
Perintah: Semua arahan ini adalah membuat symlink fail ke dalam /etc/apache2/enabled tapak
Direktori:
Contoh $ sudo a2ensite.Conf
Selepas itu, kita mesti memuatkan semula konfigurasi pelayan:
$ sudo Systemctl Reload Apache2.perkhidmatan
Kami menentukan virtualhost kami, namun kerana ini adalah ujian dan kami tidak mempunyai Kemasukan DNS
dikaitkan dengannya, untuk mengesahkan bahawa konfigurasi berfungsi, kita mesti menambah entri di /etc/hos
fail mesin yang kami cuba sampai ke laman web ini.
$ sudo echo "192.168.122.241 www.Contoh.Tempatan ">> /etc /hos
Tanpa garis ini, (dan tanpa entri DNS) mustahil untuk mengaitkan alamat pelayan dengan nama VirtualHost kami, dan menggunakan IP pelayan secara langsung, sebaliknya akan "mencetuskan" host maya lalai.
Dari mesin pelanggan, jika kita sekarang menavigasi ke "www.Contoh.Tempatan ”kita harus melihat halaman minimum yang kita sediakan di atas:
Contoh Indeks VirtualHostMenyediakan SSL
SSL, pendek untuk Lapisan soket selamat
Ini teknologi yang membolehkan kami menyulitkan data yang terlibat dalam hubungan antara klien dan pelayan. Apabila sijil SSL digunakan, https
(Protokol Pemindahan Teks Hyper Secure) Menggantikan HTTP dalam URL.
Sijil SSL dikeluarkan oleh pihak berkuasa sijil, yang, sebagai pihak ketiga yang dipercayai, memastikan seseorang benar -benar yang mendakwa berada di internet. Sijil SSL boleh menjadi sangat mahal, namun terdapat dua alternatif utama untuk mendapatkan sijil: Buat sijil yang ditandatangani sendiri atau dapatkannya dari Mari enkripsi
.
Menjana sijil SSL yang ditandatangani sendiri
Walaupun menghasilkan sijil yang ditandatangani sendiri, ia bukan tugas yang sukar dan boleh berguna apabila anda hanya ingin mencapai enkripsi, ia tidak boleh digunakan dalam konteks di mana sijil itu sendiri mesti ditandatangani oleh pihak ketiga yang dipercayai. Kami boleh menjana sijil ditandatangani sendiri dengan menggunakan OpenSSL
Utiliti:
$ sudo openssl req -x509 \ -days 365 \ -sha256 \ -newkey rsa: 2048 \ -nodes \ -keyout contoh.Kunci \ -out Contoh -Cert.PEM
Mari lihat apa arahan ini. Pilihan pertama yang kita hadapi, -x509
, mengubah tingkah laku perintah supaya ia menghasilkan sijil yang ditandatangani sendiri dan bukannya permintaan sijil.
Dengan -hari
, Kami menetapkan kesahihan, dalam beberapa hari, untuk sijil. Pilihan yang disediakan seterusnya adalah -Newkey
: dengan itu kita membuat kunci baru, dalam hal ini RSA
kunci, dengan saiz 2048 bit. Untuk kes ujian kami, kami tidak mahu menyulitkan fail kunci peribadi, jadi kami menggunakan -nod
. Sekiranya pilihan ini ditinggalkan, fail di mana kunci disimpan akan dilindungi oleh kata laluan, yang akan diminta untuk memasukkan setiap kali pelayan web dimulakan.
Dengan -keyout
dan -keluar
Kami menentukan fail untuk menulis kunci yang dihasilkan dan sijil. Semasa melancarkan arahan, kami akan diminta untuk menjawab beberapa soalan, dan kemudian kunci dan sijil akan dijana.
Anda akan diminta memasukkan maklumat yang akan dimasukkan ke dalam permintaan sijil anda. Apa yang hendak anda masukkan adalah apa yang disebut nama terkenal atau DN. Terdapat beberapa bidang tetapi anda boleh meninggalkan beberapa kosong untuk beberapa bidang akan ada nilai lalai, jika anda memasukkan '.', medan akan dibiarkan kosong. ----- Nama Negara (2 Kod Surat) [AU]: Nama Negeri atau Provinsi (Nama Penuh) [Some-State]: Nama Lokasi (misalnya, City) []: Nama Organisasi Milan (misalnya, Syarikat) [Internet Widgits Pty Ltd] : Kerosakan inc. Nama Unit Organisasi (misalnya, Seksyen) []: Nama Biasa (e.g. pelayan fqdn atau nama anda) []: www.Contoh.Alamat E -mel Tempatan []:
Langkah seterusnya adalah menyalin kunci dan sijil yang dihasilkan kami /etc/ssl/swasta
dan /etc/ssl/ssl-certs
Direktori masing -masing:
$ sudo mv contoh contoh.PEM/etc/ssl/certs
Sijil ini awam, jadi tidak memerlukan kebenaran khas. Sekarang, kunci:
Contoh $ sudo mv.kunci/etc/ssl/swasta
Penting bahawa kita menyesuaikan kebenaran fail utama. Sekiranya kita memeriksa /etc/ssl/swasta
folder, kita dapat melihat bahawa ia adalah milik akar
pengguna dan SSL-CERT
kumpulan, dan ia mempunyai 710
Sebagai kebenaran, yang bermaksud bahawa walaupun pemilik mempunyai keistimewaan penuh di atasnya, pemilik kumpulan hanya boleh mengaksesnya dan menyenaraikan kandungannya, dan tidak ada kebenaran yang dibenarkan untuk orang lain:
$ ls -ld/etc/ssl/private drwx-x --- 2 root ssl-cert 4096 16 Mac 11:57/etc/ssl/swasta
Mari kita ubah keizinan fail utama kami dengan sewajarnya, memberikan keizinan membaca dan menulis pemilik, dan keistimewaan baca sahaja untuk kumpulan:
$ sudo chown root: ssl-cert/etc/ssl/swasta/contoh.Kunci $ sudo chmod 640/etc/ssl/swasta/contoh.kunci
Untuk menggunakan sijil kami, kami kini perlu membolehkan modul SSL Apache. Kami melakukannya dengan menggunakan A2enmod
Perintah:
$ sudo a2enmod ssl
Kami hampir di sana. Kini sudah tiba masanya untuk mengubah suai tuan rumah maya kami dan menetapkannya dengan cara ini:
Documentroot/var/www/Contoh ServerName www.Contoh.Local # Dayakan SSL Engine SSLengine pada SSLCertificateFile/etc/ssl/certs/Contoh-CERT.PEM SSLCertificateKeyFile/etc/ssl/swasta/contoh.kunci
Salinan Pelabuhan 443
Pada baris 1is port yang digunakan untuk HTTPS (sebagai ganti port 80 yang digunakan untuk http). Kami juga menambah Sslengine on
Arahan pada baris 6, yang cukup jelas.
Akhirnya pada baris 8 - 9 kami telah menetapkan laluan untuk sijil dan fail utama kami, menggunakan SSLCertificateFile
dan SSLCertificateKeyFile
arahan.
Sekarang, ikuti pemotongan untuk membuka port firewall yang digunakan pada permulaan tutorial, tetapi kali ini untuk membenarkan https
perkhidmatan:
$ sudo ufw membenarkan https
Akhirnya, muat semula konfigurasi Apache:
$ sudo Systemctl Reload Apache2
Semua selesai. Sekarang, jika dari pelanggan, kami menavigasi https: // www.Contoh.tempatan
alamat, kita harus melihat pelayan web memberi amaran kepada kami bahawa sijil yang digunakan tidak selamat (kerana ia dipercayai sendiri). Ini, namun tanda persediaan kami berfungsi dan lalu lintas antara klien dan pelayan akan disulitkan (anda perlu menambah pengecualian untuk sijil menggunakannya).
Menyiapkan Let's Encrypt
Alternatif kepada sijil komersil dan ditandatangani sendiri yang diwakili oleh "Let's Encrypt". Mari enkripsi adalah pihak berkuasa sijil percuma, automatik dan terbuka; Matlamatnya adalah untuk memungkinkan untuk mendapatkan sijil secara automatik yang dipercayai oleh penyemak imbas tanpa campur tangan manusia.
Ini dapat dicapai dengan menggunakan Acme
protokol dan a Ejen Pengurusan Sijil
yang berjalan di pelayan.
Untuk mendapatkan sijil kita mesti menunjukkan kita mempunyai kawalan ke atas domain yang kita mahu menggunakan sijil untuk. Sekiranya kami tidak mempunyai akses shell pada pelayan, kami harus menghubungi penyedia perkhidmatan kami untuk mengaktifkan mari menyulitkan bagi pihak kami, tetapi mungkin terdapat bahagian khusus dalam panel konfigurasi perkhidmatan.
Jika, sebaliknya, kita mempunyai akses shell ke pelayan yang dipersoalkan, pertama sekali kita mesti memasang Certbot
Pelanggan ACME. Memasang Certbot di Ubuntu 18.04 Ini hanya masalah berlari:
$ sudo apt-get update &&p-get Install Certbot Python-CertBot-APACHE
Pakej certbot dilengkapi dengan a pemasa sistem
unit yang akan menjalankan Certbot dua kali sehari untuk memastikan sijil terkini. Mendapatkan sijil agak mudah:
$ sudo certbot --apache -m -d
Jelas untuk ini berfungsi domain mesti menunjuk dengan betul ke IP pelayan yang boleh diakses awam kami. Certbot akan meminta anda untuk beberapa soalan untuk mengubah konfigurasi, dan jika semuanya berjalan lancar, sijil dan kunci harus disimpan ke dalam /etc/letsencrypt/live/
direktori. Hanya tweak fail hos maya anda untuk menunjuk kepada mereka dan anda sudah selesai!
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Pasang Arch Linux di Workstation VMware
- Ubuntu 20.04: WordPress dengan pemasangan nginx
- Perkara yang perlu dipasang di Ubuntu 22.04
- Dayakan/lumpuhkan Firewall di Manjaro Linux
- Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
- Ubuntu 20.04 WordPress dengan pemasangan Apache
- Setup Server FTP di Linux
- Cara Menyiapkan VSFTPD di Debian
- « Pasang IntelliJ di Ubuntu 18.04 Bionic Beaver Linux
- Cara Menyegerakkan Masa di Ubuntu 18.04 Bionic Beaver Linux »