Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [DokuWiki] Apache czy Nginx
Forum PHP.pl > Forum > Serwery WWW
CarlBraniewski
Witam wszystkich serdecznie.

Chcę stworzyć stronę www na podstawie DokuWiki.

Wymagania: http://www.dokuwiki.org/pl:requirements
Strona projektu: http://www.splitbrain.org/projects/dokuwiki

I teraz pytanie, jaki serwer www wybrać aby spełniał podane w pierwszym linku wymagania? Czy nginx je spełnia, bo apache to na pewno, zresztą on jest zalecany. Który serwer www lepiej wybrać do takiego celu, bo ostatnio wiele o uszy obiło mnie się, że apache wymięka, co zresztą widziałem na statystykach wydajności, no ale tutaj chyba nie jest to ważne?

Z góry dziękuję za podpowiedzi.
erix
http://lmgtfy.com/?q=nginx%20dokuwiki

To chyba rozwieje Twoje wątpliwości. [;
CarlBraniewski
Okay wybrałem nginx + php5, ten pierwszy zainstalował się bez problemu, ale php5, wyrzuciło:

Kod
Rozpakowanie php5-common (z .../php5-common_5.2.9.dfsg.1-4_amd64.deb) ...
Zaznaczenie poprzednio niezaznaczonego pakietu libapache2-mod-php5.
Rozpakowanie libapache2-mod-php5 (z .../libapache2-mod-php5_5.2.9.dfsg.1-4_amd64.deb) ...
Zaznaczenie poprzednio niezaznaczonego pakietu php5.
Rozpakowanie php5 (z .../php5_5.2.9.dfsg.1-4_all.deb) ...
Przetwarzanie wyzwalaczy dla man-db...
Konfigurowanie libapr1 (1.3.3-4) ...
Konfigurowanie libaprutil1 (1.3.4+dfsg-2) ...
Konfigurowanie libaprutil1-dbd-mysql (1.3.4+dfsg-2) ...
Konfigurowanie libaprutil1-ldap (1.3.4+dfsg-2) ...
Konfigurowanie apache2.2-bin (2.2.11-5) ...
Konfigurowanie apache2-utils (2.2.11-5) ...
Konfigurowanie apache2.2-common (2.2.11-5) ...
Konfigurowanie apache2-mpm-prefork (2.2.11-5) ...
Starting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
.
dpkg: --compare-versions wymaga podania trzech argumentów: <wersja> <relacja> <wersja>

Wpisz dpkg --help, aby dowiedzieć się jak (od)instalować pakiety [*];
Użyj "dselect" lub "aptitude", jeśli potrzebujesz wygodnego programu
do zarządzania pakietami;
Wpisz  dpkg -Dhelp, aby dowiedzieć się o opcjach debuggera;
Wpisz  dpkg --force-help, aby dowiedzieć się, jak ignorować problemy;
Wpisz  dpkg-deb --help, aby dowiedzieć się, jak operować plikami *.deb;
Wpisz  dpkg --licence, aby poznać warunki licencji i gwarancji (GNU GPL) [*].

Opcje oznaczone [*] podają dużo treści - skieruj potok na "less" lub "more"!
Konfigurowanie php5-common (5.2.9.dfsg.1-4) ...
Konfigurowanie libapache2-mod-php5 (5.2.9.dfsg.1-4) ...
Reloading web server config: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
.
Konfigurowanie php5 (5.2.9.dfsg.1-4) ...
Czytanie list pakietów... Gotowe                    
Budowanie drzewa zależności      
Odczyt informacji o stanie... Gotowe
Odczyt dodatkowych informacji o stanie      
Inicjalizacja stanów pakietów... Gotowe
Zapisywanie dodatkowych informacji o stanie... Gotowe
Odczyt opisów zadań... Gotowe


Dlaczego na siłę chce mi startować Apache2?
erix
Nie instaluj z paczek, skompiluj ze źródeł.

A instaluje siłą, gdyż wrzucasz libapache2-mod-php5; nie wiem, czy zależności tego wymagają, ale jeśli tak - zostaje tylko kompilacja.
atsuki
jezeli nginx + php.. to php musi dzialac jako fast-cgi. Inaczej nie da rady. Ta jak erix pisze nie instaluj php z paczek, trzeba skompilować samodzielnie, licząc wiele roboty nie ma. Jak jeszcze mogę coś doradzić, to lepiej od zwykłego php zainsteresować się php-fpm. Małe how to - klik. Nie jest to nic trudnego do zrobienia, a wydajnościowo o wiele lepsze. Nginx tez nie instaluje z paczek, to w repo jest stare jak świat. Tez skompiluj samodzielnie.

linki:
nginx
php-fpm
CarlBraniewski
Atsuki dzięki za linka do how-to, zatrzymałem się w tym momencie:

Cytat
- Then we setup PHP-FPM, choosing the user php-cgi should run as:
vi /usr/local/etc/php-fpm.conf
:63
www-data
:66
www-data

In the php-fpm.conf you also may be interested to setup an appropriate number of workers (default is 5).
This is a quote from PHP-FPM author and developer, Andrei Nigmatulin :

The practical approach is
1) watching 'top' for running php-cgi workers
2) watching 'netstat -np | grep 127.0.0.1:9000' for fastcgi connections (if in linux):

tcp 0 0 127.0.0.1:9000 127.0.0.1:59053 ESTABLISHED 21881/php-cgi
tcp 0 0 127.0.0.1:9000 127.0.0.1:59057 ESTABLISHED -

The first line corresponds to accepted fastcgi connection and the second is
still waiting in a backlog (not accepted).
You'll need to set higher max_children in php-fpm.conf in order to minimize amount of awaiting connections.


A głównie to ta część (poniżej) mnie interesuje bo druga część to tylko cytat jak sprawdzić czy php-cgi pracuje z tego co widzę.

Cytat
vi /usr/local/etc/php-fpm.conf
:63
www-data
:66
www-data


Nie bardzo rozumiem co zrobic? Coś modyfikować czy olać to i przejsć dalej? Mój plik /usr/local/etc/php-fpm.conf:
http://wklej.to/e1Ka

Później gdy wykonam polecenie 'phpize' to otrzymuję:
Cytat
Cannot find config.m4.
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module
atsuki
63 i 66 to numery lini. musisz odkomentowac, usunac <!-- na poczatku i koncy tych lini. W liniach ustalasz tez usera na ktorego prawach bedzie chodzilo php-fpm.

Co do phpsize. tam jest blad w how to. Pierw musisz wejsc do katalogu xcache po rozpakoaniu i dajesz phpsize.
CarlBraniewski
Wybacz mój nieprofesjonalizm, ale nigdy nie miałem z tym do czynienia, jedynie na wikidot.com - a tam jest to banalne.

1. Użytkownika i grupę mam wpisać "www-data"? I później w pliku /usr/local/nginx/conf/ngingx.conf też? Bo cały ten plik zastąpiłem wpisem z how to.

2. To:
Kod
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

dopisałem na końcu pliku w /usr/local/nginx/conf/fastcgi_params

3. Plik wordpress-domain.ext utworzyć mam w katalogu /sites-enabled, a jego gdzie, w /usr/local/nginx?

W "server_name" podaję nazwę domeny jaką mam sobie wykupić? I to w przykładzie jest "www.wordpress-domain.ext"?

Ta linijka:
"server_name www.wordpress-domain.ext;"
atsuki
Cytat(CarlBraniewski @ 17.06.2009, 15:42:46 ) *
1. Użytkownika i grupę mam wpisać "www-data"? I później w pliku /usr/local/nginx/conf/ngingx.conf też? Bo cały ten plik zastąpiłem wpisem z how to.

Uzytkownika wpisujesz wedle uznania. Na prawach tego uzytkownika będzie działo ci php. A użytkownika którego wpiszesz w configu nginxa to na prawach tego usera będzie działał nginx. Jakiego usera wpiszesz... to zalęzy od ciebie smile.gif. apache ma standardowo np www-data, autor how to zrobił usera tak jak to ma apacha. A, pamietaj aby ten user istniaj w systemie tongue.gif

Cytat
2. To:
Kod
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

dopisałem na końcu pliku w /usr/local/nginx/conf/fastcgi_params

OK

Cytat
3. Plik wordpress-domain.ext utworzyć mam w katalogu /sites-enabled, a jego gdzie, w /usr/local/nginx?

nginx ma troche inaczej.. autor tak zrobil pewnie z przywyczajenia do apacha, ktory ma taki układ plików konfiguracyjnych i virtualhostow. Nginx ma to do siebie, że ma jeden globalny config, w którym jest wszystko. Bajer jest tylko taki, że możesz używać funkcji include wszędzie. A to jak sobie ponazywasz katalogi, czy plik z konfiguracją dla twojej domeny jest bez najmiejszego znaczenia. Zrób tak, jak ci wygodniej i abyś się mógł swobodnie porusząc z zamkniętymi oczami po tym smile.gif. I pamiętaj aby dać dobrą ściężkę w include.


Cytat
W "server_name" podaję nazwę domeny jaką mam sobie wykupić? I to w przykładzie jest "www.wordpress-domain.ext"?

Tak, w server_name dajesz hosta + możesz dać wiećej niż jeden. np domena.pl www.domena.pl *.domena.pl;
linie konczysz zasze ;
CarlBraniewski
Domeny co prawda jeszcze nie opłaciłem, ale php-fpm uruchamia się bez żadnych komunikatów, zaś nginx zwraca:
Cytat
[warn]: duplicate MIME type "text/html" in /usr/local/nginx/conf/nginx.conf:14
[emerg]: host not found in "domain.ext:80" of the "listen" directive in /usr/local/nginx/sites-enabled/moja.net:3


A plik /usr/local/nginx/sites-enabled/moja.net wygląda tak:
Kod
server {
listen domain.ext:80
server_name www.moja.net;
index index.php;
root /var/www/moja-domain;
location / {
error_page 404 = //index.php?q=$uri;
}  
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}  
}
atsuki
brak ; po listen + w listen wpisujesz host / numer ip na którym ma słuchać nginx. czyli jest to host /numer ip twojego serwera. Ewentualnie zostaw sam port 80. Wtedy nginx odpowie na każde zapytanie do serwera.

No i coś masz podwójnie w 14 linijce tongue.gif
CarlBraniewski
1. Właśnie rzecz w tym, że nie mam nic zreplikowanego (przedostatnia linia):
Kod
user carl;
worker_processes 2;
events {
worker_connections 768;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nodelay on;
keepalive_timeout 10 10;
gzip on;
gzip_comp_level 1; gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
include /usr/local/nginx/sites-enabled/*;
}

Ostrzeżenie się pojawia...

2. Zostawiłem samo "80" i błąd zniknął, ale teoretycznie już pytając jaki będzie mój host jeśli wykupiłem domenę w serwisie nazwa.pl przykładowo taką: moja.net

3. Jak sprawdzić czy powyższe w ogóle działa smile.gif. Gdzie wrzucić jakąś przykładową stronę, jest do tego wyznaczony katalog?
atsuki
ad. 1 - gdzies jest powtórzenie, ale z warn da sie zyc smile.gif

ad. 2 - mam nadzieje ze rozróżniasz host / adres ip serwera od domeny?

ad. 3 - a pomyśl do czego może służyć definicja root + fakt, że podajesz w niej ścieżke do katalogu... tak na chłopski rozum smile.gif
CarlBraniewski
Wszystko byłoby okay, bo na localhoscie chodzi, strona się wyświetla. Jednak podając w przeglądarce adres domeny jaką wykupiłem ukazuje się informacja, że nie umieszczono jeszcze żadnej strony.

Przykładowo (działa):
Kod
http://localhost/moja-strona

A tak (nie działa):
Kod
http://moja-domena.net/moja-strona
http://moja-domena.net/

W czym może być problem? Pokazać pliki konfiguracyjne?
erix
A jaki Vhost masz ustawiony? snitch.gif
CarlBraniewski
Założmy, że domena jaką wykupiłem to: proba.net

Domenę mam w nazwa.pl. Mój plik "usr/local/nginx/sites-enabled/proba.net":
Kod
server {
listen 80;
server_name www.proba.net;
index index.php;
root /var/www/proba-domain;
location / {
error_page 404 = //index.php?q=$uri;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}
}

Ustawiałem według tego. Może powinienem zmienić coś w lini:
Kod
location / {

?
erix
A pokaż główną konfigurację.

Z tego, co pamiętam, to chyba jest coś w stylu site-default.
atsuki
Cytat
Wszystko byłoby okay, bo na localhoscie chodzi, strona się wyświetla. Jednak podając w przeglądarce adres domeny jaką wykupiłem ukazuje się informacja, że nie umieszczono jeszcze żadnej strony.


Takie coś jest nie możliwe do uzyskania w nginxie... nginx nie ma takiego "ficzera" że jak katalog pusty to wyswietli cos takiego tongue.gif. Ustaw może rekodzik A dla domeny, aby wskazywal na twoj pececik? Bo to caly czas masz strone u siebie na kompie. Pamietaj oczywiscie o otwarciu portu 80, przekierowaniu jak masz router i inne takie.

Przy okazji sprawdż access.log, czy wogole trafia to do nginxa i mam racje, ze masz zle domene skonfigurowana.

Aby miec logi, dodajsz do server:

Kod
access_log /sciezka_gdzie_ma_zapisac main;
error_log /sciezka_gdzie_ma_zapsiac errror;


jak nie masz skonfigurowanego main, dodajesz w http

Kod
    log_format  main '$remote_addr - $remote_user [$time_local] '
                     '"$request" $status $body_bytes_sent '
                     '"$http_referer" "$http_user_agent"';


sposob logowania i informaje, ilosc profili mozesz sobie ustawiac do woli. Ja uzywam tego, jest zgodny z apache, dzieki temu np i z awstats który robi mi statystyki.

A jak chcesz cokolwiek sprawdzać, sprwdzaj error.log nginxa, tam ci ladnie serwerek wspomni, co mu nie pasi, i jego zapodaj no forum.

a tak na uboczu:
Kod
serwer_name proba.net www.proba.net;


po wszystkich oczywiscie
Kod
nginx -s restart


Cytat(erix @ 24.06.2009, 16:11:32 ) *
A pokaż główną konfigurację.

Z tego, co pamiętam, to chyba jest coś w stylu site-default.


tak.. jest. Jest napis na środku: "Nginx Works" tongue.gif
CarlBraniewski
Nie zastosowałem się jeszcze do ostatnich wskazówek, wciąż pracuję na localhost. Chciałem odpalić php-fpm i nginx i wszystko okay tylko strona się nie wyświetla. Nie robiłem niczego poza standardową edycją stron, a teraz w przeglądarce dostaję:
Cytat
DokuWiki Setup Error

The datadir ('pages') does not exist, isn't accessible or writable. You should check your config and permission settings. Or maybe you want to run the installer?

Rozumiem komunikat, ale nie wiem co jest nie tak jak być powinno.
atsuki
zarowno nginx jak i php-fpm dziala na prawach usera, ktorego wpisales w configach. wyrzuca ci komunikat ze albo serwer, albo php nie ma praw zapisu do katalogu. A pod jakim userem jest dokuwiki.. jakie sa prawa na katalogi, nie wiem. To juz musisz sprawdzic.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.