Problem att ändra serverns rot-mapp (Httpd/Apache 2)

Permalänk
Medlem

Problem att ändra serverns rot-mapp (Httpd/Apache 2)

Håller på att sätta upp en webserver lokalt. Det är HTTPD (Apache 2) på Mac Catalina. La tråden i Linux för jag tror tillämpningen av Httpd/Apache är väldigt lika på Linux och Mac.

Jag försöker ändra www-rooten, alltså mappen servern betraktar som rot, men lyckas inte få till det, har svårt att hitta varför. Söker tips och hjälp.

Sättet jag gör på är att först stänga av server-tjänsten helt, sen gå in med texteditor och öppna "httpd.conf" i serverns installationsmapp. Jag redigerar inställningarna för "DocumentRoot" och "Directory". Samma värde för båda, och sparar.

Jag vill flytta roten till en mapp under default rot-mappen. Default-mappen är /usr/local/var/www/, och jag vill flytta roten till typ /usr/local/var/www/abc/. Jag antar att läs-skrivrättigheterna ärvs från mappen ovanför?

ABC-mappen är skapad och jag har lagt min egna 'index.html' sida där. HTTPDs egna defaultsida är en html-fil som ligger i över-mappen, och är en helt ren sida som det står "It Works!" på. På min egna sida står det "Nu funkar undermappen", så jag kan skilja dom åt.

Redigeringar, sparande och omstart av servern går bra. Jag ser att servern är påslagen, men när jag öppnar localhost i webbläsaren, så visas fortfarande HTTPDs standard-sida "It Works!". Så, då tar jag bort den html-filen helt och startar om både server och webbläsare .. men nej, "It works!"-sidan laddas fortfarande som default-sida, trots att jag ändrat i httpd.conf. Den borde ju läsa min egen sida nu, från ABC-mappen, men servern läser helt enkelt inte från den mapp jag vill den ska betrakta som rot, och vart läser den "It works!" dokumentet ifrån, när jag raderat filen t.o.m.?

Det måste vara något jag missar, men timmar av googling har inte hjälpt. Kan det finnas virtuella länkadresser eller symboliska länkar inom server-strukturen som servern följer, och som ställer till det på något sätt?

Jag är lite ny på Httpd, men ingen nybörjare i övrigt. Jag skulle gärna behöva hjälp att förstå vad jag gör fel. De flesta instruktioner på nätet säger det här ska funka.

Tackar för tips o hjälp

Permalänk
Medlem

Om du ska hålla på med webb är det alltid bra att ha mer än en webbläsare installerad. Det är ett enkelt sätt att bland annat utesluta att webbläsaren cachat en sida. Utvecklarverktyget i webbläsaren (F12, nätverksfliken) kommer annars visa om sidan lästs från cache eller laddats över nätverk. Att manuellt rensa cachen efter varje iteration är jobbigt, men kan vara nödvändigt, tills man fått till skickning av headrar som styr cachningen på rätt sätt.

Ett annat trick är att köra rå HTTP (om du har port 80 öppen) för att verkligen se vad servern returnerar när varken cookies eller webbläsar-cache är i spel. netcat är vettigast för det, men telnet funkar i värsta fall.

GET / HTTP/1.1 Host: DinVirtuellaHost

De två sista raderna (av totalt fyra rader) är nyrader för att visa att headrarna är slut, när de tryckts igenom ska servern svara. Edit: De visas tydligen inte av Sweclockers kod-rendering, men de finns där. Om jag minns rätt säger specen att nyrad ska vara CRLF, vilket kan vara ett problem på Mac, jag har nog aldrig testat detta på den plattformen.

Med andra ord: uteslut cachnings-problem.

Edit2: grep -R är din vän om det finns fler än en fil med ”It works” i filstrukturen.

Permalänk
Medlem

Hur ser filen "sites-enabled/000-default.conf" ut i din /etc/apache2 ut

<VirtualHost *:80>
ServerName 192.168.xxx.xxx
ServerAlias hotsname.domain
ServerAlias 192.168.xxx.xxx
ServerAdmin webmaster@localhost
DocumentRoot /srv/www/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Permalänk
Medlem
Skrivet av KAD:

Om du ska hålla på med webb är det alltid bra att ha mer än en webbläsare installerad. Det är ett enkelt sätt att bland annat utesluta att webbläsaren cachat en sida. Utvecklarverktyget i webbläsaren (F12, nätverksfliken) kommer annars visa om sidan lästs från cache eller laddats över nätverk. Att manuellt rensa cachen efter varje iteration är jobbigt, men kan vara nödvändigt, tills man fått till skickning av headrar som styr cachningen på rätt sätt.

Ett annat trick är att köra rå HTTP (om du har port 80 öppen) för att verkligen se vad servern returnerar när varken cookies eller webbläsar-cache är i spel. netcat är vettigast för det, men telnet funkar i värsta fall.

GET / HTTP/1.1 Host: DinVirtuellaHost

De två sista raderna (av totalt fyra rader) är nyrader för att visa att headrarna är slut, när de tryckts igenom ska servern svara. Edit: De visas tydligen inte av Sweclockers kod-rendering, men de finns där. Om jag minns rätt säger specen att nyrad ska vara CRLF, vilket kan vara ett problem på Mac, jag har nog aldrig testat detta på den plattformen.

Med andra ord: uteslut cachnings-problem.

Edit2: grep -R är din vän om det finns fler än en fil med ”It works” i filstrukturen.

Tackar för tips Jag tycker mig ha uteslutit cachening nu. Installerat ny webbläsare, rensat undan cache (manuellt) i båda webbläsarna, även startat om datorn emellan.

Men tack vare grep -R och lite kreativ improvisation lyckades jag till slut hitta den fil som visas som default i webbservern. Filen heter "index.en" och ligger i mappen /Library/WebServer/Documents/ , alltså inte alls i den mapp som jag angivit i httpd.conf. Inte ens den mapp som httpd använder som default-rotmapp.

Så, jag har hittat rot-mappen nu, men jag vet fortfarande inte hur man kan ändra den :S

En sökning på "httpd.conf" visar att jag har ett tiotal filer som heter detsamma på olika ställen på datorn, fastän operativsystemet är helt rent och installationen av httpd är ny och har inte återinstallerats tjugo gånger eller så. Men den httpd.conf jag har ändrat i, verkar vara den enda som faktiskt påverkar servern, så jag får väl anta att det är den rätta då. Fasen vad skumt. Det är så mycket som inte stämmer, känns det som. Om det inte ska vara såhär?

Skrivet av lassesjo:

Hur ser filen "sites-enabled/000-default.conf" ut i din /etc/apache2 ut

<VirtualHost *:80>
ServerName 192.168.xxx.xxx
ServerAlias hotsname.domain
ServerAlias 192.168.xxx.xxx
ServerAdmin webmaster@localhost
DocumentRoot /srv/www/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Hej, och tack för hjälp. Jag har ingen fil i hela datorn (system-filer inkluderade) som heter "000-default.conf". Inte heller någon mapp som heter "sites-enabled". Jag har däremot 8 filer, på olika ställen i datorn, som heter httpd-default.conf. Dom ser alla identiska ut, och innehåller väldigt få inställningar som inte inkluderar 'VirtualHost"-taggen, eller ens något liknande.

Däremot hittade jag 8 st filer som heter "httpd-vhosts.conf". Ligger på olika ställen i datorn. I varje en av dom fanns följande parametrar:

<VirtualHost *:8080> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/opt/httpd/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "/usr/local/var/log/httpd/dummy-host.example.com-error_log" CustomLog "/usr/local/var/log/httpd/dummy-host.example.com-access_log" common </VirtualHost>

Inget av det som står här pekar till den mapp som jag nu har fattat utgör web-rooten. (se svar till KAD ovan). Root-mappen, är inte ens den sökväg som jag skrev in i httpd.conf, och den står inte angiven i virtualhost-taggen ovan heller. Och ingen fil på hela datorn innehåller sökvägen till nuvarande webrooten. Gud, vad är det som pågår?? :S

Jag har installerat httpd via Homebrew, alltså "$ Brew install httpd" i terminalen. Fick inga anmärkningar, och inbyggda servern i Catalina är avstängd, aldrig varit påslagen. Jag får känslan att Brew kanske inte installerar saker och ting på ett konventionellt sätt?
När jag sökt på nätet efter hjälp om mitt server-problem, så hittar jag massor med info, men som inte riktigt stämmer med var jag har på systemet. Samma sak med er hjälp här, det stämmer liksom halv-dant och konstigt.

Är jag kanske ute och slirar runt på dålig is med Brew? Att den kanske överförenklar och därmed strular till den standard som förväntas finnas där efter installation av httpd/Apache?

Det är så mycket som inte stämmer bara. Försöker få grepp om vad liksom. Som det är just nu kan man ju inte hålla på. Om man inte ens kan kontrollera ändring av rot-mappen, fatta hur det skulle kunna bli framöver med avancerade inställningar x-(

Permalänk
Medlem

Kör du apache installerat via Brew eller någon slags klient som typ MAMP?

Edit: såg nu att det gällde brew. Har du stängt av Apples inbyggda apache? Vilken version av Mac os kör du?

Permalänk
Medlem
Skrivet av evirob:

Kör du apache installerat via Brew eller någon slags klient som typ MAMP?

Edit: såg nu att det gällde brew. Har du stängt av Apples inbyggda apache? Vilken version av Mac os kör du?

Hej. Japp Brew. Har aldrig satt på inbyggda Apachen (ser att den inte är på nu heller). MacOS Catalina 10.15.7 är nyligt installerat från nollad disk (mac mini, avsedd för serverbruk). Har inte använt nåt annat än Brews grejor, ingen MAMP eller så.

Permalänk
Medlem
Skrivet av Dooley:

Hej. Japp Brew. Har aldrig satt på inbyggda Apachen (ser att den inte är på nu heller). MacOS Catalina 10.15.7 är nyligt installerat från nollad disk (mac mini, avsedd för serverbruk). Har inte använt nåt annat än Brews grejor, ingen MAMP eller så.

Får du ut "rätt" documentroot om du kör kommandot "brew info httpd?

Om du kör "which apachectl" pekar den på versionen du installerade via brew eller den inbyggda? (/usr/sbin/apachectl). Visar den fel, stoppa den inbyggda med "sudo apachectl stop". Och googla sedan på hur man stänger av autoloading (jag minns inte det i huvudet).

Om du kör "brew services list" så borde du se en rad för "httpd started" osv. Ser du detta? Om nej, starta httpd servicen med "brew services start httpd".

När du är säker på att rätt version av apache körs kan du testa din config med "apachectl configtest" som då spottar ut eventuella fel.

Brew rör till det lite, särskilt om man följer en guide för typ Ubuntu men i slutändan fungerar det på exakt samma sätt.