Установка ПО · 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 /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo 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” (

Шаг 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, чтобы перезаписи работали.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.