Jump to content

Welcome to Steams România @ Since 2006
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

Bun venit pe Steams România @ Since 2006

Bun venit pe Steams România @ Since 2006, pentru a avea full acces la forum te rugam sa te inregistrezi.
Ai mai multe motive pentru care sa te inregistrezi:
  • Acces la un forum structurat in parametri profesionali
  • Sansa de a da sau a primi like din partea membriilor
  • Sansa de a face parte din echipa steams
  • Alaturarea unei comunitati de viitor
Inregistreaza-te gratuit, acum!

In caz ca aveti probleme cu activarea/crearea/conectarea contului de pe forum lasati-ne un mesaj aici
Guest Message by DevFuse
 

Photo

Instalarea Nginx Php Mysql Phpmyadmin Pe Ubuntu


  • Please log in to reply
1 reply to this topic

#1
puberty

puberty

    Member

  • Members
  • Pip
  • 140 posts
  • Game Nick:;PuberTy
  • Y!M:baiatu_cu_prosopu@yahoo.com
  • Country:
  • City:Arad
Cu totii cunoastem popularitatea de care se bucura la nivel mondial serverul web Apache. Aceasta popularitate este de inteles din toate punctele de vedere, intrucat el chiar este un server foarte bun si, cu siguranta, va ramane prima optiune pentru solutiile web la nivel mondial.In anumite situatii, insa, apar anumite probleme legate de performanta pe care Apache o ofera atunci cand vorbim de siteuri mari, ce trebuie sa faca fata unui numar foarte mare de vizitatori, precum si atunci cand vorbim de resursele pe care astfel de siteuri le consuma.Cu siguranta, exista alternative care nu ar implica o renuntare la Apache, solutii bazate pe accelerare gen Varnish sau eventual chiar folosirea unui server light gen lighttpd, nginx care sa functioneze in fata serverului apache si sa serveasca partea statica a siteului, in acest fel reducandu-se nivelul de resurse de care apache ar avea nevoie. Un alt element car ar mai putea fi facut este o instalare corecta a apache (fara a folosi elemente de care apache nu are nevoie – in acest caz instalarea de tip tasksel nefiind potrivita pe ubuntu), precum si o configurare corecta si adaptata cerintelor aplicatiei web pe care trebuie sa o serveasca.
Cand totusi sugestiile de mai sus nu se doresc a fi adoptate sau nu reprezinta o solutie foarte buna, atunci alternativa ar fi inlocuirea serverului apache cu ceva mult mai putin consumator de resurse, in acest caz Nginx, care desi poate va crea probleme de alta natura (erori mai greu de rezolvat sau cine stie ce probleme de config cu care nu prea suntem obisnuiti), pe de alta parte ne vom bucura de performante superioare care vor face ca siteul respectiv sa reactioneze mult mai bine folosind aceasta solutie.

Acest articol nu contine elemente create de mine, ci mai degraba adunate de mine in momentul in care am fost nevoit la randul meu sa adopt o astfel de solutie intr-unul din proiectele la care lucrez. Invit pe cei care sunt mai experimentati sa vina cu adaosuri sau eventuale completari, in speranta ca acest articol sa fie de folos celor care doresc la un moment dat sa implementeze Nginx intr-unul din proiectele lor, mai ales ca documentatia Nginx este cam slabuta precum si sursele de informare in limba romana destul de putine.



Sa trecem la instalarea propriu-zisa, urmand pe rand pasii necesari pentru instalarea serverului web, php, mysql, iar in final am sa tratez instalarea phpmyadmin pentru a functiona cu serverul nostru:

sudo apt-get install nginx
Pornim serverul:

/etc/init.d/nginx start

sudo nano /etc/apt/sources.list
In care vom introduce PPA-ul:

deb http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
Adaugam cheia de autentificare:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D0DC64F

sudo apt-get update
Pasul urmator implica instalarea PHP (modulele php trecute depind strict de ce aveti voi nevoie):

sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json php5-suhosin php5-common php-apc php5-dev
Instalam serverul pentru lucrul cu bazele de date MySQL:

aptitude install mysql-server mysql-client
Va trebui sa definim o parola pentru userul root cu care ne putem ulterior conecta la bazele de date.

sudo apt-get install php5-fpm php5-cgi

sudo /etc/init.d/nginx restart
In acest moment, putem testa in browser ip-ul serverului nostru si daca putem vizuala index.html-ul in care ni se confirma ca Nginx merge atunci totul e ok. Desi am instalat PHP va trb sa configuram Nginx sa foloseasca php-ul nostru. Pentru asta vom configura nginx dupa cum urmeaza:

sudo nano /etc/nginx/sites-available/default
Urmariti videoul pentru mai multe detalii. Ulterior, fisierul trebuie sa fie de forma:

# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts

server {
listen 80;
server_name localhost;

access_log /var/log/nginx/localhost.access.log;

location / {
root /var/www/nginx-default;
index index.php index.html index.htm;
}

location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}

location /images {
root /usr/share;
autoindex on;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/nginx-default;
#}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#deny all;
#}
}

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#listen 8000;
#listen somename:8080;
#server_name somename alias another.alias;

#location / {
#root html;
#index index.html index.htm;
#}
#}

# HTTPS server
#
#server {
#listen 443;
#server_name localhost;

#ssl on;
#ssl_certificate cert.pem;
#ssl_certificate_key cert.key;

#ssl_session_timeout 5m;

#ssl_protocols SSLv2 SSLv3 TLSv1;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#ssl_prefer_server_ciphers on;

#location / {
#root html;
#index index.html index.htm;
#}
#}
Pasul urmator este crearea urmatorului fisier urmand editarea acestuia cu un script pe care ulterior il vom face executabil si il vom adauga la startup:

sudo touch /etc/init.d/php-fastcgi

sudo nano /etc/init.d/php-fastcgi
In care introducem:

#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=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
Se salveaza fisierul , apoi in terminal:

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

sudo service php-fastcgi start

sudo update-rc.d php-fastcgi defaults

sudo reboot
Dupa restart ar trb sa functioneze Nginx Php si MySQL la noi pe server. Putem testa php astfel:

sudo su

cd /var/www/nginx-default

touch test.php

nano test.php
In acest fisier introducem: phpinfo() intre taguri de php.
Salvam fisierul si ulterior il apelam in browser de forma http://ipserver/test.php, iar daca rezultatul este o pagina cu informatii legate de php atunci totul este in regula.Ultimul pas este sa instalam phpmyadmin. Din pacate, pentru a-l instala nu putem folosi apt-get, intrucat installerul ce vine default pentru phpmyadmin nu recunoaste decat apache sau lighttpd si atunci o solutie mai buna ar fi sa:
Mergem pe siteul celor de la phpmyadmin la sectiunea download si copiem adresa de download pentru versiunea de PMA pe care o dorim apoi:

cd /var/www/nginx-default
wget http://adresa_download_pma
tar xvfz arhiva.tar.gz
Ulterior putem sa stergem arhiva, sa redenumim, recurgand la un nume gen admin si il putem accesa in browser de forma http://ipserver/admin/index.php
In concluzie aceasta solutie merita luata in calcul, atunci cand apacheul nu ne satisface din punct de vedere al performantei, fiind constienti ca din acel moment va trebui sa buchisim putin cate putin pe internet de fiecare data cand va aparea vreo problema cu aplicatia, referindu-ma aici la cine stie ce erori prin loguri de care habar nu avem cu ce se mananca sau eventual pentru setari suplimentare pe care am dori sa le facem.

#2
Andy

Andy

    Incepator

  • Members
  • Pip
  • 69 posts
  • Game Nick:GoD?!
  • Y!M:cs.andy
  • Country:
  • City:Ploiesti

bunicel




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users