Używam Ubuntu Server 10.10 i chciałbym skonfigurować środowisko serwera WWW z NginX , PHP 5.3.3, PostgreSQL, a najlepiej APC i PHP Suhosin.
Już skonfigurowałem PostgreSQL z apt-get install postgresql
i Nginx z apt-get install nginx
.
Ale jak skonfigurować dla nich PHP? Czy mogę to zrobić za pomocą, apt-get install
czy muszę pobrać źródła i skompilować? Wolałbym to zrobić za pomocą apt-get
.
Chciałbym użyć PHP-FPM dla Nginx. Większość samouczków, które znalazłem w Internecie, są stare i kompilują PHP, ale nie jest to zalecane dla serwerów produkcyjnych.
Jak najłatwiej skonfigurować PHP z Nginx, APC i PostgreSQL? a przynajmniej PHP-FPM + Nginx?
AKTUALIZACJA
Zainstalowałem teraz nowy Ubuntu Server 10.10 i wykonałem polecenie, które Peterphp5-suhosin
dodał z dodanym. Po tym Nginx działa dobrze, a następnie edytuję wygenerowany plik konfiguracji tak, jak poniżej. Po przeładowaniu nowego pliku konfiguracyjnego Nginx nadal działa poprawnie przy użyciu index.html
pliku, ale kiedy dodam index.php
plik, przestaje działać. Myślę, że ma to związek z PHP-FPM, APC lub czymś związanym z PHP. Ale może to być również plik konfiguracyjny dla PHP-FPM.
Oto plik konfiguracyjny dla Nginx, którego używam, większość z nich jest generowana domyślnie. Pominąłem komentarze.
server {
listen 80;
listen [::]:80 default ipv6only=on;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location /favicon.ico {
empty_gif;
}
location / {
root /var/www;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Odpowiedzi:
Począwszy od Ubuntu 10.10, jest to banalne w przypadku nowego pakietu php5-fpm
Następujące pakiety robią wszystko, czego potrzebujesz
nginx
- serwer WWWphp5-fpm
- Serwer php Fast-CGIphp-apc
- Pakiet APC dla phpphp5-pgsql
- Moduł PostgreSQL dla PHPpostgresql
- Serwer bazy danych PostgreSQLWszyscy razem
sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql
Sugeruję również sprawdzenie, czy apache2 jest zainstalowany. Jeśli tak, usuń go,
sudo apt-get remove apache2
aby uniknąć rywalizacji Apache i Nginx o port 80.Zauważ też, że standard xdebug również chce używać portu 9000, podobnie jak php5-fpm. Więc jeśli używasz xdebug, zmień ten port na przykład na 9001
Jako bonus przykładowa konfiguracja nginx (umieść ją w / etc / nginx / sites-available i dowiązaj symbolicznie do / etc / nginx / sites-enabled)
źródło
test.php
plik, ale to nie działa. Moja przeglądarka mówi „uszkodzony link”, aw dzienniku błędów Nginx jest tylko wpis o „favicon.ico”. Wydaje mi się, że coś jest z moim plikiem konfiguracyjnym, ale tak naprawdę nie mam pojęcia i bardzo trudno jest znaleźć błąd.sudo service nginx start
isudo service php5-fpm start
powinien wykonać pracę. Oczywiście, uważaj na wszelkie błędy, jakie mogą popełnić.sudo service nginx reload
). Jeśli wszystko inne zawiedzie, być może możesz dodać plik konfiguracyjny do pytania..html
plikami, ale nie działa z.php
plikami.