Назад | Перейти на главную страницу

Не удается запустить php в html на nginx

Я пытаюсь запустить php в html на сервере nginx. Что происходит, так это то, что php-код в html просто печатается, а не выполняется. Я могу нормально запускать скрипты php stanadalone. но не внутри html. Я потратил на это несколько часов.

Вот мои сайты-доступные / файл по умолчанию:

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

# Add index.php to the list if you are using PHP 
index index.html index.htm index.nginx-debian.html index.php;

server_name _;

location / { 
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }  
}

Я думаю, мне нужно добавить сюда html-директиву location, но я не знаю, как ее написать. Я пробовал несколько версий, но они всегда выдают ошибки. Кто-нибудь знает, как действовать дальше?

Обычно, когда вы кодируете сайт на PHP, вы даете всем своим страницам расширение .php. Это потому, что вы хотите, чтобы PHP анализировал страницу и выполнял различные функции сценария, которые вы определили.

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

Это предыдущее вопрос была аналогичная проблема, но у них были проблемы с обработкой расширений PHP. В вашем случае вы сможете взять это и заменить .php $ на .html. Я предполагаю, что у вас уже есть настройка конфигурации для PHP, вам просто нужно добавить раздел для HTML.

Хотя я бы лично этого не делал. Я бы изменил расширение файлов для своих страниц на .php, чтобы вы могли легко определить, что нужно обрабатывать, а что должно быть простым HTML. Кроме того, если вы настроили .HTML на обработку PHP по умолчанию, вы можете случайно разрешить пользователям загружать другие HTML-страницы с вредоносным сценарием, который будет выполняться PHP.