У меня есть 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 я получаю следующие ошибки:
При входе из браузера получаю следующую ошибку:
Тогда у меня есть несколько наблюдений:
Я также читал, что это может быть проблема с разрешениями. Мои права доступа к папкам и файлам:
$ 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.
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
И наконец у меня были следующие ошибки:
Какой Я решил сохраняет require_once (), который у меня был в приложении, развернутом локально.
Finally, my main solution was the use of the file
/var/log/apache2/error_logand the installation ofphp7.0-xmlto avoid the HTTP ERROR 500.
Спасибо
Вы должны прочитать журналы ошибок php. Я бы рекомендовал создать среду разработки докеров, которая соответствует стеку вашего сервера, это предотвратит подобные проблемы в будущем!
@RomanoSchoonheim. ЛАМПА предотвращает это тоже? Если у вас есть руководство, в котором можно порекомендовать Docker, я с удовольствием его прочту.
При удалении файла index.php ошибка исчезает, когда я вхожу в каталог v0 из браузера, потому что отображается содержимое каталога .... похоже, у вас есть фатальная ошибка в index, php файле
@RomanoSchoonheim Кто-то изо всех сил пытается найти свои журналы ошибок, а вы предлагаете Докер !? Это похоже на то, чтобы сказать тому, кто только учится ходить, «попробуй бегать, ты пойдешь быстрее». Ключевой совет здесь - читать журналы ошибок PHP.
@IMSoP Я полностью согласен с вами, это было нелепое предложение использовать докер для предотвращения проблем с окружающей средой. Разработчики ITDevelopers игнорируют предложение докеров, чтение журналов ошибок вам поможет!
@RomanoSchoonheim Это разумное предложение для кого-то на уровне, где у них есть шанс преуспеть в этом. Docker - это непростая технология, поэтому у начинающего будет целый набор головных болей, пытающихся понять ее. Если вопрос был «Я перехожу из среды X в среду Y и получаю эту ошибку из-за разницы в конфигурации сервера», то хорошим ответом может быть «попробуйте использовать Docker, чтобы минимизировать различия при миграции»; но у меня такое впечатление, что OP в данном случае еще не на этом этапе.
Я решил свою ошибку с помощью журнала php
@ShanteshwarInde Контент был отображен, потому что у меня был включен SetEnv DEVELOPMENT
@IMSoP В любом случае я прочитал документацию и отобразил образы Docker (неофициальное программное обеспечение Jira), но я хотел использовать только то, что необходимо для этого API. И я не использовал LAMP, потому что у меня есть база данных на другом сервере.






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