apache — Как запустить приложение PHP Slime Framework в размещенной среде?

Вступление

Всем привет. В настоящее время я завершил разработку для моего первого веб-приложения PHP — очень простого, созданного с использованием популярной микро-фреймворка PHP — Slim Framework 3.

Код приложения

Мое приложение очень простое, которое просто маршрутизирует разные get запрашивается на разных шаблонных страницах. я использую slimphp/Twig-View для рендеринга / шаблонов просмотра.

Главный index.php файл выглядит так:

// Require composer autoloader
require __DIR__ . '/vendor/autoload.php';

// Application settings
$settings = require __DIR__ . '/app/settings.php';

// New Slim app instance
$app = new Slim\App( $settings );

// Add our dependencies to the container
require __DIR__ . '/app/dependencies.php';

// Require our route
require __DIR__ . '/app/routes.php';

// Run Slim
$app->run();

routes.php файл выглядит так:

// Creating routes

// Psr-7 Request and Response interfaces
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;

$app->group('/', function () {

$this->get('', function (Request $request, Response $response, $args) {

$vars = [
'page' => [
'title' => 'East End Ink',
'description' => 'Best apparel company in Austin'
],
];

return $this->view->render($response, 'home.twig', $vars);
});

$this->get('products', function (Request $request, Response $response, $args) {

$vars = [
'page' => [
'title' => 'East End Ink',
'description' => 'Best apparel company in Austin'
],
];
return $this->view->render($response, 'products.twig', $vars);
});

[...... cut out some repetition ....]

$this->get('services', function (Request $request, Response $response, $args) {

$vars = [
'page' => [
'title' => 'East End Ink',
'description' => 'Best apparel company in Austin'
],
];
return $this->view->render($response, 'services.twig', $vars);
});

});

Исходный код для всего приложения ВОТ.

Как я запускаю приложение локально / пытаюсь запустить в производстве

Вот как я могу запускать веб-приложение локально:

20 Второе Видео — http://tinypic.com/r/n6c5g7/9

Я просто бегаю php -S localhost:8080 и однажды в localhost:8080 Приложение прекрасно работает. Проблема в том, что я не знаю, как перевести это на запуск приложения в Интернете. Я развернул свой исходный код в CloudWays и FortRabbit, оба они каким-то образом успешно отображали домашнюю страницу.

CloudWays — http://phpstack-115365-328618.cloudwaysapps.com/:
Домашняя страница показанная на CloudWays

FortRabbit — https://custom-5yx3.frb.io/:
Домашняя страница показанная на FortRabbit

Ошибка, которую я получаю при попытке перейти к любой другой странице в этой промежуточной среде, заключается в следующем:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Apache/2.4.10 (Debian) Server at phpstack-115365-328618.cloudwaysapps.com Port 80

Я думаю, что он просто обслуживает файл php там, как это делает php локально, если я иду на маршрут приложения на порту 80 без запуска php -S localhost:8080,

17 Второе видео о том, как я воспроизводил ту же проблему на месте: http://tinypic.com/r/28s6n87/9

Теперь вопрос:

Как я могу разместить это веб-приложение в таком месте, как CloudWays или FortRabbit. Что я вообще пытаюсь сделать, чтобы он там работал? И если вы достаточно любезны, как конкретно я могу пойти на это?

Постскриптум
Исходный код сайта все еще общедоступен, поэтому не стесняйтесь проверять его GitHub Repo просматривать файлы.

P.P.S.
Я очень благодарен за любую помощь, которую вы можете оказать. Я n00b и эта арена, и я заплачу, когда стану более опытным и опытным разработчиком PHP, чем я в других областях.

-1

Решение

Я скачал твои файлы из репо.

Во-первых, я получаю следующую ошибку при локальной проверке вашего сайта:

Ошибка разбора: синтаксическая ошибка, неожиданный ‘}’ в /var/www/htdocs/slim/app/routes.php в строке 98

Это потому что пропущена точка с запятой в строке 97. Я исправил это.

Затем я вижу домашнюю страницу, но попытка перейти на другие страницы дает ошибку 500.

Проблема для меня в вашем .htaccess файле. У вас есть эта строка:

RewriteBase /var/www/html/brand-builders-php-site/

и если я изменю это на это:

RewriteBase /

тогда все работает (я могу загрузить страницы)

1

Другие решения

Обычно 500 ошибок относятся к htaccess при использовании Slim 3, по крайней мере, с тех пор, как я его использовал.

Другой ответ относительно htaccess правильно решает эту проблему, я бы прокомментировал, но недостаточно ремонта, поэтому я могу только ответить.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector