обновленный веб-сервер Ubuntu, не работающий

Я просто обновил сервер Ubuntu 16.04 к 18,04 использованиям sudo do-release-upgrade. Nginx является веб-сервером. Отчет 404 о сайтах. Во время установки я принял решение сохранить в настоящее время установленную версию.

$ ps aux | grep nginx
root      1477  0.0  0.0 141120  1568 ?        Ss   06:36   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  1478  0.0  0.2 143752  6160 ?        S    06:36   0:00 nginx: worker process
www-data  1479  0.0  0.2 143752  6160 ?        S    06:36   0:00 nginx: worker process

Nginx петляет /etc/nginx/sites-available/default настроен, как это было.

PHP также работает:

$ ps aux | grep php
root      1319  0.0  0.5 290448 17208 ?        Ss   06:36   0:00 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data  1486  0.0  0.2 292744  7464 ?        S    06:36   0:00 php-fpm: pool www
www-data  1487  0.0  0.2 292744  7464 ?        S    06:36   0:00 php-fpm: pool www

Когда я перешел к содержанию веб-страниц как текст, или pdfs или изображениям с помощью полного URL, содержание отображено. но когда я ввожу имена сценария, или веб-страница называет свои 404.

рассмотрение журнала ошибок:

$ sudo tail -n 20 /var/log/nginx/error.log
2020/03/22 06:37:21 [crit] 1478#1478: *2 connect() to unix:/run/php/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 141.114.192.156, server: DomainName, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "192.168.1.104"

(измененный IP, и записал в части DomainName), возможно, сервер ищет несправедливость php версия?

$ php --version
PHP 7.2.24-0ubuntu0.18.04.3 (cli) (built: Feb 11 2020 15:55:52) ( NTS )
Copyright (c) 1997-2018 The PHP Group

Таким образом я понял что файл /etc/nginx/sites-available/default указывает на неверную версию php. Прекрасный, я изменил его от php7.0 до php7.2. теперь я получаю "Доступ запрещен" для веб-страниц. вот моя установка "по умолчанию":

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /home/user/public_html;
    index index.php index.html index.htm;

    server_name server.name.omited.org;

    location / {
        try_files $uri $uri/ =404;
        autoindex on;
    }

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

   location ~ \.php$|\.html|\.htm {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
       # fastcgi_pass unix:/var/run/php5-fpm.sock;
       # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        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;
    }
}

Хорошо я сделал небольшие успехи, поняв, что php7 был в неверной версии, я затем понял, что должен буду также включить php7.2 на сервере.

sudo systemctl enable php7.2-fpm

Я все еще получаю доступ запрещен для всех веб-страниц HTML, но, php веб-страницы при прямом доступе отобразят надлежащее содержание.

Я изменил security.limit_extensions = .php .html термин в /etc/php/7.0/fpm/pool.d/www.conf как предложено здесь: индексная страница теперь появляется, HTML и сценарии PHP обе работы. ни одна из ссылок на другую работу страниц, все они все еще придумывают "Доступ запрещен"
затем я понял, что существуют .htm страницы.

0
задан 22 March 2020 в 19:38

2 ответа

Хорошо я получил его. Сладкое облегчение!

Когда я обновил (выполнение sudo do-release-upgrade), я сохранил установленную версию NGINX, и я думал, что получу подобное предложение сохранить или обновить php7.0. Этого не произошло. То, когда обновление завершило что-то, произошло с php7.0, представляющим его бесполезный.

Я должен был изменить некоторые файлы для получения моего сервера, работающего снова. Файлы, которые я отредактировал, были: /etc/nginx/sites-available/default /etc/php/7.2/fpm/pool.d/www.conf

Я работал sudo apt install php7.2 php7.2-fpm php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache обновить php7.2. Это сделало обновление к php7.2. Сервер сообщил о версии php7.2 до выполнения этого шага, но это не работало, таким образом, я обновил его так или иначе.

Я затем изменил мой /etc/nginx/sites-available/default файл для включения строки: fastcgi_pass unix:/run/php/php7.2-fpm.sock; это указывает на nginx на версию php, который я теперь установил.

затем, я работал sudo systemctl enable php7.2-fpm sudo systemctl start php7.2-fpm включить php7.2 и запустить его.

Сценарии PHP теперь работают, но только при прямом доступе. HTML и htm страницы со встроенным php все еще не работают на этом шаге.

Я протестировал свои nginx файлы конфигурации с: sudo nginx -t sudo systemctl reload nginx nginx файлы конфигурации не дали ошибок. но на этом шаге, htm и страницы HTML все еще показывали "Доступ запрещен".

Затем я изменил строку 389 из /etc/php/7.2/fpm/pool.d/www.conf включать строку: security.limit_extensions = .php .html .htm

Затем я перезапустил php7.2: sudo systemctl restart php7.2-fpm.service

В этой точке теперь вел себя сервер, как я буду ожидать: компоненты страницы HTML рендеринга сценария PHP, htm, и файлы HTML представляют правильно.
После этого мой сервер работал

1
ответ дан 22 March 2020 в 23:19

Вы могли создать phpinfo файл, чтобы видеть, анализируется ли php правильно?

<?php // Show all information, defaults to INFO_ALL phpinfo();

Вы перезапустили/перезагрузили свой php-fpm?

0
ответ дан 22 March 2020 в 23:19

Другие вопросы по тегам:

Похожие вопросы: