Как отлаживать HTTP ERROR 500 с помощью apache и php?

У меня есть Rest API, который работает на моем локальном компьютере. Но при загрузке на сервер возникают ошибки.

Я установил Apache, PHP и пакет php-cli.

$ sudo apt install apache2
$ sudo apt install php libapache2-mod-php 
$ sudo apt install php-cli

Я включил модуль Apache и mod_rewrite в Apache

$ sudo a2enmod php7.0
$ sudo a2enmod rewrite

Я также подтвердил, что mod_rewrite включен с помощью:

$ ls /etc/apache2/mods-enabled | grep rewrite

И я проверил, что PHP работает на веб-сервере с использованием SSH.

$ sudo wget http://localhost/info.php

Мой каталог v0 содержит index.php и .htaccess

При выполнении любого запроса с Postman я получаю следующие ошибки:

  • Запрошенный URL / API / cluvi / v0 / employee не найден на этом сервере.
  • Сервер Apache / 2.4.25 (Debian) на <EXTERNAL-IP> Порт 80

При входе из браузера получаю следующую ошибку:

  • ОШИБКА HTTP 500

Тогда у меня есть несколько наблюдений:

  1. Когда вы удаляете файл .htaccess, ошибка сохраняется.
  2. При удалении файла index.php ошибка исчезает, когда я вхожу в каталог v0 из браузера, потому что отображается содержимое каталога.

Я также читал, что это может быть проблема с разрешениями. Мои права доступа к папкам и файлам:

$ sudo usermod -a -G www-data your_username
$ sudo chgrp -R www-data /var/www/html 
$ sudo chmod -R g+w /var/www/html

Я развернул API с помощью LAMP, и у меня не было проблем. Но, возможно, устанавливая Apache и PHP по отдельности, я не рассматриваю то, чего не осознаю. Или у меня есть ошибка в коде index.php, которую я не вижу, и я хотел бы знать, как отлаживать этот статус HTTP.


РЕШЕНИЕ

/ var / журнал / apache2 / error_log

PHP Warning:  require_once(webpresentation/views/JsonView.php): failed to open stream: No such file or direct$
PHP Fatal error:  require_once(): Failed opening required 'webpresentation/views/JsonView.php' (include_path=$

Решение: В URL-адресе запроса был сегмент большего размера, которого не было в структуре каталогов серверного проекта. Поэтому решение состояло в том, чтобы сравнить URL-адрес со структурой каталогов и сопоставить их.

PHP Fatal error:  Uncaught Error: Call to undefined function utf8_encode() in /var/www/html/APIs/cluvi/app-cl$

Решение: $ sudo apt-get install php7.0-xml && sudo systemctl restart apache2

И наконец у меня были следующие ошибки:

  • Предупреждение PHP: require_once ...
  • Неустранимая ошибка PHP: require_once ()

Какой Я решил сохраняет require_once (), который у меня был в приложении, развернутом локально.

Finally, my main solution was the use of the file /var/log/apache2/error_log and the installation of php7.0-xml to avoid the HTTP ERROR 500.

Спасибо

Если ошибка 500, значит что-то должно быть в журнале ошибок php

Ray A 18.12.2018 09:07

Вы должны прочитать журналы ошибок php. Я бы рекомендовал создать среду разработки докеров, которая соответствует стеку вашего сервера, это предотвратит подобные проблемы в будущем!

Romano Schoonheim 18.12.2018 09:09
35.243.140.230/info.php
Braian Coronel 18.12.2018 09:10

@RomanoSchoonheim. ЛАМПА предотвращает это тоже? Если у вас есть руководство, в котором можно порекомендовать Docker, я с удовольствием его прочту.

Braian Coronel 18.12.2018 09:13

При удалении файла index.php ошибка исчезает, когда я вхожу в каталог v0 из браузера, потому что отображается содержимое каталога .... похоже, у вас есть фатальная ошибка в index, php файле

Shanteshwar Inde 18.12.2018 09:19

@RomanoSchoonheim Кто-то изо всех сил пытается найти свои журналы ошибок, а вы предлагаете Докер !? Это похоже на то, чтобы сказать тому, кто только учится ходить, «попробуй бегать, ты пойдешь быстрее». Ключевой совет здесь - читать журналы ошибок PHP.

IMSoP 18.12.2018 10:53

@IMSoP Я полностью согласен с вами, это было нелепое предложение использовать докер для предотвращения проблем с окружающей средой. Разработчики ITDevelopers игнорируют предложение докеров, чтение журналов ошибок вам поможет!

Romano Schoonheim 18.12.2018 11:20

@RomanoSchoonheim Это разумное предложение для кого-то на уровне, где у них есть шанс преуспеть в этом. Docker - это непростая технология, поэтому у начинающего будет целый набор головных болей, пытающихся понять ее. Если вопрос был «Я перехожу из среды X в среду Y и получаю эту ошибку из-за разницы в конфигурации сервера», то хорошим ответом может быть «попробуйте использовать Docker, чтобы минимизировать различия при миграции»; но у меня такое впечатление, что OP в данном случае еще не на этом этапе.

IMSoP 18.12.2018 11:29

Я решил свою ошибку с помощью журнала php

Braian Coronel 18.12.2018 22:50

@ShanteshwarInde Контент был отображен, потому что у меня был включен SetEnv DEVELOPMENT

Braian Coronel 18.12.2018 22:52

@IMSoP В любом случае я прочитал документацию и отобразил образы Docker (неофициальное программное обеспечение Jira), но я хотел использовать только то, что необходимо для этого API. И я не использовал LAMP, потому что у меня есть база данных на другом сервере.

Braian Coronel 18.12.2018 23:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
11
73
0

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