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 [url]http://www.piotrdyduch.pl/debian-ubuntu-instalacja-nginx/[/url] .
Dodatkowo na blogu instalacja [url=http://www.piotrdyduch.pl/debian-ubuntu-instalacja-lamp-mail-roundcube/]LAMP, MAIL, RoundCube[/url]

A więc do roboty :)

[b]1. Repozytoria[/b]

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

Tutaj podam cały:

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

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

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

deb [url]http://backports.debian.org/debian-backports[/url] lenny-backports main

deb [url]http://php53.dotdeb.org[/url] stable all
deb-src [url]http://php53.dotdeb.org[/url] stable all[/quote]
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 -[/quote]
[b]2. Aktualizacja[/b]
Teraz musimy zaktualizować system:

aptitude update
aptitude upgrade[/quote]
[b]3. MySQL[/b]
Instalujemy bazę danych MySQL

aptitude install mysql-server mysql-client[/quote]
[b]4. Instalacja Nginx[/b]
"Apache killera" zainstalujemy z backport's (bardziej aktualny niż z podstawowych repo).

aptitude -t lenny-backports install nginx[/quote]
[b]5. VirtualHost[/b]
Tworzymy VirtualHosta dla [i][url]www.domena.pl[/url][/i] (z przedrostkiem www)

vim /etc/nginx/sites-available/default[/quote]

server {
listen 80;
server_name [url]www.domena.pl;[/url]
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;
}[/quote]
[b]6. Instalacja PHP[/b]
PHP-FPM jest gotowym "rozwiązaniem" do komunikacji między nginx a PHP w wersji FastCGI.

aptitude install php5-fpm[/quote]
[b]7. Restart[/b]
Restartujemy Nginx i PHP-FPM

/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart[/quote]
[b]8. Moduły PHP[/b]
Zainstalujemy podstawowe moduły PHP.

aptitude install php5-mysql php5-ldap php5-imap php5-curl php-pear[/quote]
Po zainstalowaniu należy zrestartować PHP-FPM (j.w.)

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

vim /var/www/www.domena.pl/index.php[/quote]
i wpisujemy:

<?php
phpinfo();
?>[/quote]
Jeżeli wszystko działa poprawnie to zobaczymy stronę z konfiguracją PHP :).

[b]10. phpMyAdmin[/b]
Standardowa instalacja:

aptitude install phpmyadmin[/quote]
Podczas instalacji wyskoczy zapytanie o to, jaki serwer www chcemy zrekonfigurować. Zostawiamy puste.

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

vim /etc/nginx/sites-available/default[/quote]

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;
}

}[/quote]
Po zapisaniu pliku restartujemy Nginx'a:

/etc/init.d/nginx restart[/quote]
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/
[i]edit: zamiana apt-get'ow na aptitude, dodanie przydatnych linków[/i]

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/urandom
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 . :)


[url=http://www.debian.org/][img]http://www.debian.org/logos/openlogo-nd-50.png[/img][/url]

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

[quote=Yampress]@czadman ale ile rzeczy na nim stoi ??[/quote]
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.
[url=http://www.chalapuk.pl/2010/09/debian-nginx-php5-howto/](Debian + Nginx + PHP5) HOWTO[/url]
Serdecznie zapraszam

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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


[img]http://intershock.pl/images/icons/freebsd.jpg[/img] [img]http://www.the-eleven.com/site_media/static/img/postgresql_powered.png[/img] [img]http://www.wwgmc.com/images/badge_php.gif[/img]
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
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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 [url=http://wiki.nginx.org/Modules][b]modułów[/b][/url], 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
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.010 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00132 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.78.12' WHERE u.id=1
0.00066 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.78.12', 1738357542)
0.00064 SELECT * FROM punbb_online WHERE logged<1738357242
0.00068 SELECT topic_id FROM punbb_posts WHERE id=157749
0.00004 SELECT id FROM punbb_posts WHERE topic_id=17678 ORDER BY posted
0.00058 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17678 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00230 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17678 ORDER BY p.id LIMIT 0,25
0.00084 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17678
Total query time: 0.00728 s