Установка ПО · 3 min read · Jan 23, 2026
Установка PHP 5.3, Nginx и PHP-fpm на Ubuntu/Debian
Установка PHP 5.3, Nginx и PHP-fpm на Ubuntu/Debian
Версия 1.1
Следите за мной в Twitter
Поскольку Apache чаще всего является процессом, требующим много памяти, люди начали искать различные способы размещения своих веб-сайтов. Apache явно не единственный доступный веб-сервер. Несколько хороших примеров — lighttpd и nginx. В этом руководстве я покажу вам, как установить его на ваш сервер Ubuntu. Это руководство также применимо к Debian, хотя и есть лишь небольшая разница.
Готовы? Давайте начнем.
Шаг 0 - Предварительные заметки
Для завершения этого руководства я предполагаю, что вы установили базовую систему Debian или Ubuntu. Как это можно сделать, можно прочитать в различных руководствах. Это руководство сосредоточено на том, чтобы запустить nginx+php без особых хлопот.
Шаг 1 - Nginx
Установка nginx — это первый шаг, который мы должны сделать. Это можно легко сделать, скачав его из репозитория.
sudo apt-get install nginxНеобходимо изменить конфигурацию vhost, чтобы она работала правильно.
sudo vim /etc/nginx/sites-available/defaultХорошей отправной точкой для вашей конфигурации будет:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
## Стандартное местоположение
location / {
root /var/www;
index index.php;
}
## Изображения и статический контент обрабатываются иначе
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}
## Обработка всех .php файлов в директории /var/www
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
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;
}
## Отключить просмотр .htaccess и .htpassword
location ~ \/\.ht {
deny all;
}
}
upstream backend {
server 127.0.0.1:9000;
}
Хорошо, мы закончили здесь. Теперь мы установим необходимые файлы для PHP.
Шаг 2 - Установка PHP
Многие сайты полагаются на PHP для предоставления им динамического контента, будь то вики, программное обеспечение форума, веблог или что-то совершенно другое.
Если вы используете Ubuntu, сначала нам нужно решить две зависимости, необходимые для пакетов dotdeb. Если вы используете версию amd64, вам следует заменить i386 на amd64.
Для Debian вам не нужно это делать!
cd /tmpwget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.debwget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.debsudo dpkg -i *.debСнова, это только необходимо, если вы на Ubuntu.
Остальная часть руководства применима как к Ubuntu, так и к Debian.
Нам нужно добавить репозиторий dotdeb в источники APT, чтобы мы могли использовать их упакованный PHP 5.3 и php-fpm:
sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.listОбновите apt:
sudo apt-get updateПолученный текст должен включать dotdeb.
Теперь мы установим PHP (часть 1):
sudo apt-get install php5-cli php5-common php5-suhosinМы должны установить cli перед остальными, потому что это вызовет проблемы позже.
sudo apt-get install php5-fpm php5-cgiЕсли вы планируете использовать базу данных или требуете специфические модули (mcrypt, ldap, snmp и т.д.), вы также можете установить их.
Хорошо, теперь у нас есть nginx и PHP.
Одно небольшое замечание: если вы используете “короткие теги php” ( ), вы должны включить их в ваши файлы php.ini (как для fpm, так и для cli). Если вы не измените это, вы увидите ваш код в обычном тексте!
Шаг 3 - Завершение
Перезапустите nginx, чтобы учесть изменения конфигурации, которые мы сделали ранее.
sudo /etc/init.d/nginx restartПерезапуск должен пройти без каких-либо проблем.
После установки php5-fpm он должен был быть запущен. Если вы изменили ваши файлы php.ini, вам нужно перезапустить php5-fpm.
sudo /etc/init.d/php5-fpm restartХорошо. Теперь они оба должны работать.
Шаг 4 - Тестирование
Чтобы протестировать, работает ли выполнение PHP, создайте файл index.php в /var/www со следующим содержимым:
Посетите ваш веб-сервер, и вы должны увидеть сгенерированный phpinfo. Если нет, что-то пошло не так.
Шаг 5 - Устранение неполадок и заключительные заметки
Если вы не увидели phpinfo, возможно, что-то пошло не так. Чтобы выяснить, что именно, вы можете проверить журнал ошибок nginx:
sudo tail /var/log/nginx/error.logПомните, если вы изменили ваш php.ini, вам нужно перезапустить php5-fpm. Перезапуск nginx не требуется.
В моем примере конфигурации я включил перехват ошибок fastcgi. Если возникает серьезная ошибка (например, “невозможно повторно объявить класс xyz”), nginx может поймать эту страницу и показать “приятную” страницу ошибки, что-то пошло не так. Таким образом, предоставляется меньше информации в случае серьезной ошибки.
Если вам это не нравится, вы можете отключить это.
Если php5-fpm не работает, ваши PHP файлы не могут быть обработаны, и nginx покажет пользователю страницу ошибки.
Ну что ж, я думаю, мы закончили, и теперь вы можете обслуживать PHP с вашим новым веб-сервером на базе nginx. Nginx довольно хорош, и вы можете настроить много. Если вам нужны перезаписи, имейте в виду, что nginx не работает с файлами .htaccess. Вам нужно будет изменить настройки вашего vhost, чтобы перезаписи работали.
Get new posts in your inbox
No spam. Unsubscribe anytime.