Установка nginx php fpm debian

Установка и настройка: Nginx + php5-fpm

В данной заметке, будет показано как поставить связку Nginx + php5-fpm (php5.3) на Debian Lenny и настроить безопасную конфигурацию.

Установка и настройка

Важно: все команды от root’а.

Добавляем репозитарии и генерируем ключи:

echo "deb http://backports.debian.org/debian-backports lenny-backports main" >> /etc/apt/sources.list echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | apt-key add -
aptitude install -t lenny-backports "nginx" apt-get install php5-cli php5-common php5-suhosin apt-get install php5-fpm php5-cgi
user www-data; worker_processes 1; # Ставим число по количеству ядер timer_resolution 100ms; worker_rlimit_nofile 8192; worker_priority -5; #Увеличитвваем приоритет error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events < worker_connections 1024; >http < include /etc/nginx/mime.types; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_min_length 1100; #gzip_disable "msie6"; #Быстрее, но работает только на новых версиях nginx gzip_disable "MSIE 4\.(. *SV1)"; gzip_proxied any; gzip_comp_level 4; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_vary on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; >

Пример конфига

Конфиг для использования с CMS WordPress, с учетом использования chroot /etc/nginx/sites-enabled/example.ru :

server < listen 80; server_name www.example.ru; rewrite ^ http://example.ru$request_uri? permanent; #301 redirect >server < listen 80; server_name example.ru; root /var/www/example.ru; index index.php; location / < try_files $uri $uri/ /index.php?q=$uri&$args; >location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ < access_log off; expires max; >location ~ \.php$ < # fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /example.ru; fastcgi_param SCRIPT_FILENAME /example.ru$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /example.ru$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; >location = /favicon.ico < log_not_found off; access_log off; >location = /robots.txt < allow all; log_not_found off; access_log off; >## Disable viewing .htaccess & .htpassword location ~ /\.ht < deny all; >>
apt-get install mysql-server mysql-client php5-mysql mkdir -p /var/www/var/run/mysqld mount --bind /var/run/mysqld/ /var/www/var/run/mysqld/
mkdir -p /var/www/example.ru echo "" >/var/www/example.ru/index.php
/etc/init.d/nginx restart /etc/init.d/php5-fpm restart

Безопасность

chown -R www-data /var/www/example.ru && chmod -R 750 /var/www/example.ru

Включим использование chroot, для ограничения доступа PHP к системе. Для этого редактируем файл /etc/php5/fpm/php5-fpm.conf, прописываем:

mkdir /var/www/; cp /etc/hosts /var/www/etc/hosts; cp /etc/resolv.conf /var/www/etc/resolv.conf; cp /lib/libnss_dns.so.2 /var/www/lib/libnss_dns.so.2 //ваша система 32 битная cp /lib64/libnss_dns.so.2 /var/www/lib64/libnss_dns.so.2 //ваша система 64 битная

Заходим на страницу нашего сайта example.ru и любуемся на вовод phpinfo() нашего сайта.
P.S. C настройками мне помог разобраться inkvizitor68sl автор блога Debian.pro.
NEW:

Читайте также:  cursor

Установка Nginx 0.8.54

apt-get update apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libmcrypt-dev libmhash2 libmhash-dev libpcre3 libpcre3-dev make wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz tar zxf nginx-0.8.54.tar.gz cd nginx-0.8.54 ./configure \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-log-path=/var/log/nginx/access.log \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --lock-path=/var/lock/nginx.lock \ --pid-path=/var/run/nginx.pid \ --with-debug --with-http_dav_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_sub_module make && make install

Debian «Squeeze»

echo "deb http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list wget http://www.dotdeb.org/dotdeb.gpg && cat dotdeb.gpg | apt-key add - && aptitude update

UPD: Добавил пару строк в установку mysql, указание в настройках localhost теперь работает. Спасибо inkvizitor68sl.

Источник

Установка

До окончания настроек рекомендуется остановить nginx и php-fpm:

/etc/init.d/nginx stop; /etc/init.d/php5-fpm stop;

Конфигурирование

Конфигурирование nginx

Нужно создать location в котором указать рабочую директорию для php скриптов (например /home/www-data/mysite ) и параметры соединения с php-fpm:

server #имя сервера: server_name mysite.com; #логи access_log /var/log/nginx/mysite.access.log; error_log /var/log/nginx/mysite.error.log; # корневая директория root /home/www-data/mysite; location ~ \.php$ try_files $uri = 404; include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; > # порядок индексов location / index index.php index.html index.htm; > #кастомная страница 404 location /errors alias /home/www-data/mysite/errors ; > error_page 404 /errors/404.html; >

Конфигурирование php-fpm

  • static — фиксированное число дочерних процессов (определяться параметром pm.max_children);
  • dynamic — число дочерних процессов определяется на основе следующих директив. В этом режиме всегда будет хотя бы 1 дочерний процесс.
  • ondemand — по требованию, дочерние процессы не будут созданы при старте. Дочерние процессы создаются при помощи fork, когда приходит новый запрос на соединение.

По умолчанию соединение происходит через Unix-сокеты, unix:/var/run/php5-fpm.sock;

Более подробную информацию о директивах конфигурационного файла Вы можете найти на сайте проекта php-fpm configuration file.

См. также

Источник

Установка NGINX и PHP-FPM на Debian 10

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.

user@debian:~# sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
user@debian:~# sudo ufw allow 'Nginx FULL'

Устанавливаем PHP-FPM

Поскольку Nginx не содержит нативную обработку PHP, нам нужно установить fpm, что означает «менеджер процессов fastCGI». Мы скажем Nginx передать PHP-запросы этому программному обеспечению для обработки

user@debian:~# apt install php-fpm
user@debian:~# apt install php-mysql php-bcmath php-ctype php-json php-mbstring php-pdo php-tokenizer php-xml php-curl

Настраиваем NGINX

user@debian:~# sudo mkdir -p /var/www/%site_name%/
user@debian:~# sudo nano /etc/nginx/sites-available/%site_name%.conf server < listen 80; listen [::]:80; root $root_path; set $root_path /var/www/%site_name%/htdocs; set $php_sock unix:/var/run/php/php7.3-fpm.sock; index index.php index.html index.htm; server_name %site_name%; access_log /var/www/%site_name%/logs/access.log; error_log /var/www/%site_name%/logs/error.log; location / < try_files $uri $uri/ =404; >location ~ \.php$ < include snippets/fastcgi-php.conf; fastcgi_pass $php_sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; >>
user@debian:~# sudo ln -s /etc/nginx/sites-available/%site_name%.conf /etc/nginx/sites-enabled/
user@debian:~# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
user@debian:~# systemctl restart nginx php7.3-fpm
user@debian:~# sudo nano /etc/hosts 127.0.0.1 %site_name%

У блога появился новый хостинг от компании Selectel.
Нашли интересную или полезную информацию в блоге? Хотели бы видеть на нем еще больше полезных статей? Поддержи автора рублем. Если вы размещаете материалы этого сайта в своем блоге, соц. сетях, и т.д., убедительная просьба публиковать обратную ссылку на оригинал.

Похожие записи

Установка LAMP (Linux, Apache, MySQL, PHP)

Установка LAMP (Linux, Apache, MySQL, PHP)

Добавляем репозиторий Atomic
[root@virtual ~]# wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh[root@virtual ~]# sh atomic.sh
Устанавливаем пакеты:
[root@virtual ~]# yum -y install httpd php mysql mysql-server php-mysql php-pear php-pdo php-pgsql php-pecl-memcache php-gd php-mbstring php-mcrypt php-xml
Запускаем MySQL:
[root@virtual ~]# service mysqld start
Задаем root-пароль для MySQL:
[root@virtual ~]# mysqladmin -u root password ‘ENTER-PASSWORD-HERE’
Коннектимся к MySQL и удаляем тестовую базу
[root@virtual ~]# mysql -u …

Установка PostgreSQL из исходников, и запуск двух версий на одном сервере в Centos 8

Установка PostgreSQL из исходников, и запуск двух версий на одном сервере в Centos 8

PostgreSQL from sources PostgreSQL — свободная объектно-реляционная система управления базами данных, наиболее развитая из открытых СУБД и являющаяся реальной альтернативой коммерческим базам данных. PostgreSQL базируется на языке SQL. Подготовка Устанавливаем необходимые пакеты $ sudo dnf -y install gcc make readline-devel zlib-devel systemd-devel Создаем системного пользователя postgres $ sudo useradd -M -s -d /var/lib/postgresql postgres Создаем каталог для логов PostgreSQL и назначаем права $ …

Установка почтового сервера iRedMail на CentOS 7. Часть 4. Настройка Postfix, авторизация без ввода домена

Установка почтового сервера iRedMail на CentOS 7. Часть 4. Настройка Postfix, авторизация без ввода домена

Установка почтового сервера iRedMail. Настройка Postfix, авторизация без ввода домена Postfix — агент передачи почты (MTA — mail transfer agent). Postfix является свободным программным обеспечением, создавался как альтернатива Sendmail. Изначально Postfix был разработан Вейтсом Венемой в то время, когда он работал в Исследовательском центре имени Томаса Уотсона компании IBM. Цикл статей по установке и настройке почтового сервера …

Установка Docker Compose в Centos 7

Установка Docker Compose в Centos 7

Docker, Docker Compose Docker Compose – пакетный менеджер позволяющий описывать необходимую структуру в одном файле (конфиге). Установка Docker Устанавливаем необходимые пакеты $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 Добавляем репозиторий docker-ce $ sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo Устанавливаем Docker-CE $ sudo yum install -y docker-ce Добавляем нашего пользователя, под которым настраиваем ОС, в группу Docker $ sudo usermod -aG docker $(whoami) Применяем изменения к группам $ newgrp …

Автоматическое переподключение WireGuard при обрыве соединения

Автоматическое переподключение WireGuard при обрыве соединения

WireGuard auto reconnect Протокол WireGuard VPN разработан без сохранения состояния. Соединения рассматриваются как интерфейс — когда они активны, они всегда остаются активными. Если соединение с VPN-сервером потеряно, интернет-соединение перестает работать до тех пор, пока VPN-сервер снова не станет доступным. Как только VPN-сервер снова становится доступным, WireGuard повторно устанавливает VPN-соединение, и трафик снова начинает проходить. Иногда возникают ситуации, …

Источник

Оцените статью