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.
Showing posts with label php. Show all posts
Showing posts with label php. Show all posts
Saturday, December 1, 2012
Sunday, September 30, 2012
Gentoo: Apache does not interpreting PHP
If you use Gentoo/CentOS with Apache2 and PHP, and PHP is not interpreted, you should do the followings:
Open Apache2's configurations:
nano /etc/conf.d/apache2
Change the line:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5 -D USERDIR"
After changing the line, don't forget to restart Apache:
/etc/init.d/apache2 restart
Now it should work!
Open Apache2's configurations:
nano /etc/conf.d/apache2
Change the line:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5 -D USERDIR"
After changing the line, don't forget to restart Apache:
/etc/init.d/apache2 restart
Now it should work!
Wednesday, August 1, 2012
Asterisk telepítés Debian-ra
Asterisk:
Az Asterisk-et kétféle módon telepíthetjük:
2. Letöltjük a forráskódot és lefordítjuk a gépünkön. Ez egy kicsit több időt vesz igénybe, de éles rendszernél mindenképpen ajánlott kiválaszthatjuk, hogy milyen csomagokat (pl. codec-eket, és egyéb szolgáltatásokat) szeretnénk telepíteni, így csökkentve az erőforrás használatot. A telepítési fázisok itt érhetőek el.
Érdemes megemlíteni, hogy létezik egy FreePBX nevű eszköz, melyet egy telepített Asterisk-es rendszerhez kell kötnünk. Ez egy remek eszköz a rendszer monitorozására, illetve menedzselésére. A FreePBX telepítésére itt olvashatsz bővebben.
FreePBX telepítés Debian-ra
A FreePBX nem más, mint egy GUI az Asterisk vezérléséhez. Ha gyakran kell állítani a rendszeren, érdemes használni, hiszen nem kell a .conf fájlokban turkálni. Emellett elég sok adatot képes megjeleníteni a rendszerről: felhasználók, terhelés, elérhető frissítések, stb. .
A telepítése roppant egyszerű, szükséges hozzá PHP5, és MySQL. Állítólag a PHP5.4-et nem igazán kedveli, nekem nem volt vele problémám.
Telepítsük a PHP-t, és MySQL-t:
apt-get install php5-mysql libapache2-mod-php5 mysql-server php-db php5-gd php-pear
Készítsük elő a MYSQL adatbázisokat:
mysql -u root -p
create database asterisk;
create database asteriskcdrdb;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109'; flush privileges;
mysql -u root -p asterisk < SQL/newinstall.sql
Szükséges felhasználó létrehozása
groupadd asterisk
useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk
passwd asterisk
A telepítése roppant egyszerű, szükséges hozzá PHP5, és MySQL. Állítólag a PHP5.4-et nem igazán kedveli, nekem nem volt vele problémám.
Letöltés/előkészítés:
apt-get install php5-mysql libapache2-mod-php5 mysql-server php-db php5-gd php-pear
Váltsunk a tmp mappába:
cd /tmp
Töltsük le az épp használatos verziót, jelenleg ezek közül lehet ávlasztnai:
A 2.9-es csak 1.8 ig támogatja az Asterisket!
wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
wget http://mirror.freepbx.org/freepbx-2.10.0.tar.gz
Váltsunk az src mappába, csomagoljuk ki, és lépjünk bele:
cd /usr/src
tar xvfz /tmp/freepbx-2.10.0.tar.gz
cd /tmp
Töltsük le az épp használatos verziót, jelenleg ezek közül lehet ávlasztnai:
A 2.9-es csak 1.8 ig támogatja az Asterisket!
wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
wget http://mirror.freepbx.org/freepbx-2.10.0.tar.gz
Váltsunk az src mappába, csomagoljuk ki, és lépjünk bele:
cd /usr/src
tar xvfz /tmp/freepbx-2.10.0.tar.gz
cd freepbx-2.10.0
Készítsük elő a MYSQL adatbázisokat:
mysql -u root -p
create database asterisk;
create database asteriskcdrdb;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109'; flush privileges;
quit
Töltsük be a szükséges SQL táblákat:
Töltsük be a szükséges SQL táblákat:
mysql -u root -p asterisk < SQL/newinstall.sql
mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql
Szükséges felhasználó létrehozása
useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk
passwd asterisk
Ha még nem lennének meg a könyvtárak, akkor hozzuk létre:
mkdir /var/run/asterisk
chown asterisk:asterisk /var/run/asterisk
chown asterisk:asterisk /var/run/asterisk
Adjuk hozzá az asterisk usert a www-data csoporthoz:
nano /etc/group
www-data:x:33:asterisk
(f2-vel tudsz menteni és bezárni)
nano /etc/apache2/apache2.conf
(ctrl+w- vel tudsz keresni)
Most be kell állítani, hogy az Apache az asterisk user nevében fusson:
Cseréld le a következő sorokat:
User www-data
Group www-data
erre:
User asterisk
Group asterisk
(Lehet, hogy a User és Group után valami $-os szöveg van, azt törölheted, de a legegyszerűbb ha simán kommenteled(#).
chown -R asterisk /var/lib/php5
Változtassuk meg a php.ini beállításait, kicsit ki kell bővíteni:
nano /etc/php5/apache2/php.ini
upload_max_filesize = 32M
max_execution_time = 120
max_input_time = 120
./install_amp
A telepítő menet közben meg fog kérdezni néhány dolgot, a többségét hagyhatjuk alapbeállításon, egyedül az IP címet érdemes megváltoztatni, illetve a telepítés helyét. A telepítés helyénél figyeljünk arra, hogy a /var/www/mappanev helyre kerüljön, ha ezen belül egy almappába kerül, akkor még szöszölni kell vele.
Változtassuk meg a php.ini beállításait, kicsit ki kell bővíteni:
nano /etc/php5/apache2/php.ini
upload_max_filesize = 32M
max_execution_time = 120
max_input_time = 120
Fontos, hogy a telepítés megkezdése előtt mindenképpen készítsünk biztonsági mentést a modules.conf fájlról!
cp /etc/asterisk/modules.conf ~/asterisk-modules.conf
cp /etc/asterisk/modules.conf ~/asterisk-modules.conf
Telepítő elindítása:
A telepítő menet közben meg fog kérdezni néhány dolgot, a többségét hagyhatjuk alapbeállításon, egyedül az IP címet érdemes megváltoztatni, illetve a telepítés helyét. A telepítés helyénél figyeljünk arra, hogy a /var/www/mappanev helyre kerüljön, ha ezen belül egy almappába kerül, akkor még szöszölni kell vele.
Bug:
Előfordul, hogy Asterisk telepítésénél a ,,make sample" módot választjuk, ekkor legenerálja a sok .config fájlt, amire szükségünk lesz, és default beállításokkal szolgál. Viszont ezen verzió telepítője szépen kihagy néhány fájlt, ezért pl.: FreePBX nem képes csatlakozni Asterisk-hez (Asterisk nem képes feldolgozni a manager.conf fájlt). A FreePBX-es problémát a következő képpen tudjuk megoldani:
nano /etc/asterisk/manager.conf
A fájl végén látunk két include-ot (# az elején). Ezeket a fájlokat elfelejti létrehozni, ezért vagy hozzuk létre, vagy ;-vel kommentezzük ki. A fájlok tartalma nem létfontosságú, csak a szeparálhatóság végett fontos.
nano /etc/asterisk/sip.conf
A fájl végéhez adjuk hozzá:
#include sip_additional.conf
Ha minden jól ment, akkor kész a GUI, valami ilyesmit kéne kapni:
nano /etc/asterisk/sip.conf
A fájl végéhez adjuk hozzá:
#include sip_additional.conf
Ha minden jól ment, akkor kész a GUI, valami ilyesmit kéne kapni:
Thursday, January 19, 2012
PHP Image Class
English:
A class written in php for manipulating image files. It has a lot of features such as:
A class written in php for manipulating image files. It has a lot of features such as:
- resize
- crop
- rotate
- watermark
- mostly all of php's build in filters
- some special algorythms like blur, noise, duotone, etc..
- convert images between file extensions
It's ready to be used in MVC frameworks or in simple websites. For more informations please read readme.txt in downloads.
Download
Download
Hun:
PHP osztály képek egyszerű kezelésére sok funkcióval mint például:
- átméretezés
- vágás
- forgatás
- vízjel
- szinte az összes php-ba beépített filter
- egyéb algoritmusok mint pl.: blur, duotone, zaj, stb...
- Fájl formátumok közti váltás
Az osztály használható akár MVC framework-ökben, akár egyszerű weblapoknak, egyéb információk megtalálhatóak a readme.txt fájlban a letöltések között.
Címkék:
image,
linux,
php,
platformfüggetlen,
windows
Thursday, December 1, 2011
PHP fejlesztőkörnyezet kialakítása
Webes
fejlesztőkörnyezet kialakítása
1. Lépés:
Egyszerű HTML– CSS – JS oldalak fejlesztéséhez nem feltétlenül van szükségünk fejlesztőkörnyezet kialakítására, hiszen a legtöbb böngésző önmagában is képes a helyben tárolt tartalom megjelenítésére, viszont php futtatásához már más programokra is szükségünk lesz.
Szükségünk van egy webszerverre, amely a kliensektől érkező
kéréseket szolgálja ki, általában Apache (Linux vagy Windows), vagy IIS (Windows)
nevű kiszolgálókat szoktuk alkalmazni,
éles rendszereknél PHP-hoz általában Linuxon futó Apache -ot szoktak használni,
de gond nélkül lehet használni IIS-t (Internet Information Services) is, ha nem
csak PHP-t szeretnénk futtatni (IIS-t inkább ASP.NET –es oldalak hosztolására
használnak Windows Server-eken).
Ha helyi gépen szeretnénk fejleszteni, és nem szeretnénk vacakolni a PHP, MySQL, Apache beállításával, vagy nem értünk hozzá, akkor letölthetünk egy kompakt csomagot, mely tartalmazza a fejlesztéshez létfontosságú eszközöket:
- Apache webszervert
- PHP futtatásához szükséges értelmezőt
- MySQL adatbázismotort
és egyéb eszközöket (ftp szerver, Perl). Ez a csomag mind
Windows-ra, mind Linuxra letölthető, de vigyázunk, éles rendszerbe soha ne
használjuk, mert biztonsági rések lehetnek benne, ezt a csomagot tipikusan
fejlesztésre szánták.
A program neve XAMPP (X: Windows/Linux, A: Apache, M: MySQL,
P: PHP, P:Perl), ebben a posztban ennek a telepítését, beállítását mutatom meg
Linuxra és Windowsra. Természetesen használhatunk IIS-t is, ezt Windows 7 Professional + operációs rendszerekhez jár ingyenesen. Telepítéséről és konfigurálásáról ITT lehet olvasni.
XAMPP telepítése Windows rendszerekre:
2.
Indítsuk el a telepítőt: hagyhatunk mindent
alapállapotban.
3.
Ha kész a telepítés, és nem indult el magától a
control panel, akkor indítsuk el. Ez egy egyszerű és kényelmes kezelőfelület a
szolgáltatások beállításához , ki –és bekapcsolásához. Mire jók a szolgáltatások?
o
Apache: webszerver, php értelmező telepítve van
hozzá
o
MySQL: adatbázis motor
o
FileZilla: FTP szerver és kliens
o
Mercury: levelező szerver
o
Tomcat: Java Servlet és a JavaServer Pages
megjelenítéséhez
Ha csak PHP-t szeretnénk használni, akkor elegendő, ha az
Apache-ot indítjuk a ,,start” gomb megnyomásával.
Előfordul, hogy nem indul el, vagy a start megnyomása után,
néhány másodpercig úgy tűnik, hogy elindult, aztán mégsem. Ez a szerver a 80-as
portot használja, így azokat a programokat amik szintén ezt használják le kell
állítani, tipikusan ilyen a Skype (de a Skype beállításainál meg lehet
változtatni a port számot, így nem ütközik a kettő). Ha esetleg mégis gond lenne, és sehogy sem akar elindulni, akkor megváltoztathatjuk a portot, amit az Apache használ, ilyenkor viszont a böngészőnkben a következő címet kell beírni:
http://localhost:portszam
Tesztelés: Ha nem változtattunk az alap telepítési
beállításokon, akkor a C:\xampp könyvtárba települt. Keressük meg a ,,htdocs” mappát, általában web szervereknél ez a mappa
jelöli a megjelenítendő fájlok mappáját. Nyissuk meg, és hozzunk létre benne
egy mappát. A mappában hozzunk létre egy szöveges fájlt, majd nevezzük át
index.php-ra. és a tartalma legyen a következő:
<?php
phpinfo();
?>
Ebben a kódrészletben meghívjuk a phpinfo() függvényt, mely az oldal megnyitásakor lefut, és különböző információkat ad a telepített php-ról. Mentsük el és zárjuk be a fájlt! Nyissuk meg a kedvenc böngészőnket és írjuk be az URL helyére: „http://localhost/mappaneve/index.php”, ha mindent jól csináltunk, akkor kapunk egy igen nagy táblázatot, ahol a telepített php beállításait látjuk, illetve a telepített bővítményeket. Ha ez megjelent, akkor a telepítés sikeres volt, a rendszer elvileg gond nélkül tud php kódot értelmezni.
2. Lépés:
PHP fejlesztés során szükségünk van egy szerkesztő programra, egyszerű, néhány soros oldalakhoz elég akár egy notedpad, de bonyolultabb programok írásakor sokat segíthet egy olyan program, mely áttekinthetővé teszi a kódot. Ezeknek a programoknak a száma végtelen, íme néhány:
PHP fejlesztés során szükségünk van egy szerkesztő programra, egyszerű, néhány soros oldalakhoz elég akár egy notedpad, de bonyolultabb programok írásakor sokat segíthet egy olyan program, mely áttekinthetővé teszi a kódot. Ezeknek a programoknak a száma végtelen, íme néhány:
Notepad++ : *
Kicsit komolyabb szövegszerkesztő mint a beépített notepad, tud sorokat számozni, illetve képes a különböző szintaktikai elemek színezésére. 1-2 fájlból álló oldalakhoz elég lehet, de minél több fájlból áll az oldal, annál nehezebb lesz átlátni.
Kicsit komolyabb szövegszerkesztő mint a beépített notepad, tud sorokat számozni, illetve képes a különböző szintaktikai elemek színezésére. 1-2 fájlból álló oldalakhoz elég lehet, de minél több fájlból áll az oldal, annál nehezebb lesz átlátni.
Adobe Dreamweaver ***
Az Adobe cég web fejlesztésre szánt programja, gyorsan meg lehet tanulni a használatát, megbízható, van benne ftp szerver, svn –re tud kapcsolódni, viszont code hinteket nehéz beállítni benne.
Az Adobe cég web fejlesztésre szánt programja, gyorsan meg lehet tanulni a használatát, megbízható, van benne ftp szerver, svn –re tud kapcsolódni, viszont code hinteket nehéz beállítni benne.
PHPDesigner ****
Hasonló a dreaweaverhez, egy kicsit bonyolultabb, viszont kiváló benne a code hinting, hátránya hogy az ftp nehezen beállítható.
NetBeans ***
Ingyenesen letölthető, php mellett számos nyelven lehet programozni benne (java, c, c++).
CodeLobster *****
Az alap verzió ingyenesen letölthető (email-ben kell serialt igényelni, de azonnal megjön), csak a bővítményekért kell fizetni (különböző cms-ek, sql szerverek -re való fejlesztést segítik ezek a kiegészítők, így nincs rájuk szükségünk). Telepítéskor vigyázzunk, hogy a plugin-eket ne pipáljuk ki, különben nem fogadja el az ingyenes serialt.
Google segítségével még n+1 darab ilyen programot találhatunk, illetve a későbbiekben is nagyon nagy segítséget tud nyújtani, ha valamilyen problémába ütközünk.
Ha sikerült telepítenünk a PHP futtatásához szükséges eszközöket, és rendelkezünk egy megfelelő szerkesztővel, akkor készen állunk webes tanulmányaink elkezdéséhez.
Hasonló a dreaweaverhez, egy kicsit bonyolultabb, viszont kiváló benne a code hinting, hátránya hogy az ftp nehezen beállítható.
NetBeans ***
Ingyenesen letölthető, php mellett számos nyelven lehet programozni benne (java, c, c++).
CodeLobster *****
Az alap verzió ingyenesen letölthető (email-ben kell serialt igényelni, de azonnal megjön), csak a bővítményekért kell fizetni (különböző cms-ek, sql szerverek -re való fejlesztést segítik ezek a kiegészítők, így nincs rájuk szükségünk). Telepítéskor vigyázzunk, hogy a plugin-eket ne pipáljuk ki, különben nem fogadja el az ingyenes serialt.
Google segítségével még n+1 darab ilyen programot találhatunk, illetve a későbbiekben is nagyon nagy segítséget tud nyújtani, ha valamilyen problémába ütközünk.
Ha sikerült telepítenünk a PHP futtatásához szükséges eszközöket, és rendelkezünk egy megfelelő szerkesztővel, akkor készen állunk webes tanulmányaink elkezdéséhez.
Hely:
Pécs, Hungary
Wednesday, October 26, 2011
CodeIgniter: tank_auth vs. dx_auth
Welcome!
This post is about codeigniter php frameworks's 2 most used authentication systems, tank and dx auth.
Dx_auth was written by Erick Hartanto and it's based on CL Auth 0.2.5 beta developed by Jason Ashdown. Tank_auth is based on dx_auth, it was written by Ilya Konyukhov.
In both of them you can get the basic authentication features such as login, logout, register, and you can also find optionally CAPTCHA (or reCAPTCHA).
So what are the main differences?
In dx_auth there's a simple admin panel, you can create your own roles with custom permissions. However in tank_auth there are no roles and there's no admin panel, but in my opinion it's not a big problem, you can easily write an admin panel or integrate the roles.
If you want to use CI 2.0 or above, as I recognised, dx_auth is not completely compatible, you have to change the class names in each file from Classname to CI_Classname.
If you have to choose between these two, or other auth systems, I advise to use tank_auth. Dx_auth's role system is not very well designed, there can be security issues, and it uses more tables in database for not usable reason (for most of the times). It's also not a good choice to avoid DoS and bot attacks, since it uses IP restriction instead of username and IP restriction.
If you are intrested, you can read an all-in comparison of all the authentication systems here.
Címkék:
authentication,
codeigniter,
php
Subscribe to:
Posts (Atom)
