lemp (linux, [e]nginx, mysql, php, perl, python)

Linux, poslužitelj, mreže i sigurnost

Moderator/ica: Moderatori/ce

Odgovori
Avatar
hightech
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Spol: M
OS: wheezy, slekver ;)
Lokacija: /dev/hda2, etc
Kontakt:

lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la hightech »

Operativni sistem: Debian Squeeze 6.0.6 ... Verzija servera: nginx/0.7.67
Napomena: Ova verzija nginx-a je po defaultu u squeeze 6.0.6 i smatra se stabilnom verzijom ...
Prvo, par neophodnih paketa:

Kod: Označi sve

aptitude install php5-cgi php5-cli php5-common php5-mhash php5-curl php5-gd php5-json php5-mcrypt php5-sqlite php5-mysql php5-dev php5-tidy php5-xmlrpc php5-memcache php5-pspell php5-xsl
Pa mysql klijent i server:

Kod: Označi sve

aptitude install mysql-server mysql-client
Prilikom instalacije mysql-a podesite root lozinku, pa zatim:

Kod: Označi sve

aptitude install spawn-fcgi
Pa onda engine-x

Kod: Označi sve

aptitude install nginx 
Zatim napraviti virtual host direktorijum

Kod: Označi sve

mkdir -p /home/www/public
Zatim napraviti direktorijum za logove

Kod: Označi sve

mkdir /home/www/logs
Zatim promeniti vlasništvo (ownership) nad www podacima

Kod: Označi sve

chown -R www-data:www-data /home/www/public
Pa editovati /etc/nginx/sites-available/default
...i zameniti postojeći sadržaj dole navedenim, ali uradićete bekap tog fajla neposredno pre editovanja, da bi ostale "vidljive" neke "custom" opcije neophodne za dalja podešavanja:

Kod: Označi sve

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_beckup
sudo nano /etc/nginx/sites-available/default
Sadržaj:

Kod: Označi sve

server {
	listen 80 default;
	server_name localhost;
	access_log /home/www/logs/localhost.access.log;
	location / {
		root /home/www/public;
		index index.html index.htm index.php;
	}
	location ~ \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /home/www/public$fastcgi_script_name;
		include fastcgi_params;
	}
}
zatim linkovati default vhost podešavanja, mada nginx automatski linkuje, ali za svaki slučaj:

Kod: Označi sve

ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

Zatim editovati /etc/init.d/php-fastcgi i ubaciti sledeci sadržaj:

Kod: Označi sve

nano /etc/init.d/php-fastcgi
Sadržaj:

Kod: Označi sve

#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=5 #15
PHP_FCGI_MAX_REQUESTS=1000
PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME='basename $PHP_CGI'
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin 
PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS  $PHP_CGI -b $BIND"
RETVAL=0
 start() {
	echo -n "Starting PHP FastCGI: "
	start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
	RETVAL=$?
	echo "$PHP_CGI_NAME."
 }
 stop() {
	echo -n "Stopping PHP FastCGI: "
	killall -q -w -u $USER $PHP_CGI
	RETVAL=$?
	echo "$PHP_CGI_NAME."
 }
 case "$1" in

	start)
	start
		;;
	stop)
	stop
		;;
	restart)
	stop
	start
		;;
 *)
 echo "Usage: php-fastcgi {start|stop|restart}"
	exit 1
		;;
	esac
 exit $RETVAL
Izmeniti dozvole nad php-fastcgi u izvršne:

Kod: Označi sve

chmod +x /etc/init.d/php-fastcgi

Pokrenuti nginx:

Kod: Označi sve

/etc/init.d/nginx start
Pokrenuti fastcgi:

Kod: Označi sve

/etc/init.d/php-fastcgi start

Pa:

Kod: Označi sve

update-rc.d nginx defaults
..zatim:

Kod: Označi sve

update-rc.d php-fastcgi defaults 
...zatim napraviti index.php i ubaciti phpinfo() funkciju:

Kod: Označi sve

nano /home/www/public/index.php
index.php bi trebao izgledati ovako:

Kod: Označi sve

<?php echo phpinfo(); ?>

Gotovo!!! sada otvorite browser i kucajte:

Kod: Označi sve

http://localhost
Web strane našeg servera se nalaze u /home/www/public/
Zadnja izmjena: hightech, dana/u 24 vel 2013, 14:13, ukupno mijenjano 3 puta.
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
tomog999
Postovi: 125
Pridružen/a: 03 ožu 2011, 18:18
Spol: M
OS: mint14Cina/Centos6
Lokacija: Zagreb

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la tomog999 »

Jel postoje situacije kad se mora/preferira koristiti lemp umjesto lamp,
ne znam, pitam,

ili je to samo stvar osobne preference.

Koje su uopće, laički rečeno razlike između nginx i apache servera,
zašto bih izabrao jedan umjesto drugog, onako u jednoj rečenici sažeto.
To all you "rvacki pravopis" haters, we're gona blow your planet up
we got death star(death star)
and you know that we got it(death star)

Darth Spellingius :D
Avatar
drade
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
OS: linux

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la drade »

Laicki:
Oboje su HTTP serveri (apacheu je to primarna funkcija a nginx-u sekundarna), no nginx je incijalno zamisljen kao visoko optimizirani reverse proxy (apacheu je to jedna od sekundarnih funkcija, nginxu je primarna).

Sve, osim laicki:
Ovdje spada sve sto nisam srocio u gornjoj recenici.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
hightech
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Spol: M
OS: wheezy, slekver ;)
Lokacija: /dev/hda2, etc
Kontakt:

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la hightech »

nginx se u vecini slucajeva koristi za staticki sadrzaj, kao i za reversni proxy ... nginx je zamisljen da radi sta mu napises, dok apache ucitava gomilu modula.... nginx takodje moze sve sto i apache, osim sto se to mora podesiti naknadno ....
statistike pokazuju da sve veci broj servera migrira sa apache-a na nginx ... u tu statistiku spada i podatak da je nginx 50 puta brzi od apachija i brze radi sa zahtevima, zapravo bolje reci "organizovanije"
...mada licno mislim da je nginx bespotreban do neke brojke 100 korisnika u sekundi ... tek tada se zaista mogu videti primetne performanse ovog neobicnog http servera :)
takodje ovaj server se moze koristiti kao forward proxy (link za conf) ... performanse zaista zadivljujuce ... anapnea npr. koristi nginx kao fw i rv proxy .... google takodje a i vecina najjacih sajtova vec uveliko migrira ...
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
drade
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
OS: linux

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la drade »

Apache moze vrlo dobro odraditi posao za tisuce korisnika (zato i postoje prefork i worker mod rada, potrebno ih je samo dobro podesiti). Takodjer, apache ucitava module koje zelis da ucita (ne ucitava ono sto ne zelis da ucita).

50 puta brzi od apachea je statistika isisana iz prsta (ovisi za sto i na koji nacin), u to sam siguran 73.51%. Cinjenica je da podosta tvrtki prelazi na nginx.

Konkretno (stvar s kojom sam se susretnuo), nginx nema ekvivalent mod_cluster apache modula za balansiranje JBoss instanci i za automatsko stvaranja konteksta aplikacije. Nginx gore navedeno odradjuje kroz upstream modul (i tada mu fale svi featurei koje ima mod_cluster).

Ovaj link koji si postao je konfiguracija za reverse proxy ... ne za forward proxy (tj. samo proxy).
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
hightech
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Spol: M
OS: wheezy, slekver ;)
Lokacija: /dev/hda2, etc
Kontakt:

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la hightech »

Taj link koj sam postovao sam i napisao ... ja sam razumeo da je to forward proxy a da reversni proxi filtrira upite, balansira ... Pravi pojam proxy-ija je obicno kesiranje stranica , rv proxy i fw proxy su naknadni nacini koliko znam ...
No lagano, lecice sve na svoje :)
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
drade
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
OS: linux

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la drade »

Ma znam da si napisao, cijenim to ! Samo sam htio razbiti zablude o tome sto je sto.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
hightech
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Spol: M
OS: wheezy, slekver ;)
Lokacija: /dev/hda2, etc
Kontakt:

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la hightech »

Ja sam licno takodje imao sumnje, jer previse mistifikuju pojam proxy-ija ... Proxy je nekada kada su konekcije bile spore (dial-up) sluzio da se kesiraju stranice i da upit ne ide do servera vec da se iz kesa povuce, sto bi ubrzavalo citav proces. To je radio proxy jer su konekcije bile jakoooo spore ... e kasnije je dosao fw proxy i rv proxy .....
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
glaskoncILLa
Postovi: 5678
Pridružen/a: 28 vel 2009, 16:36

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la glaskoncILLa »

ma zapravo i ne, svi proxyi su iz te perspektive ili forward ili reverse, s tim da je ideja reversa dosla nesto kasnije jer u pocecima interneta nije bili ni potrebe za offloadom servera zbog kolicine contenta i broja korisnika/broja (SSL/TLS) konekcija..
...."Have you mooed today?"...
..It’s that time of the decade: I’m reinstalling Debian..
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: lemp (linux, [e]nginx, mysql, php, perl, python)

Post Postao/la shrike »

Baš ću danas probati nginx jer me apache počinje živcirati, pa vam jvim rezultate
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Odgovori