Hogyan telepítsük a Matomo (korábban Piwik) webanalitikai szoftvert Apache rendszerű szerverünkre (8. oldal)

botond küldte be 2019. 09. 01., v - 16:08 időpontban

Tartalom

 

A 8. oldal tartalma

 

 

Folytatás

Az előző oldalon beüzemeltük a Matomo (Piwik) geolokációs rendszerét, ezen az utolsó oldalon pedig átállítjuk a tárhelyet a gyorsabb, hatékonyabb és biztonságosabb PHP-FPM szerver API alapú működésre.

A leírás készítésekor az elsődleges szempontom az volt, hogy minél szélesebb körben legyen használható ez az útmutató, ezért sokat dilemmáztam az elején, hogy miként építsem fel. Egyik oldalról az volt a cél, hogy mindegyik általam készített szerveren működjön ez a telepítés – így a PHP-FPM-el nem rendelkező LAMP szervereken is –, másik oldalról pedig mindenképpen be akartam tenni ezt a részt is, mert szerintem ma már a PHP-FPM használata alap, szinte kötelező. Gondoltam arra is, hogy párhuzamosan viszem végig mindkét vonalon (Apache modulként és PHP-FPM-el egyszerre), de aztán elvetettem az ötletet, mert túl bonyolult lett volna úgy leírni az egészet, és sok lett volna a hibalehetőség a két változat közötti oda-vissza ugrálás során. Ezért inkább emellett döntöttem, hogy ennek a leírásnak az utolsó oldalára teszem amolyan kiegészítőként, ami már csak az idáig elvégzett beállításokra épülő módosításokat, kiegészítéseket tartalmazza. Még így is maradtak variációk ezzel a résszel kapcsolatban (pl. PHP verziók, alapértelmezett, vagy egyedi telepítésű PHP), de ezekről majd lejjebb...

Ez a rész tehát nem kötelező, de mindenképpen ajánlott azoknak, akik erősebb idegzetűek :) és szeretnék kihozni a maximális teljesítményt és hatékonyságot a szerverükből, és hogy a Matomo rendszerük is gyorsabban működjön.

 

Alapkövetelmények

A Matomo PHP-FPM-re történő átültetésének alapfeltétele, hogy elvégeztük legalább a leírás 1. és 2. oldalát, továbbá az alábbiak közül valamelyik igaz:

  • Az elején valamelyik tökéletes szervert választottuk kiindulásnak, amik már tartalmazzák a PHP-FPM-et. Ebben az esetben ugorhatunk is tovább.
  • Ha egy olyan LAMP szerverrel indultunk el, amire már időközben feltelepítettük a PHP-FPM-et, ehhez a leíráshoz hasonlóan. Ebben az esetben is ugorhatunk tovább.
  • Ha pedig olyan LAMP szerverrel indultunk el, amire még nem telepítettünk PHP-FPM-et, akkor elvégezzük az alábbi rövid kiegészítést.

PHP-FPM gyors telepítése

Ebben a gyors telepítő részben csak a disztribúcióval szállított alapértelmezett PHP-vel foglalkozunk, az egyedileg telepített PHP verziókkal nem.

Az alábbiakat root-ként végezzük!

Először frissítsük a csomagtárunkat és a csomagjainkat:

apt-get update
apt-get -y upgrade

Ezután telepítsük a szükséges csomagokat:

PHP 5 esetén (pl. Debian 8):

apt-get -y install php5-fpm

Indítsuk el a szolgáltatást a systemctl paranccsal:

systemctl start php5-fpm.service

PHP 7.x esetén (pl. Debian 9, Ubuntu 18.04):

Keressünk rá a csomagtárunkban a saját PHP 7.x verziónkra:

apt-cache search "php7" | grep "fpm"

Erre kiadja a PHP 7 megfelelő alverzióját, telepítsük ennek megfelelően.

(Debian 9-nél a 7.0-ás, Ubuntu 18.04 esetén a 7.2-es PHP az alap)

Nálam tehát a 7.0-ás:

apt-get -y install php7.0-fpm

Indítsuk el a szolgáltatást:

systemctl start php7.0-fpm.service

Apache beállítás

Ha a fentiekkel megvagyunk, kapcsoljuk be az Apache proxy_fcgi modulját:

a2enmod proxy_fcgi

Végül indítsuk újra az Apache-ot:

systemctl restart apache2.service

Ezennel meg is vannak a PHP-FPM alapjai, folytathatjuk a következő résszel.

 

 

Változatok

Igyekszem úgy haladni, hogy mindenki számára használható legyen az egész, ezért itt még kitérnék egy dologra, amit itt az oldal elején is említettem, hogy vannak itt még változatok is.

Mint tudjuk, a szervereken vannak az alapértelmezett PHP környezetek, amiket a disztribúcióval adja a készítő. Ezek egyszerűen a csomagtárakból telepíthetők. Azonban nem ritka eset, amikor a helyzet úgy kívánja, hogy az ember újabb PHP verziót telepítsen a szerverre – vagy éppen régebbit –, attól függően, hogy mire van szüksége a kiszolgált weboldalaknak, webalkalmazásoknak. Az egyedileg telepített PHP rendszereket általában a meglévő, alapértelmezett mellé szokás telepíteni, hogy mindkettő használható legyen, valamint ezeket többféleképpen is fel lehet telepíteni, például:

  • Forráskódjából kézzel történő lefordítással. Példák: Debian 8 -ra telepített 7.1-es PHP, vagy pedig ennek a "fordítottja", amikor régebbi PHP-t fordítunk az újabb rendszerre: a Debian 9-re telepített 5.6-os PHP.
  • Külső, nem hivatalos csomagtárak alkalmazása, ahonnan az APT csomagkezelővel egyszerűen telepíthetők a szükséges változatok, amiket a disztribúció nem tartalmaz. Például a sury.org (erről majd későbbi leírásokban lesz szó).

A lényeg tehát, hogy bármilyen konfigurációnk is legyen, akár több PHP verzióval is rendelkezzünk, mindig a legújabbat érdemes használni – legyen akár az az alapértelmezett, vagy az egyedileg telepített – az olyan rendszereknél, amik már fel vannak készítve erre. Ilyen például a Matomo (Piwik) webanalitikai rendszer is, amely elfut a mostani legújabb PHP verziókon is. Ezért úgy haladunk tovább, hogy az itt végrehajtásra kerülő dolgok mindegyik esetben működőképesek legyenek. A sarkalatos részeknél tehát külön kitérünk majd ezekre.

Mindezt azért írtam itt le, hogy akik eddig nem tudták hogy miről van szó, ne keverjem bele őket a lentebbi variációk említései során. Ha valakinél csak az alapértelmezett PHP áll rendelkezésre, vagy nem biztos a dolgában, az haladjon végig az alapértelmezett PHP változatokkal, ahol több lehetőség is adódik.

 

PHP-FPM további beállításai

Linux felhasználó létrehozása

Első körben létre kell hoznunk egy Linux felhasználót, akinek a nevében majd a PHP-FPM futtatni fogja a Matomo rendszert. A felhasználót másra nem fogjuk használni, csak erre a feladatra, így ezzel a felhasználóval még sok dolgunk lesz a beállítások folyamán. Hajtsuk végre az alábbi parancsot rootként:

adduser matomo

Ekor bekéri a jelszót, és még pár adatot, töltsük ki:

matomo Linux felhasználó létrehozása

PHP-FPM pool létrehozása és beállítása

A következő lépésben létre kell hoznunk egy PHP-FPM pool-t (erről korábban itt írtam részletesebben), ami az imént létrehozott "matomo" felhasználóval fogja futtatni az ezen a tárhelyen lévő PHP fájlokat. Így nem a www-data lesz ennek a fióknak a gazdája, hanem egy külön felhasználó, amit külön tudunk figyelni és kezelni is mindenhol (pl. log fájlokban, különböző konfigokban, stb).

Lépjünk be a PHP-FPM pool könyvtárába:

  • Alapértelmezett PHP5-nél: /etc/php5/fpm/pool.d/
  • Alapértelmezett PHP 7-nél: /etc/php/7.x/fpm/pool.d/ (x=alverziótól függően)
  • Kézzel lefordított PHP 7-nél: <php telepítési könyvtár>/etc/php-fpm.d/ (példa)

Nálam a második variáció van, tehát:

cd /etc/php/7.0/fpm/pool.d/

A könyvtárban másoljuk le a www.conf fájlt, ebből fogjuk elkészíteni a Matomo számára a PHP-FPM konfigurációt, majd nyissuk is meg szerkesztésre:

cp www.conf matomo.conf
nano matomo.conf

Így most van egy "nyers" konfig fájlunk, ami teljesen az alapértelmezett beállításokat tartalmazza. Ebben kell átírnunk néhány részt. Sorban haladva az alábbiakat:

[www]

Rögtön az elején van magának a pool-nak a neve szögletes zárójelek között. Ezt írjuk át "[matomo]" -ra.

user és group

Mindkettőt állítsuk át matomo-ra:

user = matomo
group = matomo

listen

Itt adjunk meg egy socket fájlt, amin keresztül fog majd kapcsolódni a matomo felhasználó a PHP-FPM-nek ehhez a pool-jához. Itt bármilyen név megadható, de úgy szokás, hogy a fájl neve tartalmazza a használt PHP verziónkat és a hozzá tartozó felhasználó/weboldal nevet is, hogy a későbbiek során ne legyen keveredés, ha több pool-unk is lesz. Tehát az én esetemben a Debian 9-es tökéletes szerveren:

listen = /run/php/php7.0-matomo-fpm.sock

(Ez a fájl majd a beállítások utáni PHP-FPM újraindítása után jön létre)

access.log

Állítsuk be a log fájl kimenetét abba a könyvtárba, amit korábban létrehoztunk a Matomo számára. Itt az eredeti kommentes beállítást hagyjuk meg és készítsünk egy újat:

;access.log = log/$pool.access.log
access.log = /var/log/matomo/php-fpm-access.log

security.limit_extensions

Itt keressük ki ezt a beállítást, és állítsuk az alábbira:

security.limit_extensions = .php .html
Ezzel engedélyezzük, hogy – a PHP fájlokon kívül  – a .html fájlokban beágyazott módon lévő PHP kódrészeket is lefuttassa a PHP-FPM. Ma már ez nem nagyon divat, mert a legtöbb weboldalon template motorok forgatják bele a HTML-be a dinamikus tartalmat, talán lehet hogy régi berögződés, de én ezt mindig be szoktam állítani, mert ki tudja, lehet hogy mégis akad egy olyan HTML fájl, amiben ott lapul egy aprócska PHP kód.

 

 

Saját beállítások

Végül a fájl végére még szúrjunk be két blokkot, egyet a saját PHP beállításainkkal:

; Saját PHP beállítások
php_admin_value[error_log] = /var/log/matomo/php-errors.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 128M

Itt beállítunk egy PHP hibanapló fájlt is, ebben gyűlnek az esetlegesen Matomo-ban keletkező PHP hibák, valamint bekapcsoljuk a naplózást, és beállítunk egy 128 Mb-os script memória limitet, amire a Matomo-nak szüksége van.

És tegyünk még be utána egy saját PHP-FPM beállításokat tartalmazó részt is, majd mentsük le a konfig fájlt:

; Saját PHP-FPM beállítások
pm.max_children = 16
pm.min_spare_servers = 2
pm.max_spare_servers = 4

Itt pedig megadjuk, hogy egy PHP-FPM processz maximum hány szálat futtathat egyszerre, valamint a tartalék szerverek alsó és felső korlátai. Ezek egyébként a konfig fájlban már szerepelnek feljebb, csak így egyszerűbb kezelni, ha a végére tesszük. A beállításokat apránként finomhangoltam a saját Matomo példányom használata során, azok alapján, amiket a PHP-FPM napló fájlja szokott javasolni, ha például valami túl alacsonyra van állítva.

A PHP-FPM-nek egyébként pont ez a lényege, hogy szükség esetén létrehozza a megfelelő mennyiségű processzeket, amikor feleslegessé válnak, akkor kilövi őket. Ettől ennyire hatékony. Itt pedig csak a limiteket állítgatjuk. Persze még nagyon sok beállítás van, de indulásnak ezek elegendők.

PHP-FPM naplófájl

A PHP-FPM központi naplófájlját pedig itt találhatjuk:

  • Alapértelmezett PHP5-nél: /var/log/php5-fpm.log
  • Alapértelmezett PHP 7-nél: /var/log/php7.x-fpm.log (ahol x az alverzió)
  • Kézzel lefordított PHP 7-nél: <a PHP konfigurálásánál megadott prefix (telepítési) könyvtár>/var/log/php-fpm.log (példa)

Ebben a naplófájlban kapjuk az olyan üzeneteket is, mint például amiben a rendszer felhívja a figyelmünket, hogy valamelyik processz beállításon emelni kellene, mert kevésnek bizonyul az adott felhasználás függvényében (pl. nagy forgalom, stb).

PHP-FPM újraindítása és ellenőrzése

Ha idáig megvagyunk mindennnel, akkor indítsuk újra a PHP-FPM-et, a rendszerünknek megfelelő szolgáltatással:

  • Alapértelmezett PHP5-nél: php5-fpm.service
  • Alapértelmezett PHP 7-nél: php7.x-fpm.service (ahol x az alverzió)
  • Kézzel lefordított PHP 7-nél: Itt pedig amilyen néven létrehoztuk a szolgáltatás unit fájlját, mint ahogy például ebben a leírásban.

De ezzel a paranccsal is kikereshetjük a szolgáltatásunk pontos nevét, amivel újraindíthatjuk azt:

ls /lib/systemd/system | grep "php.*fpm"
Vagy pedig ha be van állítva a Bash completion a root felhasználónál, akkor a "systemctl restart php" után nyomkodva a TAB billentyűt, felsorolja a lehetséges PHP kezdetű szolgáltatást.

Nálam az alapértelmezett PHP 7.0 van, így tehát ezzel indítom újra:

systemctl restart php7.0-fpm.service

Ezután megnézzük a PHP-FPM futó processzeit:

systemctl status php7.0-fpm.service

PHP-FPM ellenőrzése

Itt tehát láthatjuk, hogy elindult a PHP-FPM a mester processzel, a matomo-val, a web1-el (WordPress oldal felhasználója, amit az ISPConfigban hoztunk lére egy korábbi leírásban), valamint az alapértelmezett www-vel. Utóbbi három esetében fejenként 2-2 szállal várják a bejövő kapcsolatokat.

Ettől persze még nem PHP-FPM-el megy a Matomo rendszerünk, ehhez még el kell végezni néhány beállítást, most csak a matomo pool-ja indult el, ami láthatóan rendben van.

Naplófájlok átállítása

A 6. oldalon létrehoztunk egy log könyvtárat a Matomo számára, valamint beállítottuk a naplófájlok forgatását is. Itt most át kell állítani ezeket, hogy megfelelően működjenek az új futási környezetben.

Jogosultságok átadása a matomo-nak

A korábban létrehozott log könyvtárat a www-data felhasználó számára állítottuk be. Most át kell állítanunk a könyvtárat és a teljes tartalmát a matomo felhasználóra, mert ha majd a PHP-FPM a matomo felhasználójával futtatja az oldalt, akkor ezzel a felhasználóval kell mindent csinálnia a továbbiakban. Root-ként futtassuk az alábbi chown parancsot az átállításhoz:

chown -R matomo:matomo /var/log/matomo/
Innentől most előfordulhatnak cron hibák néhány cikluson keresztül, amíg át nem állítjuk a matomo cron-jában az archiváló script futtatását a matomo-ra, de még be kell állítanunk a logrotate-t is.

Logrotate beállítása a PHP-FPM-naplófájlokhoz

Szintén a 6. oldalon beállítottuk a Logrotate programot a naplófájl forgatásához. Most ezt terjesztjük ki a PHP-FPM által generált naplófájlokra is. Root-ként nyissuk meg a már korábban létrehozott fájlt:

nano /etc/logrotate.d/matomo

És a tegyük bele a zölddel kiemelt sorokat is, hogy végül így nézzen ki a fájl:

/var/log/matomo/matomo.log
/var/log/matomo/php-fpm-access.log
/var/log/matomo/php-errors.log
{
	rotate 7
	daily
	copytruncate
	compress
	delaycompress
	missingok
	notifempty
}

 

 

Cron átállítása a matomo felhasználóra

Korábban létrehoztuk a cron feladatot is a Matomo archiváló szkriptje számára, most ezt is átállítjuk, hogy ne a www-data futtassa a szkriptet, hanem a matomo. Nyissuk meg root-ként a /etc/cron.d/matomo-archive fájlt:

nano /etc/cron.d/matomo-archive

Majd itt a www-data részt írjuk át matomo-ra:

MAILTO=''
SHELL='/bin/sh'

*/5 * * * * matomo /usr/bin/php /opt/matomo/console core:archive --url=http://www.wordpress.vm/matomo/ >> /var/log/matomo/matomo.log
Ha van egyedi telepítésű PHP rendszerünk, és azzal szeretnénk futtatni az archiváló scriptet, akkor a /usr/bin/php helyén adjuk meg a megfelelő php parancsunk elérését. Itt lényegében mindegy, hogy melyik PHP-vel futtatjuk, mert itt nem PHP-FPM szerver API-val kerül lefuttatásra az adott parancs, hanem a parancssori PHP-vel.
Figyelem! Itt mindenkinél a saját Matomo példányára mutató URL cím legyen beállítva (ezt most csak én használom ezen a virtuális szerveren)! Ez lehet a szerver IP-címe alatti /matomo alkönyvtár, vagy a szerveren futó valamelyik weboldal alatti /matomo alkönyvtár is, ami már be van állítva a megbízható hosztok közé.

Tárhely jogosultságainak átadása a matomo felhasználónak

Ha eddig mindent jól csináltunk, akkor a Matomo naplófájljában megjelenhetnek ilyen hibaüzenetek:

The directory "/opt/matomo/tmp/cache/tracker/" does not exist and could not be created.

Ez azért van, mert még nem állítottuk át a Matomo tárhelyének jogosultságát, így a cron-ban a matomo felhasználó nevében futtatott archiváló szkript nem tudott írni a jelenleg még www-data nevén lévő fájlrendszerbe. Ezt gyorsan meg is oldjuk az alábbi paranccsal:

chown -R matomo:matomo /opt/matomo/
Ezt persze fentebb a matomo felhasználó létrehozásakor is megtehettük volna, de akkor megint csak a cron-ban – más felhasználóként – futtatott script generálta volna végig a hibákat, amíg a pool beállításaival bíbelődtünk. Tehát itt nincs tökéletes sorrend vagy stratégia, mert egy ilyen összetettebb műveletsornál – a különböző függőségek miatt – mindig előfordulnak logikai bukfencek amíg minden a helyére nem kerül.

Így most már minden a matomo felhasználó birtokában van. Ha most kivárjuk a következő 5 perces ciklust, akkor már szépen gyűjti az újabb napló adatokat, függetlenül a – még teljesen be nem állított – PHP-FPM-től, mert itt a cron-ban a CLI PHP futtatja le a scriptet:

Matomo naplófájl ellenőrzése az új felhasználóra váltás után

Tárhely Apache konfigurációjának átállítása PHP-FPM-re

És végül a legfontosabb rész jön: átállítjuk a Matomo tárhelyéhez készített Apache konfigurációt, hogy PHP-FPM-el működjön.

Csak érdekességképpen, ha itt még megpróbálnánk belépni a Matomo felületére, akkor most ott dobna ugyanolyan hibát, mint amit a naplófájlban is láthattunk, mert még a mod_php-ként futtatott tárhelyen a www-data felhasználó nem tudja írni/olvasni a már matomo-ra állított fájlrendszert.

Root-ként nyissuk meg a korábban elkészített – mod_php alapon működő – Apache konfigurációs fájlunkat:

nano /etc/apache2/conf-available/matomo.conf

És az alábbiaknak megfelelően vegyük ki belőle a pirossal kiemelt részt (vagy akár csak ki is kommentezhetjük soronként):

Alias /matomo /opt/matomo

<Directory /opt/matomo>
        Options +FollowSymLinks
        Options -Indexes
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html

#        <IfModule mod_php5.c>
        <IfModule mod_php7.c>
                AddType application/x-httpd-php .php
                php_flag display_errors On
                php_value session.gc_maxlifetime 3600
                # A következő beállítás a Matomo-nak kell:
                #php_value always_populate_raw_post_data -1
                # Ha gondok vannak a működéssel (php hibák) javasolják az opcache kikapcsolását.
                #php_flag opcache.enable Off
        </IfModule>

</Directory>

És tegyük a helyére az alábbi blokkot:

	<IfModule mod_proxy_fcgi.c>
		<FilesMatch "\.(php|html)$">
			# Unix socket alapú beállítás:
			SetHandler "proxy:unix:/run/php/php7.0-matomo-fpm.sock|fcgi://localhost"
		</FilesMatch>		
	</IfModule>

Itt ügyeljünk rá, hogy a zölddel kiemelt socket fájl pontosan ugyanaz legyen, mint amit fentebb is beállítottunk a pool-ban.

Majd mentsük le, és indítsuk újra az Apache-ot:

systemctl restart apache2.service

Ezennel készen is vagyunk, kipróbálhatjuk a Matomo-t.

 

 

Geolokációs beállítások (opcionális)

MaxMind-DB-Reader-php PHP bővítmény telepítése (opcionális)

Ezt a részt csak akkor hajtsuk végre, ha a Matomo számára beállított FPM egy – a leírásban korábban szereplő alapértelmezett PHP-től – eltérő verziójú, egyedileg telepített PHP rendszer, és nem az alapértelmezett PHP. Megfordítva tehát ha ugyanazt a PHP-t állítottuk át itt most az FPM működésre, mint amivel eddig is dolgoztunk, akkor hagyjuk ki ezt a részt, mert a MaxMind-DB-Reader-php bővítmény már rendelkezésre áll az előző oldalon elvégzett telepítésnek köszönhetően. Ha viszont most az FPM-et egy eltérő verziójú, egyedileg telepített PHP rendszerhez állítjuk be, akkor szükség van a Geolokációs adatbázist olvasó bővítmény telepítésére ennél a PHP példánynál is.

Tehát most a másik PHP rendszer számára is fel kell telepítenünk ugyanezt a bővítményt. Ennek a menete nagyjából megegyezik az előző oldalon végrehajtott résszel, annyi különbséggel, hogy most az egyedi PHP miatt pár helyen külön kapcsolókat kell alkalmaznunk. Lássuk is, hogyan történik mindez.

Ebben a részben már csak a PHP 7.x verzióihoz kerültek be a változatok, mivel egyedi telepítésű PHP5-FPM-re már nem érdemes beállítani egy új rendszert. 

PHP fejlesztői csomag telepítése

Szükségünk lesz a phpize parancs használatára ennél a PHP-nél is, mint ahogyan az alapértelmezettnél is. Ha most egy kézzel lefordított PHP 7.x-el van dolgunk, hasonlóan a linkhez, akkor ehhez nem kell telepítenünk semmit, mert a fordítás előkészületei során már felkerültek a fejlesztői csomagok is. Ha pedig más módon (pl. nem hivatalos csomagtárakból) telepítettünk fel egy PHP 7.x-et, akkor előfordulhat, hogy az nem tartalmazza a fejlesztői csomagot. Ebben az esetben telepítsük a verziónknak megfelelőt. Változatok:

  • PHP 7.0.x esetén: php7.0-dev
  • PHP 7.1.x esetén: php7.1-dev
  • PHP 7.2.x esetén: php7.2-dev
  • stb...

Vagy akár így is rákereshetünk a telepíthető csomagok között:

apt-cache search "^php" | grep "\-dev"

Majd telepítsük:

apt-get -y install <megfelelő csomagunk neve>

PHP bővítmény letöltése és telepítése

Lépjünk a /tmp könyvtárba és töltsük le a MaxMind-DB-Reader-php PHP bővítmény zip változatát a GitHub oldaláról:

cd /tmp
wget https://github.com/maxmind/MaxMind-DB-Reader-php/archive/master.zip

Csomagoljuk ki, és lépjünk be a létrejött könyvtár alatti ext/ alkönyvtárba:

unzip master.zip
cd MaxMind-DB-Reader-php-master/ext

Itt futtassuk a phpize parancsot (root-ként), de most a megfelelő PHP rendszerünkkel futtatva. Változatok:

  • Kézzel lefordított PHP 7 esetén a futtatandó parancs: <PHP telepítési könyvtára>/bin/phpize
  • Más csomagtárakból telepített egyedi PHP 7 esetén a parancs: /usr/bin/phpize7.x (például a sury.org csomagtár használata esetén, ahol az x jelenti a PHP rendszer alverzióját)

Tehát a letöltött és kicsomagolt bővítmény alatti /ext könyvtárban futtassuk a fenti elérések valamelyikén a phpize parancsot. Például:

/usr/bin/phpize7.2

Normál esetben ad egy hasonló kimenetet (PHP verziónktól függően):

Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012

Ezután konfiguráljuk, fordítsuk le a forrást, majd telepítsük, de itt meg kell adni a configure parancsnak egy kapcsolót is, amelyben megadjuk a php-config elérési útját is. Változatok:

  • Kézzel lefordított PHP 7 esetén a php-config elérése: <egyedi PHP-nk telepítési könyvtára>/bin/php-config
  • Más csomagtárakból telepített egyedi PHP 7 esetén: /usr/bin/php-config7.x (például a sury.org csomagtár használata esetén, ahol az x jelenti a PHP rendszer alverzióját)
./configure --with-php-config=<valamelyik fenti php-config elérés>
make
make install

A végén a megfelelő kimenet hasonló ehhez (pl. nálam egy kézzel fordított PHP 7.1-esetén):

Installing shared extensions:     /opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/

Nyissuk meg a php.ini fájlt. Változatok:

  • Kézzel lefordított PHP 7 esetén: <egyedi PHP-nk telepítési könyvtára>/lib/php.ini
  • Más csomagtárakból telepített egyedi PHP 7 esetén: /etc/php/7.x/fpm/php.ini (például a sury.org csomagtár használata esetén, ahol az x jelenti a PHP rendszer alverzióját)
nano <megfelelő php.ini fájl>

És adjuk a végéhez a következő sort:

extension=maxminddb.so

Mentsük le, és indítsuk újra az Apache-ot:

systemctl restart apache2.service

Ezennel a másik PHP változatunkhoz is feltelepítettük a MaxMind adatbázisait olvasó PHP bővítményt. Így a Matomo is már ezzel az újabb PHP-vel kérdezi le az IP-címek adatait.

 

Matomo tesztelése

Ha most belépünk a Matomo példányunk felületére, akkor szépen megjelennek a statisztikák (nálam a WordPress-es oldal statjai):

Matomo tesztelése - Kezdőképernyő

 

 

A háttér ellenőrzése

Ha pedig megnézünk a tárhelyen elhelyezett phpinfót:

phpinfo ellenőrzése - PHP-FPM működése

A Server API sorában láthatjuk a FPM/FastCGI értéket. Ha pedig lejjebb görgetünk, akkor a tárhelyen lévő PHP-t futtató felhasználót is láthatjuk:

phpinfo ellenőrzése - Futtató felhasználó: matomo

És ha még ránézünk a PHP-FPM folyamatokra, akkor:

PHP-FPM állapot - matomo felhasználó processzei

azt is láthatjuk, hogy a használat során már felugrott a matomo processzek száma 4-re.

 

Konklúzió

Ez lenne tehát a Matomo (korábban Piwik) webanalitikai rendszer telepítésének aprólékos módja. A statisztikák nagyon komolyak, rengeteg szűrési, beállítási lehetőség van benne, érdemes feltelepíteni. Persze akinél már van működő PHP-FPM, az kezdheti kapásból ezzel a tárhely kialakítását.

Próbáltam minél több információt betenni a szárazabb sorok közé, hogy jobban átláthatók legyenek az összefüggések, így szerintem könnyebben érthetővé válik az egész. Remélem sikerült felkeltenem az érdeklődést a Matomo iránt. )

 

 

Lapozó

Ez a leírás több oldalból áll: