This article is about setting up multiple PHP versions with PHP-FPM with nginx. Basically, its a note for myself, but maybe you can also use it. When this article was written, the stable PHP version was 5.4.9, so I will use that here.
It's a testing configuration, there might be security bugs, so don't use it in production!
This article is based on Ondřej Šimek's article.
So first of all, we need the actual PHP stable version, download it, unzip it, and copy it to /usr/local/src. After PHP 5.4.0, you don't need to patch. (if you need previous version, use Ondřej Šimek's tutorial for patching)
wget http://www.php.net/get/php-5.4.9.tar.gz/from/a/mirror
tar xjf php-5.4.9.tar.gz
mkdir /usr/local/src/php
mkdir /usr/local/src/php/5.4.9
mv php-5.4.9 /usr/local/src/5.4.9
Next, we need to run ./configure, and compile it. I like to install php separately to /opt/php/5.4.9
mkdir /opt/php
mkdir /opt/php/5.4.9
So run ./configure with the choosen options. You need at least these:
--prefix=/opt/php/5.4.9
--enable-fpm
(--enable-fastcgi)
--without-pear
./configure --prefix=/opt/php/5.4.9 --enable-fpm --without-pear
You may or may not need to use --enable-fastcgi, it depends on the php-version, as I can remember, since 5.3.0 you don't need to use, because it's a must-have option.
After running configure, run:
make & make install
It will create some files in /opt/php/5.4.9. You may need to copy the recommended php.ini from the source folder:
cp /usr/local/src/php-ini-production /opt/php/5.4.9
Now, you need to change some configurations in the inis:
nano /opt/php/5.4.9/etc/php-fpm
ISPConfig uses listen port 9000, so you need to change it, to for example: 9001. You may want to set up logging, you can find several lines and settings about logging, its not hard to find.
Now, you can start php-fpm:
./opt/php/5.4.9/sbin/php-fpm
Next, go to your admin panel (ISPConfig), go to System, and additional PHP versions (only available in ISPConfig 3.0.5!). Create a new php version:
FastCGI settings:
Binary: /opt/php/5.4.9/bin
PHP.ini directory: /opt/php/5.4.9
PHP-FPM settings:
init-script: /opt/php/5.4.9/etc
PHP.ini directory: /opt/php/5.4.9/
POOL directory: /opt/php/5.4.9
Save it, then go to websites, and change PHP-version where you need. It will throw a ,,Bad Gateway" error, because you didn't edit the nginx settings:
cd /etc/nginx/sites-available
nano yoursite.vhost
Then change the listen port to the port you defined earlier.
fastcgi_pass 127.0.0.1:9001
At the and: reload nginx and hurray.
/etc/init.d/nginx reload
HURRAY
Now, I have to figure out how to automatise the port change in the .vhost files..
My blog about several parts of IT, mostly about Linux and networking stuff.
Saturday, December 1, 2012
Sunday, October 14, 2012
Több COD4 szerver egy szerver fájljaiból
Igen. A COD4-nek nem szükséges, hogy szerverenként felmásoljuk a szerverre a játék fájljait, így rengeteg helyet spórolhatunk meg. Egyszerüen elég, ha elhitetjük vele, hogy ott vannak a fájlok, ahol ő azt keresni fogja. Erre tökéleset megoldás a symlink -ek használata.
ln -s target_path link_path
ln -s /cod4/vin/main main
Tehát a következőképpen kell használni:
Tehát, tegyük fel, hogy szeretnénk 4 szervert, ehhez a következő mappa struktúrát vegyük fel:
cod4:
-bin
-28960
-28961
-28962
-28963
A bin mappába másoljuk a gyári fájlokat, amik a dvd-n találhatóak ( main, mods stb.. ), majd töltsük le a legújabb (1.7) linux-os indítót ( lnxded ), ezt csomagoljuk ki, és másoljuk be mind a 4 mappába ( 28960 - 28963 ).
Ezután hozzuk létre a symlinkeket:
ln -s /cod4/bin/Mods Mods
.
.
.
Ezt szépen végig játszuk az összes mappával.
Ezután már csak létre kell hozni szerverenként a config fájlokat, illetve csinálhatunk egy indító fájlt. És már indíthatjuk is:
screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28960 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate
screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28961 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate
screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28962 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate
screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28963 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate
Saturday, October 13, 2012
Call of Duty 4 szerver Linuxon
A szerver elkészítéséhez szükségünk van a játék dvd-n található fájlokra, pontosabban a setup/main mappára. Első lépésként töltsük fel a szerverre (például winscp -vel), ez eltarthat egy ideig a hálózati kapcsolatunk sebességétől függően.
Telepítés:
A cod4 előnye, hogy ha több szervert szeretnénk futtatni, azt megtehetjük ,,osztott" erőforrásokkal, tehát csak egy main könyvtárra lesz szükségünk, ez nagy segítség, hiszen 1-1 szerver akár 4-5 GB helyet is foglalna.
( Ha több szervert szeretnél egyszerre érdemes EZT is elolvasnod! )
Feltöltés után hozzunk létre egy könyvtárat, például a usr mappában, de akár saját usert is hozzárendelhetünk a /home -ban. Biztonsági okokból ajánlott nem root-ként futtatni a szervereket.
mkdir /usr/local/games/cod4
Másoljuk át a fájlokat!
Töltsük le a legfrissebb (1.7) binárisokat pl. innen. (cod4 lnxded 1.7)
wget http://www.shrapnet.com/downloads/cod4-linux-server-06282008.tar.bz2
Ezután tömörítsük ki:
tar -jxvf cod4-linux-server-06282008.tar.bz2
cod4_lnxded
cod4_lnxded-bin
libgcc_s.so.1
libstdc + +. so.6
README.linux
pbsetup.run
apt-get install screen
screen -S cod4 ./cod4_lnxded +set sv_pure 1 +set net_port 28960 +set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate
UDP 20800
UDP 20810
UDP 28960
Telepítés:
A cod4 előnye, hogy ha több szervert szeretnénk futtatni, azt megtehetjük ,,osztott" erőforrásokkal, tehát csak egy main könyvtárra lesz szükségünk, ez nagy segítség, hiszen 1-1 szerver akár 4-5 GB helyet is foglalna.
( Ha több szervert szeretnél egyszerre érdemes EZT is elolvasnod! )
Feltöltés után hozzunk létre egy könyvtárat, például a usr mappában, de akár saját usert is hozzárendelhetünk a /home -ban. Biztonsági okokból ajánlott nem root-ként futtatni a szervereket.
mkdir /usr/local/games/cod4
Másoljuk át a fájlokat!
Töltsük le a legfrissebb (1.7) binárisokat pl. innen. (cod4 lnxded 1.7)
wget http://www.shrapnet.com/downloads/cod4-linux-server-06282008.tar.bz2
Ezután tömörítsük ki:
tar -jxvf cod4-linux-server-06282008.tar.bz2
Ha minden jól megy, a következő fájlokat találjuk kicsomagolás után:
cod4_lnxded-bin
libgcc_s.so.1
libstdc + +. so.6
README.linux
pbsetup.run
Ezzel lényegében el is készültünk, most már csak konfigurálni kell.
Konfigurálás:
Ha szeretnénk, hogy a szerver fusson kijelentkezés után is, telepítsük a screen-t:
A screen egy ügyes kis program, röviden: képes több terminált emulálni:
ctrl+a+c = új terminál
ctrl+a+n = következő terminál
ctrl+a+n = következő terminál
További lehetőségek: man screen
Igény esetén létrehozhatunk egy indító fájlt, így indításkor csak le kell futtatnunk:
echo > cod4_starter.sh
nano cod4_starter.sh
A következőket másoljuk bele:
röviden:
sv_pure 1 : a szerver ellenőrzi, hogy a játékosok fájljai nem ,,sérültek".
net_port : port, ahol elérheted
dedicated 2 :dedikált netes szerver
sv_punkbuster : engedélyezed a pb-t
exec: mindenféle fájlt megynittathatsz vele, pl configot is
A következő portokat érdemes felnyitni:
UDP 20810
UDP 28960
A server.cfg fájlodat pedig ügyesen feltöltheted mindenféle csilivili beállítással, erre rengeteg generátor létezik, egyszerüen keress rá guglin: "cod4 server.cfg generator".
Friday, October 12, 2012
STEAMCMD Segmentation fault
If you use SteamCMD on Hardened Gentoo, you need some additional security configuration otherwise it will throw:
./steam.sh: line 67: 22525 Segmentation fault ${DEBUGGER}
Update:
Keep in mind: If you update steam, you have to do this again! (The updater will download a new steamcmd, so there will be no PaX headers!)
./steam.sh: line 67: 22525 Segmentation fault ${DEBUGGER}
"${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@"
It throws because of PaX. PaX is a security layer of hardened gentoo, which helps to prevent some attacks. We will user paxctl, For more informations:
man paxctl
So first, go to steamcmd (usually it's in /ga/me/folder/steam/linux32)
cd /ga/me/folder/steam/linux32
You can check pax flags:
paxctl -v steamcmd
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu>
Then you need to set up some flags:
-x: disable RANDEXEC -e: disable EMUTRMA
paxctl -ex steamcmd
Then check flags:
paxctl -v steamcmd
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu>
- PaX flags: -------x-e-- [steamcmd]
RANDEXEC is disabled EMUTRAMP is disabled
Update:
Keep in mind: If you update steam, you have to do this again! (The updater will download a new steamcmd, so there will be no PaX headers!)
Subscribe to:
Posts (Atom)