#php #linux #permissions #raspberry-pi #stripe-payments
#php #linux #разрешения #raspberry-pi #stripe-платежи
Вопрос:
Я пытаюсь заставить веб-сайт работать, но не могу понять, как отредактировать серверный PHP-файл без сбоя веб-сайта. Я не получаю много обращений к Google в поисках этой проблемы.
Я пытаюсь создать страницу «stripe checkout», где вы можете заблокировать карту. Я не писал ничего из этого кода, но получил его на github.
https://github.com/stripe-samples/placing-a-hold
index.php файл — это то, что я пытаюсь отредактировать, но именно здесь у меня возникают проблемы:
https://github.com/stripe-samples/placing-a-hold/tree/master/using-webhooks/server/php
Если я загружу ссылку на github и открою php-файл через свой браузер, я получу страницу оформления заказа, как и ожидалось. Однако, если я скопирую и вставлю файл на свой рабочий стол, открою его, сохраню (без изменений), закрою и повторно загружу на сервер, у меня появится белый экран. Если я повторно загружу исходный php-файл, он снова заработает. Я не понимаю, как два идентичных php-файла могут дать мне такой результат. Я думал, что сохранение файла php изменяет разрешения, связанные с файлом? но я сделал chmod 777 для всего каталога, и он все еще не работает.
У меня нет большого опыта программирования. Я проверил ошибку сервера, в которой говорится:
PHP Фатальная ошибка: неперехваченное исключение RuntimeException: неожиданные данные в выходном буфере. Может быть, у вас есть символы перед открытием <?php tag? в /var/www/html/server/php/vendor/slim/slim/Slim/App.php:625
Трассировка стека:
#0 /var/www/html/server/php/vendor/slim/slim/Slim/App.php (333): SlimApp-> завершить (Объект(SlimHttp Response))
#1 /var/www/html/server/php/index.php (112):SlimApp-> run()
#2 {main}n добавлено /var/www/html/server/php/vendor/slim/slim/Slim/App.php в строке 625,
перейдя в App.php файл вокруг строки 625 в нем есть следующее:
protected function finalize(ResponseInterface $response)
{
// stop PHP sending a Content-Type automatically
ini_set('default_mimetype', '');
$request = $this->container->get('request');
if ($this->isEmptyResponse($response) amp;amp; !$this->isHeadRequest($request)) {
return $response->withoutHeader('Content-Type')->withoutHeader('Content-Length');
}
// Add Content-Length header if `addContentLengthHeader` setting is set
if (isset($this->container->get('settings')['addContentLengthHeader']) amp;amp;
$this->container->get('settings')['addContentLengthHeader'] == true) {
if (ob_get_length() > 0) {
throw new RuntimeException("Unexpected data in output buffer. " .
"Maybe you have characters before an opening <?php tag?");
}
$size = $response->getBody()->getSize();
if ($size !== null amp;amp; !$response->hasHeader('Content-Length')) {
$response = $response->withHeader('Content-Length', (string) $size);
}
}
// clear the body if this is a HEAD request
if ($this->isHeadRequest($request)) {
return $response->withBody(new Body(fopen('php://temp', 'r ')));
}
return $response;
}
Комментарии:
1. Просто предположение. Возможно, используемый вами редактор добавляет что-то свое. Какой из них вы используете? Возможно, попробуйте использовать другой.
2. Спасибо, что в итоге возникла проблема. Я открывал PHP-файл в блокноте. По какой-то причине это приводило к его повреждению. Я скачал Atom и открыл его через это, и в итоге он заработал.