LINUX.ORG.RU

Nginx + Php-fpm - работают только в  usr

 ,


1

2

Доброго времени суток! Имеется ВМ с Centos 7 minimal, установил nginx, php-fpm, MariaDB. В /etc/php.ini отредактировал cgi.fix_pathinfo=1 на 0. В etc/php-fpm.d/www.conf user и group поменял на nginx. Конфиг nginx -

server {
listen 80;
server_name example.com;
root /mnt/test;

location / {
}

error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}


location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}


С такой конфигурацией отдает статику, для php пишет - "No input file specified."
Если указываю в root стандартную папку nginx - /usr/share/nginx/html или например какую нибудь тестовую папку в /usr-/usr/test скрипт работает. 
php скрипт - 
<?php phpinfo(); ?>

Смотрел всякие разные HOWTO по установке nginx + php-fpm,  по их примеру впринципе и делал. 
Прошу тыкнуть носом, где я должен что должен дописать или где не правильно пишу.

Делаешь симлинки из /mnt/%folder% в /usr/share/nginx/%folder. В конфиге nginx, ставишь root /usr/share/nginx/%folder.

У себя хотел, использовать настройку без симлинком, не получилось. ИМХО самый удобный вариант.

flappyright ()
Ответ на: комментарий от flappyright

Не помог ваш способ... кстати хотел уточнить - я думал явное определение индекс страниц нужно когда они имеют другие названия(способ с указанием моего скрипта как индекс тоже не помог).

kovalev_94 ()
Ответ на: комментарий от kovalev_94

nginx.conf

# vim: filetype=nginx
#              _            
#  _ __   __ _(_)_ __ __  __
# | '_ \ / _` | | '_ \\ \/ /
# | | | | (_| | | | | |>  < 
# |_| |_|\__, |_|_| |_/_/\_\
#        |___/
#              
# Настройка веб сервера NGINX

# #---Основные настройки---# #
# Пользователь запуск веб сервера
user http;
# Количество потоков и ядер процессора
worker_processes auto;
worker_cpu_affinity auto;
# PID процесса
#pid /run/nginx.pid;
# Включение PCRE для ускорения регулярных выражений
pcre_jit on;
# Логгирование веб сервера
error_log off;

# ---События--- #
events{
    # Количество подключений
    worker_connections 1024;
    # Каждый процесс принимает несколько соединений.
    multi_accept on;
    # Метод обработки соединений
    use epoll;
}

# ---Настройки http подключений-- #
http {
    # Заголовок ответа сервера
    server_tokens off;
    # Логгирование подключений
    access_log off;
    # Кодировка
    charset utf-8;
    # Продвинутый метод read() + write()
    sendfile on;
    # Оптимизация TCP траффика
    tcp_nopush on;
    tcp_nodelay on;
    # Включение AIO
    aio threads;
    aio_write on;
    directio 8m;
    # Хэширование
    types_hash_max_size 4096;
    include mime.types;
    default_type application/octet-stream;
    # Кэширование
    open_file_cache max=200000 inactive=20s;
    open_file_cache_valid 60s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
    # Буферизация
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    output_buffers   1 32k;
    postpone_output  1460;
    # Сжатие
    gzip on;
    gzip_buffers    4 8k;
    gzip_comp_level 6;
    gzip_min_length 500;
    gzip_proxied expired no-cache no-store private auth;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";
    gzip_types
        application/atom+xml
        application/javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rss+xml
        application/vnd.geo+json
        application/vnd.ms-fontobject
        application/x-font-ttf
        application/x-web-app-manifest+json
        application/xhtml+xml
        application/xml
        font/opentype
        image/bmp
        image/svg+xml
        image/x-icon
        text/cache-manifest
        text/css
        text/plain
        text/vcard
        text/vnd.rim.location.xloc
        text/vtt
        text/x-component
        text/x-cross-domain-policy;
    # Таймауты
    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;
    keepalive_timeout      75 20;

    # #---Виртуальные сервера---# #
    # example
    include /etc/nginx/sites/example;
}

site/example

# vim: filetype=nginx
#  _______  __    _    __  __ ____  _     _____ 
# | ____\ \/ /   / \  |  \/  |  _ \| |   | ____|
# |  _|  \  /   / _ \ | |\/| | |_) | |   |  _|  
# | |___ /  \  / ___ \| |  | |  __/| |___| |___ 
# |_____/_/\_\/_/   \_\_|  |_|_|   |_____|_____|
#             
# Виртуальный сервер для nginx

# #---Настройки сервера---# #
server{
    # Название сайта
    server_name example.com.ua www.example.com.ua;
    # Порт
    listen 80;
    # Логгирование
    access_log off;
    # Заголовки
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Referrer-Policy no-referrer;

    # #---Главная станица сайта---# #
    location / {
        # Директория сервера
        root /usr/share/nginx/html/;
        # Главная страница
        index index.html index.php;
    }

    # #---Обработка php---# #
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }
}

Конфиг для php-fpm нужен?

flappyright ()
Ответ на: комментарий от kovalev_94

Держи.

php-fpm.conf

; vim: filetype=php-fpm
;        _                  __                 
;  _ __ | |__  _ __        / _|_ __  _ __ ___  
; | '_ \| '_ \| '_ \ _____| |_| '_ \| '_ ` _ \ 
; | |_) | | | | |_) |_____|  _| |_) | | | | | |
; | .__/|_| |_| .__/      |_| | .__/|_| |_| |_|
; |_|         |_|             |_|
;              
; Конфигурационный файл php-fpm

; ---Основные настройки--- ;
[global]
; Pid файл
pid = /run/php-fpm/php-fpm.pid
; Выполнение в роли демона
daemonize = yes
; Механизм ивентов
events.mechanism = epoll

; ---Логирование--- ;
; Логгирование
error_log = /var/log/php-fpm/php-fpm.log
; Лимит для логов
log_limit = 1024
; Буферизация логов
log_buffering = no
; Режим логгирования
log_level = notice

; ---Перезапуск сервиса--- ;
; Количество процессов для перезапуска сервива
emergency_restart_threshold = 10
; Интервал времени для перезапуска сервиса
emergency_restart_interval = 30

; ----Процессы--- ;
; Ограничение времени для дочерних процессов
;process_control_timeout = 0
; Максимальное количество процессов
;process.max = 128
; Приоритет процессов
;process.priority = -19

; ---Параметры ядра--- ;
; Дескриптор файла основного процесса
;rlimit_files = 1024
; Максимальный размер ядра процесса
;rlimit_core = 0

; Период уведомления о работоспособности
systemd_interval = 100

; ---Настройка пулов--- ;
; Nextcloud
include=/etc/php/php-fpm.d/example.pool

example.pool

; vim: filetype=php-fpm
;        _                  __                                         _ 
;  _ __ | |__  _ __        / _|_ __  _ __ ___        _ __   ___   ___ | |
; | '_ \| '_ \| '_ \ _____| |_| '_ \| '_ ` _ \ _____| '_ \ / _ \ / _ \| |
; | |_) | | | | |_) |_____|  _| |_) | | | | | |_____| |_) | (_) | (_) | |
; | .__/|_| |_| .__/      |_| | .__/|_| |_| |_|     | .__/ \___/ \___/|_|
; |_|         |_|             |_|                   |_|
;              
; Конфигурационный файл пула для php-fpm

; --- Настройки пула--- ;
[example.pool]
; Пользователь и группа для процесса
user = http
group = http
; Подключение к главному процессу php-fpm
listen = /run/php-fpm/php-fpm.sock
; Префикс для пула
;prefix = example

; ---Настройки сокета--- ;
; Размер очереди одновременно ожидающих подключений к сокету
listen.backlog = 511
; Разрешения для сокета
listen.owner = http
listen.group = http
listen.mode = 0660
; Список адресов (IPv4 / IPv6) клиентов FastCGI, которым разрешено подключаться
listen.allowed_clients = any

; ---Настройки процессов--- ;
; Приоритет процесса
process.priority = -19
; Дамп процесса
process.dumpable = no

; ---Настройки воркеров--- ;
; Менеджер процессов
pm = ondemand
; Максимальное количество дочерних процессов
pm.max_children = 5
; Количество процессов при старте сервера
pm.start_servers = 2
; Количество секунд, после которых простаивающий процесс будет убит
pm.process_idle_timeout = 10s;
; Количество запросов, которые дочерний процесс должен выполнить перед повторным вызовом
pm.max_requests = 500
; Страница статистики
;pm.status_path = /php-fpm-status
; Страница вызова мониторинга
ping.path = /ping
; Страница ответа мониторинга
;ping.response = pong
; Чистая среда для воркеров
clear_env = yes

; ---Логирование--- ;
;access.log = log/$pool.access.log
; Формат логов
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
; Лог медленных запросов
slowlog = /var/log/php-fpm/$pool.log.slow
; Перенаправление рабочих stdout и stderr в основной журнал ошибок
catch_workers_output = no
; Префикс и суффикс для вывода
decorate_workers_output = yes

; ---Запросы--- ;
; Время, что бы процесс был медленным
request_slowlog_timeout = 30
; Время, что бы медленный процесс был убит
request_terminate_timeout = 60
; Глубина медленной трассировки стека журналов
request_slowlog_trace_depth = 20

; ---Параметры ядра--- ;
; Дескриптор файла основного процесса
;rlimit_files = 1024
; Максимальный размер ядра процесса
;rlimit_core = 0

; ---Выполнение из под chroot--- ;
; Директория для chroot
;chroot =
; Директория для chdir
;chdir = /srv/http

; ---Файлы--- ;
; Тип файла, с которым будем работать сервер
security.limit_extensions = .php

; ---Переменные окружения--- ;
; Переменные окружения (при clean env = no)
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

; ---Настройки php--- ;
; Надстройка над php.ini
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/php-fpm/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M
flappyright ()
Ответ на: комментарий от flappyright

SELinux - хрень для контроля доступа к файлам работающая поверх стандартной.(Пересказал вики) Вообщем в вариантах когда эта хрень не настроена может доставлять такие проблемы(не давала в mnt доступ и все). Как вариант ее отключить(но это в случаях когда ты сам себе админ и сам себе пользователь), а по хорошему вроде как лучше настраивать ее, чтобы не хорошие пользователи что то не сломали. Ну я отключил, ибо я сам себе не хороший пользователь)))

kovalev_94 ()