LINUX.ORG.RU

Как исправить ошибку 500 ? (Php7.2 и nginx)

 , ,


0

1

Доброе время суток. Уважаемые форумчане, понимаю что задача элементарная и выполняется в течении нескольких минут, но у меня возникли проблемы. Не могу понять причины по которым возникает ошибка 500. Характеристики: Система:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial

 Linux  4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 


Версия php:

PHP 7.2.8 (cli) (built: Jul 23 2018 03:13:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies;

Версия nginx: nginx/1.15.2
===============================================

Задача собрать простейший LAMP.

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository  ppa:ondrej/nginx-mainline
sudo apt-get update && sudo apt-get upgrade && sudo apt-get --purge autoremove && sudo apt-get clean && sudo apt-get autoclean

1. Добавили и обновили репозитории;
sudo apt install nginx.[br] Thanks for using nginx!

ls /etc/nginx

conf.d          koi-utf  mime.types  nginx.conf   uwsgi_params 
fastcgi_params  koi-win  modules     scgi_params  win-utf 

\\ Насколько я помню там должно быть ещё два каталога каталоге sites-available и site — enable, но их нет .
2. Установили nginx;

$ sudo apt install php7.2-fpm php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-mysql php7.2-cli php7.2-zip php7.2-curl


$  php -v 
PHP 7.2.8 (cli) (built: Jul 23 2018 03:13:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies


$  sudo service php7.2-fpm status
 php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
   Active: active (running) since Ср 2018-08-01 00:40:51 EET; 6min ago
     Docs: man:php-fpm7.2(8)
 Main PID: 27270 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3
   Memory: 15.5M
      CPU: 65ms
   CGroup: /system.slice/php7.2-fpm.service
           ├─27270 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)      
           ├─27272 php-fpm: pool www                                            
           └─27273 php-fpm: pool www   


$ sudo ps aux | grep php
root     27270  0.0  0.7 445544 28496 ?        Ss   00:40   0:00 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data 27272  0.0  0.2 445544  8936 ?        S    00:40   0:00 php-fpm: pool www
www-data 27273  0.0  0.2 445544  8940 ?        S    00:40   0:00 php-fpm: pool www
root     27356  0.0  0.0  18800  1020 pts/2    S+   00:45   0:00 grep --color=auto php

3. Установили php;

test.php (Содержит <?php phpinfo(); ?> )
$ php test.php (выполняется в командной строке)

3. Установка php прошла успешно.

$ sudo chown www-data:www-data /usr/share/nginx/html -R
$ sudo systemctl enable nginx
$ sudo systemctl enable php7.2-fpm

http://localhost/phpinfo.php выдает ошибку 500 Internal Server Error

Конфигурационные файлы

 /etc/nginx/conf.d/default.conf
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

root /var/www/html/public;
    index index.php index.html index.htm;

server_name localhost;
    charset   utf-8;

gzip on;
    gzip_vary on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/xml+rss;

location / {
        try_files \$uri \$uri/ /index.php?\$query_string;
    }

location ~ \.php\$ {
        try_files \$uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)\$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
        include fastcgi_params;
    }

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|svg|woff|woff2|ttf)\$ {
      expires 1M;
      access_log off;
      add_header Cache-Control "public";
    }

location ~* \.(?:css|js)\$ {
      expires 7d;
      access_log off;
      add_header Cache-Control "public";
    }

location ~ /\.ht {
        deny  all;
    }

} 

nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
 


Почему возникает эта ошибка? Как её исправить?



Последнее исправление: nika_herzz (всего исправлений: 1)

И да, nginx тут не при чем, это твой скрипт его валит.

webmonkey
()

И еще

/etc/nginx/conf.d/default.conf:

index index.php index.html index.htm;

test.php:

<?php phpinfo(); ?>

выдает ошибку 500 Internal Server Error:

http://localhost/phpinfo.php 

Это прелестно!

webmonkey
()
Ответ на: комментарий от deep-purple

:) Я больше так не буду, честно-честно. Психанула ….

Логи php

$ php --info | grep error
display_errors => STDOUT => STDOUT
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => no value => no value
html_errors => Off => Off
ignore_repeated_errors => Off => Off
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
track_errors => Off => Off
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off 

/var/log/nginx/access.log

::1 - - [01/Aug/2018:01:32:33 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/phpinfo.php" " ( Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu" "-"

Логи nginx

2018/08/01 00:57:41 [emerg] 27576#27576: open() "/etc/nginx/snippets/fastcgi-php.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/default.conf:16

Файла fastcgi-php.conf нигде нет ... совсем...

nika_herzz
() автор топика

/var/log/nginx/access.log

А нужен error.log

localhost/phpinfo.php

А созданный файл это test.php

try_files

Нужно создавать отдельный файл хоста и там заниматься всей порнографией, а не колупать основные файлы настроек нжинкса. Файл хоста выглядит как-то так:

server {
    listen 80;
    server_name yourdomain.tld www.yourdomain.tld;
    charset utf-8;
    access_log /path/do/yourdomain.tld/logs/access.log;
    error_log  /path/do/yourdomain.tld/logs/error.log;
    if ($host != 'www.yourdomain.tld') {
        rewrite ^(.*)$ http://www.yourdomain.tld$1 permanent;
    }
    set $root_path '/path/do/yourdomain.tld/public_html';
    root $root_path;

    # а тут прон с правилами роутинга

}
И еще, фастцги и фпм это чутка разные вещи. Определись, тебе надо то или это. http://xandeadx.ru/blog/php/866

deep-purple ★★★★★
()
Ответ на: комментарий от webmonkey

apt-get --search php7-fpm нет такого :).

apt-get — интерфейс командной строки для получения пакетов, информации из доверенных источников, а также установки, обновления и удаления пакетов вместе с их зависимостями.

Основные команды: update - получить новые списки пакетов
upgrade - выполнить обновление
install - установить новые пакеты (на месте пакета указывается имя пакета (libc6, а не имя файла libc6.deb)
remove - удалить пакеты
purge - удалить пакеты вместе с их файлами настройки
autoremove - автоматически удалить все неиспользуемые пакеты
dist-upgrade - обновить всю систему, подробнее в apt-get(8)
dselect-upgrade - руководствоваться выбором, сделанным в dselect
build-dep - настроить всё необходимое для сборки пакета из исходного кода
clean - удалить скачанные файлы архивов
autoclean - удалить старые скачанные файлы архивов
check - проверить наличие нарушенных зависимостей
source - скачать архивы с исходным кодом
download - скачать двоичный пакет в текущий каталог
changelog - скачать и показать файл изменений заданного пакета
Какой search??? 0_o

nika_herzz
() автор топика
Ответ на: комментарий от deep-purple

Спасибо. Интересная статья. Как я понимаю, мне необходим именно PHP-FPM... «Nginx умеет работать с FastCGI приложениями из коробки, но именно для PHP дополнительно нужен PHP-FPM».... Переделала всё.
nginx.conf

user www-data;
worker_processes auto;
pid /var/run/nginx.pid;

events {
	worker_connections 1024;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	# timer_resolution 100ms;
	# worker_rlimit_nofile 8192;
	# worker_priority -5; #Увеличитвваем приоритет

	sendfile off;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_min_length	1100;	
	gzip_disable "MSIE [1-6]\.(?!.*SV1)";

	gzip_vary on;
	gzip_proxied any;
	gzip_comp_level 4;
	gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;


	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-enabled/test.ru.conf

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name test.ru h;
    root        /home/nika/www/localtest/;
    index       index.php;

    access_log   /home/nika/www/localtest/fhca_access.log;
    error_log    /home/nika/www/localtest/fhca_error.log;

    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        try_files $uri =404;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

В hosts добавила

 127.0.0.1       test.ru 

/home/nika/www/localtest/fhca_access.log
пусто

/home/nika/www/localtest/fhca_error.log;
пусто

/var/log/php7.2-fpm.log

[02-Aug-2018 21:37:24] NOTICE: Terminating ...
[02-Aug-2018 21:37:25] NOTICE: exiting, bye-bye!
[02-Aug-2018 21:38:12] NOTICE: fpm is running, pid 1167
[02-Aug-2018 21:38:12] NOTICE: ready to handle connections
[02-Aug-2018 21:38:12] NOTICE: systemd monitor interval set to 10000ms


/var/log/nginx/access.log

::1 - - [02/Aug/2018:13:36:24 +0200] "GET /phpinfo.php HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36" "-"
::1 - - [02/Aug/2018:13:36:25 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/phpinfo.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36" "-"
::1 - - [02/Aug/2018:13:36:28 +0200] "GET / HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36" "-"
::1 - - [02/Aug/2018:13:36:29 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36" "-"
::1 - - [02/Aug/2018:14:49:38 +0200] "GET / HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:49:38 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:49:44 +0200] "GET /phpinfo.php HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:49:44 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/phpinfo.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:57:01 +0200] "GET /phpinfo.php HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:57:02 +0200] "GET /favicon.ico HTTP/1.1" 500 595 "http://localhost/phpinfo.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"
::1 - - [02/Aug/2018:14:57:07 +0200] "GET / HTTP/1.1" 500 595 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36"

/var/log/nginx/error.log

2018/08/02 19:45:17 [info] 13595#13595: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 19:49:08 [info] 1179#1179: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 19:51:49 [info] 1174#1174: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 19:55:54 [info] 3430#3430: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 19:58:14 [info] 1154#1154: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 20:43:06 [info] 1177#1177: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63
2018/08/02 21:23:03 [info] 4213#4213: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:64

Проблема. При обращении test.ru Php не выполняются, а скачиваются ((((.

nika_herzz
() автор топика
Ответ на: комментарий от anonymous
 apt-cache search php | grep fpm 


php-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary) (default)
php7.2-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)

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

apt-get — интерфейс командной строки для получения пакетов

Вот видишь, можешь ведь, когда захочешь. Не останавливайся, и все получится!

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

Если бы я «ставил» нжинкс + php для всякой дребедени в 2018, то я использовал бы Docker. Да-да! А не мучал бы систему этим пэхэпе и не засирал бы ненужными пакетами. В докере там всё есть, и нжинкс самый распоследний и php 7, и много чего ещё в т.ч. базы данных. Главное тока научится докер ставить :)

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

Докер это тема, но всё равно там придется разворачивать lamp c nginx + php самостоятельно. Да, для докера если чисто сайтики клепать вроде есть https://hub.docker.com/r/legerete/nginx-php7/ . Установить его тоже просто apt install docker...

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

Юноша, вы, наверное шутите?

А, ну точно, шутите, вон и смайлик!

webmonkey
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.