XAMPP - problémy s Apache (ServerRoot must be a valid directory, make_sock: could not bind to address)
O instalaci a příspěvek o spuštění Apache a MySQL serveru jsem již psal na svém blogu. Při nedávné instalaci, kterou jsem pojal jako kata cvičení, abych nevyšel z formy jsem narazil na problémy, které jsem již řešil a považuji je, za standard a mnohým ušetří to "pátrání". Výčet nemusí být konečný (pakliže se budu dopouštět takových chyb) :
Hlášení - Only one usage of each socket address (protocol/network address/port) is normally permitted : make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down.
Popis - na portu 80 už poslouchá jiná aplikace. Server apache má tento port nastaven v konfiguračním souboru (%XAMPP_HOME%/apache/cont/httpd.conf) direktiva ServerName (ServerName localhost:80).
Řešení - Je možné jej změnit, ale doporučuji se podívat, která aplikace na portu 80 visí (máte Skype? - pak v nastavení odšktněte volbu - Use port 80 and 443 as alternative for incoming connections). Pakliže nemáte Skype anebo tuto volbu máte neaktivní je potřeba to zjistit za pomocí konsole (utitlita netstat) - zadejte příkaz:
netstat -ao
Na obrázku výše vidíte výpis všech (operátor -a) aplikací, které komunikují přes síťové rozhraní (slouží pouze pro názornost, momentálně tam na portu 80 nic neběží). V tomto systému najděte ve sloupci Místní adresa řádek, který známe z hlášení výše 0.0.0.0:80, v této řádce se ještě podívejte na hodnotu ve sloupci PID (operátor -o).
V tuto chvíli znáte PID (jednoznačný identifikátor procesu) a můžete aplikaci "killnout". Otevřte Task manager (Win+R, nebo CTRL+SHIFT+Esc) a na záložce Procesy (Win 7) se podívejte, zda je vidět v záhlaví sloupců PID.
1) ano - pak dohledejte proces a ukončete jej
2) ne - pak je nutné zapnout viditelnost sloupce PID a to v horním menu dejte Zobrazit > Vybrat Sloupce a vyberte PID poté aplikujte bod 1
V tuto chvíli můžete v XAMPP Control Center nastartovat server Apache, protože výše uvedené problémy jsou vyřešeny.
ServerRoot must be a valid directory
Hlášení - httpd.exe: Syntax error on line xx /path/to/your/apache/conf : ServerRoot must be a valid directory (%XAMPP_HOME%/apache/logs/error.log)
Popis - máte nekonzistentí namapování adresářové struktury pro server Apache. Ověřte si, co je zapsáno v direktivě ServerRoot v konfiguračním souboru (%XAMPP_HOME%/apache/cont/httpd.conf) měla by tam být buď absolutní v lepším případě relativní cesta k adresáři %XAMPP_HOME%/apache.
Řešení - nejjednoduší je zapsat absolutní cestu k adresáři Apache serveru. Někdy je pouze znovu-namapovat adresářovou strukturu za pomocí konsole - spusťte setup_xampp.bat a zvolte v průběhu reinstalace volbu Relocate xampp.
Hlášení - Only one usage of each socket address (protocol/network address/port) is normally permitted : make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down.
Popis - na portu 80 už poslouchá jiná aplikace. Server apache má tento port nastaven v konfiguračním souboru (%XAMPP_HOME%/apache/cont/httpd.conf) direktiva ServerName (ServerName localhost:80).
Řešení - Je možné jej změnit, ale doporučuji se podívat, která aplikace na portu 80 visí (máte Skype? - pak v nastavení odšktněte volbu - Use port 80 and 443 as alternative for incoming connections). Pakliže nemáte Skype anebo tuto volbu máte neaktivní je potřeba to zjistit za pomocí konsole (utitlita netstat) - zadejte příkaz:
netstat -ao

Na obrázku výše vidíte výpis všech (operátor -a) aplikací, které komunikují přes síťové rozhraní (slouží pouze pro názornost, momentálně tam na portu 80 nic neběží). V tomto systému najděte ve sloupci Místní adresa řádek, který známe z hlášení výše 0.0.0.0:80, v této řádce se ještě podívejte na hodnotu ve sloupci PID (operátor -o).

V tuto chvíli znáte PID (jednoznačný identifikátor procesu) a můžete aplikaci "killnout". Otevřte Task manager (Win+R, nebo CTRL+SHIFT+Esc) a na záložce Procesy (Win 7) se podívejte, zda je vidět v záhlaví sloupců PID.
1) ano - pak dohledejte proces a ukončete jej
2) ne - pak je nutné zapnout viditelnost sloupce PID a to v horním menu dejte Zobrazit > Vybrat Sloupce a vyberte PID poté aplikujte bod 1
V tuto chvíli můžete v XAMPP Control Center nastartovat server Apache, protože výše uvedené problémy jsou vyřešeny.
Komentáře