Wdrożenie projektu Symfony na zewnętrznym hostingu

0

Stworzyłem sobie prosty projekt symfony. Baza danych mysql z jedną encją jeden kontroler z metodą wyświetlającą jedno zdanie. (tak dla testu). Na dokerowym serwerze przed transferem plików wykonałem następujące polecenia

  • composer dump-env prod --empty

  • composer install --no-dev --optimize-autoloader

  • APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear

    przeniosłem bazę danych
    w pliku ,env zmieniłem DATABASE_URL
    w pliku routes.yaml dodałem routing

  #config/routes.yaml
controllers:
    resource:
        path: ../src/Controller/
        namespace: App\Controller
    type: attribute
test-index:
    path: /
    controller: App\Controller\TestController::index
    methods: [GET]

controller wygląda tak

#src/Controller/TestController
<?php

namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;


class TestController extends AbstractController
{
    #[Route('/', methods:['GET'], name:'test-index')]
    public function index():Response
    {
        return new Response(content:'Hello witaj na mojej stronie !!');
    }
}

Reguły w .htaccess raczej są poprawne. podmieniałem index.php w katalogu public na prosty z echo i odpowiada.

Niestety po wywołaniu żądanego adresu http://lightgregor.rb.pl/proj12/ mam 404

Jeśli to możliwe proszę o pomoc.

0

Polecam użyć debuggera. Skonfiguruj sobie xdebuga, postaw breakpointy i obserwuj. Jeśli już robisz w symfony to xdebug nie powinien być Ci obcy

0
  1. nie duplikuj routingow, tj w config/routes.yaml pliku masz routing test-index i w controllerze masz routing test-index, wystarczy jak masz w kontrollerze (za to ze mozesz atrybutami w kontrolerach odpowiada ten wpis controllers ... type: attribute)
  2. sprawdzaj logi, w apache domyslnie access log /var/log/apache/access lub /var/log/apache2/access lub /var/log/httpd/access oraz error log /var/log/apache/error lub /var/log/apache2/error lub /var/log/httpd/error oraz w aplikacji var/prod/log (zalezy jak w configu masz zdefiniowane)
  3. jako ze aplikacja nie jest uruchomiona na domenie w root, tylko w podfolderze to musisz do sekcji controllers dodac prefix: /proj12 (lub w kontrollerze na klase routing z prefixem) patrz https://symfony.com/doc/current/routing.html#route-groups-and-prefixes
0

Dzięki za podpowiedzi sprawdzę wszystko ale na początek jedno pytanie do rbrauner . Piszesz że mam dodać do sekcji controllers prefix: /proj12. Jaki plik masz na myśli ?

0

config/routes.yaml

1 użytkowników online, w tym zalogowanych: 0, gości: 1