• Ugrás az elsődleges navigációhoz
  • Skip to main content
  • Ugrás a lábléchez
Lanmen

Lanmen

Rendszergazda szolgáltatás, webáruház készítés, Office 365. Informatikai szolgáltatás kis és középvállalatoknak.

  • Facebook
  • Home Office
  • Rendszergazda
  • Cloud
  • Web
  • Kapcsolat
  • Blog

NGINX, PHP-FPM, ISPConfig apróságok

Most itt vagy: Főoldal / Linux / NGINX, PHP-FPM, ISPConfig apróságok

2012-03-16 | Szerző: ackermann

Egyszer már említettem, hogy van egy ISPConfig nevű Linux web hosting control panel. Nemrég megérkezett belőle az a verzió, ami már támogatja az nginx webszervert is.  Az ilyen dolgokat természetesen azonnal ki kell próbálnom. Azért elöljáróban azt el kell mondanom, hogy ez a „csomag” azért még nem olyan stabil szerintem mint az apache verzió. A php csomagokat pl. csak egy hivatalosan támogatott, de stabilnak nem tekintett repository-ból lehet feltenni. Különböző összefüggések miatt ugyanez igaz a mysql szerverre is. Persze mindig lehet kézzel is fordítani programokat, de én most azt sem tekinteném stabilnak…

Van ez a leírás a howtoforge oldalon az ISPconfig telepítésről:
http://www.howtoforge.com/perfect-server-centos-6.2-x86_64-with-nginx-ispconfig-3

ami igazából nagyon jó, szóval én csak egy két aprósággal szeretném kiegészíteni.

Gateway time out / php-fpm konfig

Azonnal belefutottam egy ilyen hibába telepítés után:

„504 Gateway Time-out”

A „Gateway” ebben az esetben a php-fpm.

Először egy WordPress oldal produkálta, de igazából a hiba nem webalkalmazás specifikus. Ugyanúgy érintett  a Joomla, Drupal, Moodle, Ilias, PHPnuke és egyáltalán minden.

Az nginx error logban ilyen bejegyzések vannak:

upstream timed out (110: Connection timed out) while reading response header from upstream, client:xxxxx

Ha az ember szabvány porton üzemelteti a php-fpm-et (tehát nem linux socket-en), akkor a netstat | grep portszám ilyesmiket mutat:

tcp        0           0 localhost:46664         localhost:9000          FIN_WAIT2   –
tcp     1247      0 localhost:9000          localhost:36235         CLOSE_WAIT  –
tcp     1247      0 localhost:9000          localhost:36225         CLOSE_WAIT  –
tcp        9           0 localhost:9000          localhost:36202         CLOSE_WAIT  14238/php5-fpm

Miért is van ez?

Vannak php scriptek amik valamiért nem futnak le, beragadnak. Hogy miért, az nem az én szakterületem.

A legjobb megoldás elvileg a ha beírjuk ezt a php-fpm konfig fájlba:

request_terminate_timeout = 30s
request_slowlog_timeout = 20s
slowlog = /var/log/php-fpm/php-fpm-slow-{fpm_user}.log

A request_terminate_timeout időt elvileg ugyanannyira vagy egy picit többre kell venni mint ami a php.ini-ben a max_execution_time paraméterben van beállítva.

Mindkét beállítás arra vonatkozik, hogy mennyi ideig futhat egy script maximum. A php-pfm konfigban szereplő érték nem írható felül user oldalról, ami viszont nem mondható ez a php.ini-ben beállított értékről.

ISPconfig  konfigurációban a fenti paraméterek nem írhatók be a etcphp-fpm.conf fájlba. (nem fog elindulni a php-fpm)

Ennek az a magyarázata, hogy ezt az értéket pool-onként kell definiálni. Magyarul, a etcphp-fpm.d mappában található fájlokban kellene, hogy megjelenjenek ezek a paraméterek, csakhogy azokat a fájlokat az ISPconfig hozza létre.

A teendő a usrlocalispconfigserverconfphp_fpm_pool.conf.master fájl megszerkesztése vagy átmásolása a conf-custom mappába és az ottani verzió szerkesztése.

Én konkrétan ezt írtam bele:

request_terminate_timeout = 30s
request_slowlog_timeout = 20s
slowlog = /var/log/php-fpm/php-fpm-slow-{fpm_user}.log

Erről jutott eszembe, hogy a fenti problémát állítólag okozhatja a client_max_body_size nginx paraméter túl kicsi értéke is. Ez az érték mondja meg pl. azt is, hogy mekkora fájlt enged feltölteni az nginx.
Ezt szintén csak ilyen cseles úton tudjuk központilag növelni.

A szerkesztendő file a usrlocalispconfigserverconfnginx_vhost.conf.master és valami ilyesmit kell beleírni:

client_max_body_size  100;

Másik lehetőség, hogy a fenti sor bedobható az nginx paraméterek közé az ISPconfig web felületén is, webhelyenként.

A fenti problémára van még egy javasolt alternatív megoldás. E szerint az nxinx konfigurációs fájlba kell beírni ezt:

proxy_read_timeout 120;

A location / { után…

MySql konfiguráció

Az ISPconfig leírás nem szól a MySql szerver beállításairól.  Tulajdonképpen alapértelmezetten hagyja azokat. Egy több weboldalt kiszolgáló webszerveren azért érdemes hangolni az adatbázis szerverén szerintem. Nem vagyok egy MySql guru, szóval én is több weboldalról meg a MySql súgójából vadásztam össze, hogy mit érdemes beállítani. Tehát 4 GB rammal ellátott 4 magos  szervert feltételezve, én ezeket állítanám be a my.cnf fájlban:

character-set-server = utf8
max_connections=600
skip-external-locking
log-error=/var/log/mysqld/error.log
key_buffer_size = 1024M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 128M
thread_cache_size = 32
query_cache_size= 32M
query_cache_limit=2M
query_cache_type=1
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 8
max_allowed_packet = 16M

de nem biztos, hogy igazam van. 🙂 Mondjuk nálam jól működik.

PHPmyadmin configuration storage

Az új verziójú PhpMyadmin program rendelkezik egy configuration storage nevű adatbázissal csakhogy ezt külön kell telepíteni, beállítani. A fent említett leírás erről sem szól A PhpMyadmin e nélkül is remekül működik, de ha be van állítva, akkor még kényelmesebb használni (ráadásul nem írogat hibaüzeneteket sem).

Első lépésben a create_table.sql fájl segítségével el kell készíteni a phmyadmin adatbázist.

Majd létre kell hozni egy pma nevű felhasználó és jogot adni neki az adatbázishoz.

Végül be kell állítani a pma jelszavát a config.inc.php fájlban és kiszedni a kommenteket a configuration storage-ra vonatkozó beállítások elöl.

Kategória: Linux, Open source Címkék: ispconfig, linux, mysql, nginx, php-fpm, phpmyadmin

kapcsolat

Dolgozzunk együtt!

Küldjön nekünk üzenetet és mi jelentkezünk 24 órán belül!

Üzenek!

Footer

Lanmen Informatika KFT

A szakértő rendszergazda. Kis és középvállalati informatikai rendszerek, tervezése, kivitelezése, üzemeltetése. Weboldal készítés. Felhős rendszerek. Konzultáció.
Rólunk
Adatvédelmi tájékoztató
  • Facebook

Kapcsolat

1161 Budapest, Csömöri út 94
Get Directions
+36 30 4522326
kapcsolat@lanmen.hu

Navigáció

  • Rendszergazda
  • Web
  • Microsoft 365
  • IP telefon
  • Biztonsági kamera
  • IT megoldások
  • HomeOffice
#Rendszergazda #Virtualizáció #Felhő #Online marketing #Hálózat építés #Ip telefon #Wifi #Webshop #Megoldás szállítás #Rendszerintegráció #Weboldal #Microsoft 365 #Azure #Windows #Google Workspace #Teams #Konzultáció #Fejlesztés #Rendszerüzemeltetés
Lanmen

© 2025 · Lanmen

Tájékoztatjuk, hogy weboldalunk szöveges fájlokat, ún. „adatmorzsákat“ (cookie-kat) használ anonimizált látogatottsági információk gyűjtése céljából, valamint bizonyos szolgáltatások ezek nélkül nem lennének elérhetőek. A honlap további használatával hozzájárulását adja a Cookie-k tárolásához és felhasználásához.ElfogadomBővebben...