Wdrożenie projektu Symfony na zewnętrznym hostingu

Wdrożenie projektu Symfony na zewnętrznym hostingu
EVOMARKET
  • Rejestracja:około rok
  • Ostatnio:4 miesiące
  • Postów:13
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

Kopiuj
  #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

Kopiuj
#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.

edytowany 1x, ostatnio: cerrato
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Warszawa
  • Postów:2251
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

edytowany 1x, ostatnio: axelbest
RB
  • Rejestracja:ponad rok
  • Ostatnio:3 dni
  • Postów:10
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
EVOMARKET
  • Rejestracja:około rok
  • Ostatnio:4 miesiące
  • Postów:13
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 ?

RB
  • Rejestracja:ponad rok
  • Ostatnio:3 dni
  • Postów:10
0

config/routes.yaml

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.