Kilka słów o błędach, które otrzymujesz, które, mam nadzieję, uratują cię od podobnych sytuacji w przyszłości.
W systemie Linux porty od 0 do 1024 są zarezerwowane do użytku systemowego. Oznacza to, że aby go użyć, musisz mieć uprawnienia do zmiany - dostęp do podstawowych ustawień systemu. Użytkownik root ma takie uprawnienia i może faktycznie korzystać z portu z zakresu od 0 do 1024.
W twoim problemie, jak widać, system za pośrednictwem odpowiedzi Apache2 wskazuje na przyczynę problemu ([...] nie mógł powiązać z adresem 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
Podczas uruchamiania demona HTTP Apache2 próbuje powiązać port 80, ponieważ jest to domyślny port do użycia w HTTP see , który jest portem w przypisanych do systemu portach i jako taki może być dostępny tylko przez root.
Wykonałeś polecenie start jako typowy użytkownik bez uprawnień roota i doprowadziłeś do niepowodzenia.
W prostych słowach:
Ty:
Cześć Apache2. Jestem Kongthap i mówię wam, żebyście zaczęli ( /etc/init.d/apache2 start
)
Apache2:
DOBRZE. Zaczynam (Uruchamianie serwera WWW apache2)
System, daj mi port 80 do używania i nasłuchiwania połączeń.
System:
DOBRZE. Chwileczkę, by sprawdzić ...
Ahh ... Przepraszam, Apache2, ale nie mogę pozwolić, abyś uruchomił się na porcie 80, to jest do użytku osobistego.
I nie masz odpowiednich uprawnień, aby go związać. ( Operation not permitted
)
Apache2:
Ohh, Kongthap nie udało mi się uruchomić, System nie pozwolił mi tego zrobić ( (13)Permission denied:[...]
)
Wniosek
Istnieją głównie dwa rozwiązania tego problemu:
Uruchom demona HTTP Apache2 z uprawnieniami administratora, używając sudo
:
sudo service apache2 start
lub:
sudo /etc/init.d/apache2 start
Zmienić domyślny port od 80
do czegoś większego niż 1024
, powiedzmy 2000
, 2500
, 9000
, itd. Typowe portu do uruchomienia gdy w takiej sytuacji jest8080
sudo vi /etc/apache2/ports.conf
poszukaj lub jeśli nie, dodaj:
Listen 8080
lub dowolny inny > 1024
wybrany port, taki jak port, a wybrany port nie jest używany przez inny proces.
service
z preferowanej metody?Poniżej znajdują się polecenia uruchomienia / zatrzymania / restartu serwera Apache:
Zacząć:
Zatrzymać:
Zrestartować:
źródło
Sprawdź kontekst portu selinux, wydając polecenie
Jeśli jest obecny na liście http_port_t, to jest OK, w przeciwnym razie dodaj swój port przez
lub coś, co chcesz przypisać.
źródło
To błąd selinux, a przynajmniej tak było w moim przypadku. Zmień wartość logiczną, wyłącz selinux lub ustaw na permissive za pomocą
setenforce 0
.Zmiana wartości logicznej wymagałaby uruchomienia
getenforce -a | grep http
i wyszukania „zezwól na połączenie sieci http”. Skopiuj go i zastąp „on” tam, gdzie na liście jest napisane „off”źródło