Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-11-04 21:41:10

  piotrd14 - Nowy użytkownik

piotrd14
Nowy użytkownik
Zarejestrowany: 2010-11-04

[how-to] Nginx + PHP5 + MySQL + phpMyAdmin

Tutorial przewiduje zainstalowanie:
- Nginx
- PHP 5.3 (php-fpm)
- MySQL
- phpMyAdmin

Nie będzie potrzebne żadne kompilowanie czy to nginx'a czy PHP. Wszystko po poprawnym zainstalowaniu będzie od razu działać.
Jest to podstawowa instalacja. Jeżeli ktoś chce "więcej" to odsyłam do Wujka G :)


Oryginał na http://www.piotrdyduch.pl/debian-ubuntu-instalacja-nginx/ .
Dodatkowo na blogu instalacja LAMP, MAIL, RoundCube

A więc do roboty :)

1. Repozytoria

Pierwsze co należy zrobić, to dodać odpowiednie repozytoria. Tak więc edytujemy plik sources.list w katalogu /etc/apt/.

Tutaj podam cały:

deb http://ftp.pl.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.pl.debian.org/debian/ lenny main non-free contrib

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

deb http://backports.debian.org/debian-backports lenny-backports main

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

Następnie musimy dodać klucze. Tak więc w konsoli wpisujemy:

gpg –keyserver keys.gnupg.net –recv-key 89DF5277
gpg -a –export 89DF5277 | apt-key add -

2. Aktualizacja
Teraz musimy zaktualizować system:

aptitude update
aptitude upgrade

3. MySQL
Instalujemy bazę danych MySQL

aptitude install mysql-server mysql-client

4. Instalacja Nginx
"Apache killera" zainstalujemy z backport's (bardziej aktualny niż z podstawowych repo).

aptitude -t lenny-backports install nginx

5. VirtualHost
Tworzymy VirtualHosta dla www.domena.pl (z przedrostkiem www)

vim /etc/nginx/sites-available/default

server {
listen 80;
server_name www.domena.pl;
access_log /var/log/nginx/www.domena.pl.access.log;

## Lokacja strony:
location / {
root /var/www/www.domena.pl;
index index.php;
}

## „Inne” traktowanie obrazkow i plikow statycznych
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}

## Parsowanie wszystkich plikow .php w katalogu strony: /var/www/www.domena.pl
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/www.domena.pl$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}

## Blokowanie widzenia plikow .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}

## Ustawienie portu na którym bedzie sie odbywac komunikacja z PHP
upstream backend {
server 127.0.0.1:9000;
}

6. Instalacja PHP
PHP-FPM jest gotowym "rozwiązaniem" do komunikacji między nginx a PHP w wersji FastCGI.

aptitude install php5-fpm

7. Restart
Restartujemy Nginx i PHP-FPM

/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart

8. Moduły PHP
Zainstalujemy podstawowe moduły PHP.

aptitude install php5-mysql php5-ldap php5-imap php5-curl php-pear

Po zainstalowaniu należy zrestartować PHP-FPM (j.w.)

9. Test
Sprawdzamy czy poprawnie zainstalowaliśmy PHP. W tym celu tworzymy plik index.php w katalogu /var/www/www.domena.pl/

vim /var/www/www.domena.pl/index.php

i wpisujemy:

<?php
phpinfo();
?>

Jeżeli wszystko działa poprawnie to zobaczymy stronę z konfiguracją PHP :).

10. phpMyAdmin
Standardowa instalacja:

aptitude install phpmyadmin

Podczas instalacji wyskoczy zapytanie o to, jaki serwer www chcemy zrekonfigurować. Zostawiamy puste.

11. VirtualHost dla phpMyAdmin
Ponownie edytujemy plik default w /etc/nginx/sites-available i dodejmy między pierwszym "serverem", a "upstream"

vim /etc/nginx/sites-available/default

server {
listen   80;
server_name  phpmyadmin.domena.pl;
access_log  /var/log/nginx/phpmyadmin.access.log;

location / {
root /usr/share/phpmyadmin;
index index.php;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass   backend;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /usr/share/phpmyadmin$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors        on;
fastcgi_ignore_client_abort     off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}

}

Po zapisaniu pliku restartujemy Nginx'a:

/etc/init.d/nginx restart

i wchodzimy na

Kod:

http://phpmyadmin.domena.pl

To byłoby na tyle :).


Przydatne linki:
http://wiki.nginx.org/
http://www.linux.rk.edu.pl/w/p/wprowadzenie-do-nginx/
edit: zamiana apt-get'ow na aptitude, dodanie przydatnych linków

Ostatnio edytowany przez piotrd14 (2010-11-05 17:57:56)

Offline

 

#2  2010-11-05 16:21:03

  Yampress - Imperator

Yampress
Imperator
Zarejestrowany: 2007-10-18

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

moze tak opiszesz  konfiguracje nginxa z php  poprzez unix sockety ??

Offline

 

#3  2010-11-05 17:27:34

  mareq - Członek DUG

mareq
Członek DUG
Zarejestrowany: 2010-10-19

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

.

Ostatnio edytowany przez mareq (2013-11-14 06:36:53)

Offline

 

#4  2010-11-05 18:02:04

  piotrd14 - Nowy użytkownik

piotrd14
Nowy użytkownik
Zarejestrowany: 2010-11-04

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

@Yampress - to miał być poradnik jak najprościej zainstalować nginx'a z działającym PHP. Jak ktoś chce się bawić możliwościami jakie daje nginx to najlepiej niech zajrzy do "źródła".

@mareq - już poprawiłem - dzięki ;).

Offline

 

#5  2010-11-05 18:32:51

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

A  fastcgi przez tcp - to łatwe i proste rozwiązanie?
Ani specjalnie wydajne, ani proste w konfiguracji.

O ile się nie mylę, paczka php5-fpm istnieje dla Debiana, i działa.
A konfig nginxa do pracy z php-fpm poprzez socket jest na forum, wystarczy poszukać.
Np tutaj: http://forum.dug.net.pl/viewtopic.php?id=17253

To by było na tyle
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2010-11-05 19:38:02

  Yampress - Imperator

Yampress
Imperator
Zarejestrowany: 2007-10-18

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

konfiguracja ngixa z php_fpm łatwiejsza  nizkonfiguracja jego z spawn_fcgi lightowym
jak nie wydajne to !!!  bardzo wydajne a do tego bezpieczne !
Osobiście inaczej bym konfigurował. Ale idea przekazana konfiguracji jest ok
nginx w testach lepiej wypada niz lighttpd. Osobbiscie wole go niz lightiego. Ma prostszy config i pracuje na bardzo obciazonych serwisach  :)

Offline

 

#7  2010-11-06 00:21:46

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

Tyle, że php - to taki dziwny i mało czytelny język . :)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#8  2010-11-07 10:51:07

  Yampress - Imperator

Yampress
Imperator
Zarejestrowany: 2007-10-18

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

@czadman ale ile rzeczy na nim stoi ??

Offline

 

#9  2010-11-07 11:11:05

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

Yampress napisał(-a):

@czadman ale ile rzeczy na nim stoi ??

To niczego z tych rzeczy nie zmienia.

Offline

 

#10  2010-11-10 13:45:47

  surg - Nowy użytkownik

surg
Nowy użytkownik
Skąd: Warszawa
Zarejestrowany: 2010-06-06

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

2 miesiące temu pisałem na ten temat na swoim blogu.
(Debian + Nginx + PHP5) HOWTO
Serdecznie zapraszam

Offline

 

#11  2010-11-10 14:12:33

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

I skopiowałeś ten sam bzdurny zapis, powielany wszędzie:

Kod:

fastcgi_pass   127.0.0.1:9000;

Fastcgi - działa na porcie 9000 i adresie 127.0.0.1.
gdzie jest bzdurny element tego rozwiązania?
Nawiązanie połączenia tcp - pakiet syn, ack, syn-ack i czas nawiązania takiego połączenia.
Zwykła strata czasu.

php-fpm przez socket unix zjada takie rozwiązanie na śniadanie, ponieważ nie wymaga nawiązywania sesji tcp, wysyła kod do gniazda, wraca odpowiedź.

Ale ja rozumiem, ze łatwiej skopiować przestarzały przepis z przed 2 lat, zamiast zaproponować coś bezpieczniejszego, wydajniejszego i aktualnego.

Tylko nazywanie takich wypocin poradnikami i howto lub tutorialami, bez uprzedzenia o wątpliwej jakości i aktualności takiego dokumentu (poradnika, tutoriala, howto), jest w mojej opinii szczytem lamerstwa (aby nie powiedzieć dosadniej).

To tak trudno w konfigu php-fpm wpisać:

Kod:

listen = /var/run/php.sock

a w konfigu nginxa:

Kod:

fastcgi_pass unix://var/run/php.sock;

Czy może po prostu ktoś nie potrafi nic innego, poza kopiowaniem tekstu ze starych przepisów, których jest pełno w internecie?

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2010-11-10 14:13:30)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2010-11-10 15:18:06

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

jak juz jestemy przy temacie nginx'a to mam pytanie, jak jest z regulami rewrite? czy przeczyta te apacha czy tez nie? poniewaz zastanawiam sie czy przesiasc sie na niego tylko trzyma mnie ten re-write i nie ukrywam, ze ten ichniejszy re-write jest troszke pokrecony


LRU #480459

Offline

 

#13  2010-11-10 15:29:21

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

to i ja się dołączę z podobnym pytankiem co jezoo :)

.htaccess to wymysł apacza a czy któryś z serwerów jeszcze go obsługuje ? AFAIR LiteSpeedWebServer w wersji komercyjnej chyba go łapie, ale jakoś nie mam potrzeby płacić za lickę :P Aż takiego ruchu na maszynie nie mam.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#14  2010-11-10 16:32:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [how-to] Nginx + PHP5 + MySQL + phpMyAdmin

Do nginxa widziałem kiedyś skrypt php parsujący htacces, ale nie jest do doskonałe rozwiązanie.
Ja osobiście uważam htaccess (parsowane na sposób apacha) za głupotę i lamerstwo.
Znacznie lepiej zaincludować w konfigu apacha plik, zawierający te same reguły umieszczone w znacznikach directory, i wczytywane przy restarcie, czy przeładowaniu konfiguracji.

Parsowanie pliku przy każdym wejściu do folderu, to IMHO strata czasu, pomijając skutek, kiedy do htaccesa dobierze się jakiś skrypciarz.

Co do rewrite, każde wywołanie GET czy POST w nginxie można potraktować regexem, włącznie z przepisaniem adresu, składnia wyrażenia jest zbliżona do perla, ale różni się trochę od mod_rewrite.
Skladnia samego wyrażenia jest bardziej zgodna z perlem, aniżeli w mod-rewrite.

Sznurek: http://wiki.nginx.org/NginxHttpRewriteModule

Co się tyczy modułów, to ich już nie brakuje, mam tylko nadzieję, że nginx nie stanie się taki ciężki, jak apache w obecnej wersji.

Ostatnio edytowany przez Jacekalex (2010-11-20 21:06:19)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)