Beberapa kata tentang kesalahan yang Anda dapatkan semoga akan menyelamatkan Anda dari situasi serupa di masa mendatang.
Di Linux port dari 0 hingga 1024 dicadangkan untuk penggunaan sistem. Ini berarti bahwa untuk menggunakannya, Anda harus memiliki wewenang untuk berubah - mengakses pengaturan sistem dasar. Pengguna root memiliki hak seperti itu dan benar-benar dapat menggunakan port dari rentang 0 - 1024.
Dalam masalah Anda seperti yang Anda lihat, respons sistem melalui Apache2 menunjukkan akar masalah ([...] tidak dapat mengikat ke alamat bla bla 80 ):
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
Ketika daemon Apache2 http dimulai, ia mencoba untuk mengikat port 80 karena itu adalah port default untuk digunakan dalam HTTP see , yang merupakan port di dalam sistem yang ditugaskan port dan karenanya hanya dapat diakses oleh root.
Anda menjalankan perintah mulai sebagai pengguna biasa tanpa hak akses root dan menyebabkan kegagalan untuk melakukannya.
Dengan kata sederhana:
Kamu:
Hai Apache2. Saya Kongthap dan saya meminta Anda untuk memulai ( /etc/init.d/apache2 start
)
Apache2:
BAIK. Saya memulai (Memulai server web apache2)
Sistem, tolong beri saya port 80 untuk menggunakan dan mendengarkan koneksi.
Sistem:
BAIK. Satu saat untuk memeriksa ...
Ahh ... Maaf Apache2 tapi saya tidak bisa membiarkan Anda berjalan di port 80, itu untuk penggunaan pribadi.
Dan Anda tidak memiliki hak yang benar untuk mengikatnya. ( Operation not permitted
)
Apache2:
Ohh, Kongthap saya gagal memulai, Sistem tidak membiarkan saya melakukannya ( (13)Permission denied:[...]
)
Kesimpulan
Ada dua solusi utama untuk masalah ini:
Jalankan daemon HTTP Apache2 dengan hak akses root menggunakan sudo
:
sudo service apache2 start
atau:
sudo /etc/init.d/apache2 start
Mengubah port default dari 80
sesuatu yang lebih besar dari 1024
, katakanlah 2000
, 2500
, 9000
, dll Sebuah port khas untuk menjalankan ketika dalam situasi seperti ini8080
sudo vi /etc/apache2/ports.conf
cari atau jika tidak ada tambahkan:
Listen 8080
atau port lain pilihan Anda seperti port > 1024
dan port yang dipilih tidak digunakan oleh proses lain.
service
metode yang disukai?Berikut ini adalah perintah untuk memulai / menghentikan / memulai kembali server apache:
Untuk memulai:
Untuk berhenti:
Untuk memulai kembali:
sumber
Periksa konteks port selinux dengan mengeluarkan perintah
Jika ada di daftar http_port_t maka tidak apa-apa, tambahkan port Anda dengan
atau sesuatu yang ingin Anda tetapkan.
sumber
Ini adalah kesalahan selinux, atau setidaknya itu dalam kasus saya. Ubah boolean, nonaktifkan selinux, atau setel untuk permisif dengan
setenforce 0
.Perubahan boolean akan mengharuskan Anda untuk menjalankan
getenforce -a | grep http
, dan mencari "izinkan http menghubungkan jaringan". Salin dan ganti "on" di mana daftar mengatakan "- off"sumber