Tänne ketjuun kannattaa jatkaa perään Apachen asennukseen tai ylläpitoon liittyviä juttuja, jotka voi säästää vaivaa ja ongelmia seuraavalla kerralla.
Avaanpa tämän heti tuoreen asennuksen yhteydessä vastaan tulleella kummallisuudella.
Asennettu oli "apache2" ja "php7.0"+ jotain tuohon liittyneitä lisukkeita. Tuloksena oli käynnistymätön Apache ja virheissä näkyi tämmöistä:
There is more than one MPM loaded. Do not proceed due to undefined results
ERROR: Module mpm_ does not exist!
apache2_switch_mpm Switch to prefork failed. Rolling back to
ERROR: Could not switch to prefork MPM, not enabling PHP 7.0
sudo a2dismod
näytti, että kaksi erityyppistä mpm-modulia oli määritetty käynnistymään:
Your choices are: access_compat alias auth_basic authn_core authn_file authz_core authz_groupfile authz_host authz_user autoindex cgi deflate dir env filter mime mime_magic mpm_event mpm_prefork negotiation php7.0 reqtimeout rewrite setenvif status
eli mpm_event ja mpm_prefork.
Poistin tuolta mpm_event: in ja jätin mpm_preforkin.
Seuraavaksi tarkistus, joka kannattaa tehdä aina konffausmuutosten jälkeen ennen uudelleen käynnistystä:
sudo apache2ctl configtest
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/conf.d/virtual.conf:2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Nuo ovat normaaleja viestejä, eivät estä käynnistymistä.
sudo service apache2 start
... ja käynnissä oli.
Tein virtuaalidomaini määritykset tuossa vaiheessa ja kopioin datat toiselta koneelta. Testiä käyntiin, mutta jotain oli merkillisellä tavalla pielessä tällä uudella koneella: Webbiselaimella tuli vuoroon 404 File not found ja taas sivu löytyi ok. Testasin curl: in avulla seuraavaksi, tältä se näytti vuoroon aivan miten sattui:
HTTP/1.1 404 Not Found
Date: Mon, 19 Feb 2018 16:53:41 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Mon, 19 Feb 2018 16:53:39 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Fri, 08 Mar 2013 08:52:20 GMT
ETag: "1a45-4d765f0e43900"
Accept-Ranges: bytes
Content-Length: 6725
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Oli ideat aika vähissä, miksi asennus toimi 2 muulla Apache-koneella ok, mutta tämä uusi reistaili. Näkyvää syytä ei löytynyt aivan pienellä vaivalla. Apache oli tismalleen sama versio kuin toimivassa kokoonpanossa, konffaukset oli kopioitu toisesta asennuksesta. "a2dismod" näytti, että kaikki ladatut modulit pitäisi olla samoja. Huomiota kiinnitti pieni sivuseikka: Apache tunkee väkisin virheet tuossa iso-8859-1 muodossa vaikka muuten toimii UTF-8 asetuksilla. Tuo on ilmeisesti Apachen ominaisuus/omituisuus, johon en löytänyt lääkettä:
https://stackoverflow.com/questions/20283301/set-charset-in-errordocument-messagesJäljille johti yksi havainto, mitähän ajattelet tästä:
sudo service apache2 stop
root@Web01:/etc/apache2# pgrep apache
3575
3578
3579
ps -ef | grep -i apache
root 1682 31370 0 20:04 pts/0 00:00:00 grep --color=auto -i apache
root 3575 1 0 12:51 ? 00:00:02 /usr/sbin/apache2 -k start
www-data 3578 3575 0 12:51 ? 00:00:13 /usr/sbin/apache2 -k start
www-data 3579 3575 0 12:51 ? 00:00:13 /usr/sbin/apache2 -k start
Käynnissä oli prosesseja, jotka eivät olleet hallinnassa. En ala arvaamaan tarkemmin, mistä nuo olivat jääneet mutta viittaa vahvasti silti siihen alkutilanteeseen useammasta mpm-modulista.
sudo killall apache2
sudo service apache2 start
Kaikki kunnossa eikä enää puolet ajasta 404 sivuja.