Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2007-11-20, 16:15
  #1
Medlem
kallebass avatar
Hej, igår installerade jag min lamp server och allting fungerade.
Det gick att gå in på min webbsajt med andra datorer via min ip. Men idag verkar apache helt dött.
Det går varken att skriva apachekommandon i terminalen eller gå in via localhost.
Det visas inga felmeddelanden när man går in via localhost.
Det enda som visas är: sidan kan inte hittas. Tror att jag har apache2.
Någon som har nån anning om vad det här kan bero på eller kan hjälpa mig?
Citera
2007-11-20, 17:33
  #2
Medlem
Yes...s avatar
Citat:
Ursprungligen postat av kallebas
Hej, igår installerade jag min lamp server och allting fungerade.
Det gick att gå in på min webbsajt med andra datorer via min ip. Men idag verkar apache helt dött.
Det går varken att skriva apachekommandon i terminalen eller gå in via localhost.
Det visas inga felmeddelanden när man går in via localhost.
Det enda som visas är: sidan kan inte hittas. Tror att jag har apache2.
Någon som har nån anning om vad det här kan bero på eller kan hjälpa mig?
Är du säker på att apache är igång?
Citera
2007-11-20, 17:48
  #3
Medlem
kallebass avatar
Kanske är därför, men apache har startat upp av sig själv varenda annan gång jag startat datorn så jag antog de . Hur startar jag apache manuellt issåfall?
Citera
2007-11-20, 17:54
  #4
Medlem
Flärps avatar
Citat:
Ursprungligen postat av kallebas
Kanske är därför, men apache har startat upp av sig själv varenda annan gång jag startat datorn så jag antog de . Hur startar jag apache manuellt issåfall?

Testa köra apache2ctl start eller /etc/init.d/apache2 start
Citera
2007-11-20, 17:56
  #5
Medlem
kallebass avatar
Tack för alla svaren, nu fungerar apache igen
Citera
2007-11-23, 00:50
  #6
Medlem
kallebass avatar
Har fått ett nytt problem gällande apache och tyckte det var lite onödigt att skapa en ny tråd om det så jag fortsätter i denna:
(Jag använder apache2 på en ubuntu 7.10 desktop)

När jag försöker ansluta till min webbserver så går det inte utan datorn som försöker ansluta bara står och ansluter. Men ibland så fungerar det att ansluta helt felfritt vid tillfällen som verkar vara helt(?) random.

Har försökt att felsöka detta men som ni säkert förstår så är jag nybörjare och lyckas inte så bra.
Men något jag har lagt märke till är att min httpd.conf fil är helt tom och jag misstänker att den inte var så från början.
Finns det någon snäll flashbackare där ute som kan hjälpa mig?
Citera
2007-11-23, 01:25
  #7
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av kallebas
Har fått ett nytt problem gällande apache och tyckte det var lite onödigt att skapa en ny tråd om det så jag fortsätter i denna:
(Jag använder apache2 på en ubuntu 7.10 desktop)

När jag försöker ansluta till min webbserver så går det inte utan datorn som försöker ansluta bara står och ansluter. Men ibland så fungerar det att ansluta helt felfritt vid tillfällen som verkar vara helt(?) random.

Har försökt att felsöka detta men som ni säkert förstår så är jag nybörjare och lyckas inte så bra.
Men något jag har lagt märke till är att min httpd.conf fil är helt tom och jag misstänker att den inte var så från början.
Finns det någon snäll flashbackare där ute som kan hjälpa mig?
/etc/apache2/httpd.conf är och skall vara tom, ja... apaches defaultconfigfil är visserligen httpd.conf, men Ubuntu-folket har lagt all config i /etc/apache2/apache2.conf. httpd.conf finns kvar av kompatibilitetsskäl.


Kolla att apache är igång, samt att den lyssnar på port 80:
Kod:
ps axf | grep apache2
netstat -nlp | grep \:80

Se över din virtualhost-config, förmodligen pekar DocumentRoot på /var/www/apache2-default, se till att du har en index.html i DocumentRoot (kolla även i apache2.conf vad DirectoryIndex-direktivet är satt till)
Kod:
vi /etc/apache2/sites-available/default
eller
nano -w /etc/apache2/sites-available/default

...configfilerna i /etc/apache2/sites-available används inte direkt av apache. I /etc/apache2/sites-enabled ligger symlänkar till dem, och det är i denna mapp som apache letar configfiler när man startar. Verifiera att filen ovan är länkad och allt ser bra ut (ls -l).
Gör du några förändringar i någon av apaches configfiler får du starta om:
Kod:
/etc/init.d/apache2 restart

Kolla att servern svarar på localhost:
Kod:
links http://localhost/index.html   (apt-get install links om du inte har den, consolebaserad webbrowser)

eller

telnet localhost 80
...lyckas telnet connecta, skriv följande och tryck enter två gånger, så ska du få en bunt html tillbaks.
GET /index.html HTTP/1.0
eller
GET / HTTP/1.0

Testa även att surfa till apache från din arbetsstation, http://ubuntuburk/index.html
Fungerar det felfritt att ladda index.html medan din vanliga site är bråkig, kan man börja fundera på om problemen beror på något trasigt php-script, eller att den timeoutar vid connect till mysql eller liknande...

Om apacheservern och din arbetsstation är två olika burkar, kolla även att konnektiviteten mellan dem är ok. Är felen helt intermittenta och prestandan mellan burkarna dessutom suger, kanske man kan tänka sig att nätverkskortet negotiatat fel eller ngt? Kolla vilken fart den autoneggat fram och att det stämmer med switchen.
Kod:
apt-get install net-tools
mii-tool eth0
Citera
2007-11-23, 15:53
  #8
Medlem
kallebass avatar
Tack för svaret gadzoox.

Men får fortfarande inte apache att fungera, kan vara att jag bara är apacheefterbliven men iallafall.
Postar här infon jag fick ut av att testa gadzoox tips i hopp om att någon kan hjälpa mig förstå vad jag bör göra.

Efter varje ny konfiguration eller ändring har jag självklart restartat apache
Fråga gärna efter mer info om du behöver.

Kod:
sudo apache2ctl configtest
Syntax OK


Kod:
sudo ps axf | grep apache2

6507 pts/1    S+     0:00  |   \_ grep apache2
 6492 ?        Ss     0:00 /usr/sbin/apache2 -k start
 6493 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6494 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6495 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6499 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6500 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6502 ?        S      0:00  \_ /usr/sbin/apache2 -k start

sudo netstat -nlp | grep \:80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     6492/apache2 
Det fungerar bara att connecta till localhost om jag sätter DocumentRoot /var/www
EJ DocumentRoot /var/www/apache2-default

Det fanns inget DirectoryIndex i apache2.conf

Kod:
telnet localhost 80
Trying 127.0.0.1... Connected to localhost.
Escape character is '^]'.
GET /index.html HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 23 Nov 2007 14:42:39 GMT
Server: Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6
Last-Modified: Fri, 23 Nov 2007 14:15:47 GMT
ETag: "6701c0-107-403b0ac0"
Accept-Ranges: bytes
Content-Length: 263
Connection: close
Content-Type: text/html

<html>Massor med HTML</html>
Connection closed by foreign host.
Citera
2007-11-23, 22:02
  #9
Medlem
kallebass avatar
Någon som har en anning om vad som är fel?
Snälla svara
Citera
2007-11-23, 22:52
  #10
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av kallebas
Kod:
sudo ps axf | grep apache2

6507 pts/1    S+     0:00  |   \_ grep apache2
 6492 ?        Ss     0:00 /usr/sbin/apache2 -k start
 6493 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6494 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6495 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6499 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6500 ?        S      0:00  \_ /usr/sbin/apache2 -k start
 6502 ?        S      0:00  \_ /usr/sbin/apache2 -k start

sudo netstat -nlp | grep \:80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     6492/apache2 
Det där ser ju bra ut. Apache lyssnar på port 80 på burkens alla adresser och har sex worker-processer igång. (PID 6492 tar inga http-requests själv, utan styr bara de workerprocesser som tar emot requestarna... Ifall du undrar varför det är så många processer, dvs )

Citat:
Ursprungligen postat av kallebas
Det fungerar bara att connecta till localhost om jag sätter DocumentRoot /var/www
EJ DocumentRoot /var/www/apache2-default

Det fanns inget DirectoryIndex i apache2.conf
Hmm.. Kanske /var/www/apache2-default inte finns isf? Låter skumt om du installerat från paket, men det kvittar nog - den webrooten använder man typ aldrig ändå.
Jag brukar istället skapa webrootar typ /var/www/www.site1.se, /var/www/www.site2.se osv, och sedan skapa varsin configfil i /etc/apache2/sites-available. Dessa filer symlänkar jag sedan från ../sites-enabled. På det sättet är det lätt att lägga till/inaktivera virtualhosts. Det hjälper väl iofs inte dig med dina konnektivitetsproblem, men det kan vara bra att känna till

Vad gäller direktivet DirectoryIndex, så styr det vilken fil som skall laddas som default, dvs surfar du till http://www.site.se/, och DirectoryIndex är satt till "index.php", så letar apache efter index.php i webrooten.
Vill du ha flera defaultfiler (Dvs om index.php inte finns så letar den efter index.html, om den inte finns så letar den efter någon tredje fil osv) så separerar du dem bara med mellanslag.

Citat:
Ursprungligen postat av kallebas
Kod:
telnet localhost 80
Trying 127.0.0.1... Connected to localhost.
Escape character is '^]'.
GET /index.html HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 23 Nov 2007 14:42:39 GMT
Server: Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6
Last-Modified: Fri, 23 Nov 2007 14:15:47 GMT
ETag: "6701c0-107-403b0ac0"
Accept-Ranges: bytes
Content-Length: 263
Connection: close
Content-Type: text/html

<html>Massor med HTML</html>
Connection closed by foreign host.
Ja det där ser ju också bra ut. Funkar det lika bra från någon annan maskin?

Kör du någon php-applikation på din site? I så fall kanske det är den som har problem? Typ att scriptet står och tänker utan att ge någon respons, vilket ju givetvis får din browser att bara stå och vänta... Testa "GET /dittscript.php HTTP/1.0", förutsatt att du har en dittscript.php, annars något annat script. Om du lyckas få connection med telnet men inte får någon respons när du GET:ar filen, så har du hittat ditt problem.

Testa även att php funkar som den skall; skapa en fil test.php i din webroot med nedan innehåll, och GET:a eller surfa sedan till den. Du ska få en gigantisk html-tabell tillbaks med hela php-configen.
Kod:
<?php phpinfo(); ?>
Citera
2007-11-24, 02:25
  #11
Medlem
kallebass avatar
Tack för svaret,
När jag använder, "GET /mittscript.php HTTP/1.0", på mina PHP filer så får jag detta meddelande utan någon html/php kod
Kod:
HTTP/1.1 200 OK
Date: Fri, 23 Nov 2007 14:42:39 GMT
Server: Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6
Last-Modified: Fri, 23 Nov 2007 14:15:47 GMT
ETag: "6701c0-107-403b0ac0"
Accept-Ranges: bytes
Content-Length: 263
Connection: close
Content-Type: text/html


PHPinfo filen fungerar som den ska och jag börjar undra om jag kanske felinställt någon virtual host eller något sådant
Du har inget tips på en sida eller kan förklara själv exakt och enkelt hur man sätter upp en virtualhost (eftersom detta är det enda jag tror(?) mig kunna felinställt)

Säg gärna till också om det hjälper att jag postar phpinfo koden här.

Tack igen för de de båda svaren
Citera
2007-11-24, 03:35
  #12
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av kallebas
Tack för svaret,
När jag använder, "GET /mittscript.php HTTP/1.0", på mina PHP filer så får jag detta meddelande utan någon html/php kod[/code]
Skumt att du inte får någon output. Vad gör mittscript.php?

Citat:
Ursprungligen postat av kallebas
Du har inget tips på en sida eller kan förklara själv exakt och enkelt hur man sätter upp en virtualhost (eftersom detta är det enda jag tror(?) mig kunna felinställt)
http://httpd.apache.org/docs/2.0/vhosts/

Kort sagt ser de väl ut så här i sin allra enklaste form, detta kan du spara i /etc/apache2/sites-available/www.site1.se:
Kod:
<VirtualHost *:80>
        ServerName www.site1.se
        ServerAlias www2.site1.se
        ServerAlias site1.se

        DocumentRoot /var/www/www.site1.se

        CustomLog /var/log/apache2/www.site1.se-access.log combined
        ErrorLog /var/log/apache2/www.site1.se-error.log
        LogLevel warn
</VirtualHost>

För att siten skall aktiveras får du symlänka:
Kod:
cd /etc/apache2/sites-enabled
ln -s ../sites-available/www.site1.se www.site1.se
...Gör likadant för varje site du sätter upp.

När något av hostnamnen www.site1.se, www2.site1.se eller site1.se pekar på ditt IP och man surfar dit, kommer apache plocka upp Host-headern (http-header som browsern skickar med) och leta fram din virtualhost.

Testa:
Kod:
telnet localhost 80
GET / HTTP/1.0
Host: www.site1.se

enter, enter


Direktivet <VirtualHost *:80> ovan förutsätter att NameVirtualHost *:80 finns med i apache2.conf (lägg det på näst sista raden, före Include)

Många fler config-direktiv än de ovan går att använda, se http://httpd.apache.org/docs/2.0/mod/core.html. För varje direktiv finns angett i vilket kontext man kan använda det (server config, virtual host, directory etc)

Komplett dokumentation över webservern hittar du på http://httpd.apache.org/docs/2.0/
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback