PHP Slim4 на Apache2 дает HttpNotFoundException - PullRequest
0 голосов
/ 11 апреля 2020

Ссылки, которые я видел, включают:

https://akrabat.com/running-slim-4-in-a-subdirectory/

https://discourse.slimframework.com/t/slim-4-httpnotfoundexception/3273/18

и некоторые другие

Я пытаюсь настроить проект Slim4 на apache2. Но попытка доступа к нему дает мне ошибку

PHP Неустранимая ошибка: Uncaught Slim \ Exception \ HttpNotFoundException: Не найдено ....

У меня есть индекс файл в /var/www/html/_projects/work/calc1/src.

Ниже указан мой код c .conf в /etc/apache2/sites-available:

<VirtualHost *:80>
    ServerName calc.mrid.local
    ServerAlias calc.mrid.local

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/_projects/work/calc1/src

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Это мой .htaccess, расположенный в каталоге src

RewriteEngine On
RewriteBase /_projects/work/calc1/src/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
RewriteRule ^(.*)\.html$ /$1 [L,R=301]

Мой index.php выглядит так:

// use and require statements...

$container = new Container();
AppFactory::setContainer($container);

$container->set('view', function() {
    return \Slim\Views\Twig::create(__DIR__ . '/public/templates');
});

$app = AppFactory::create();

// even without this line it doesn't work
$app->setBasePath("/_projects/work/calc1/src"); 

$app->add(TwigMiddleware::createFromContainer($app));

// my routes....

$app->run();

Кто-нибудь работал с Slim4 на Apache2? Если да, можете ли вы вести меня?

1 Ответ

0 голосов
/ 11 апреля 2020

Каталог src/ фактически предназначен только для классов PHP и не должен быть доступен в Интернете. apache DocumentRoot должен указывать на каталог public/, в котором находится ваш фронт-контроллер public/index.php. Взгляните на Стандартный PHP скелет пакета . Более подробную информацию о Slim и apache можно найти в этом Slim 4 Tutorial .

...