Symfony 6 + Apache vhost + Hello World

Wstęp

Symfony 6 to popularny framework PHP używany przez programistów do tworzenia aplikacji webowych. W tym artykule przedstawiamy jak zainstalować Symfony 6, skonfigurować serwer Apache z wirtualnym hostem oraz utworzyć prostą stronę „Hello World”. Przykład konfiguracji został przeprowadzony na serwerze z pakietu XAMPP.

Instalacja Symfony 6

W dowolnym katalogu instalujemy Symfony 6:

composer create-project symfony/website-skeleton HelloWorldSymfony6

Na pytanie „Do you want to include Docker configuration from recipes?” odpowiadamy nie.

Przechodzimy do katalogu HelloWorldSymfony6

cd HelloWorldSymfony6

i dodajemy apache-pack:

composer require symfony/apache-pack

Na pytanie „Do you want to execute this recipe?” odpowiadamy pozytywnie (yes).

Konfiguracja serwera Apache

W tym przykładzie użyty zostanie serwer z pakietu Xampp. Przechodzimy do katalogu C:\xampp\apache\conf\extra i edytujemy plik httpd-vhosts.conf. Minimalna konfiguracja jaką musimy wykonać to:

<VirtualHost *:80>
    DocumentRoot "C:\www\HelloWorldSymfony6\public"
    ServerName helloworld.localhost
    ErrorLog "logs/helloworld.localhost-error.log"
    CustomLog "logs/helloworld.localhost-access.log" common
</VirtualHost>

Zwróć uwagę, aby DocumentRoot zawierał poprawną ścieżkę do podkatalogu public w miejscu instalacji Symfony.

Pamiętaj, że standardowo Apache ma zablokowany dostęp do niestandardowych katalogów. W naszym przypadku w pliku konfiguracyjnym Apache httpd.conf należy dodać poniższe linijki, które dadzą Apache możliwość korzystania z katalogu C:\www:

<Directory "C:/www">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Po resecie Apache możemy w przeglądarce wyświetlić stronę: http://helloworld.localhost/ Widok jaki powinniśmy zobaczyć to taki:

Widok strony głównej Symfony po instalacji.
Widok strony głównej Symfony po instalacji.

Tworzenie pierwszego kontrolera

Widzimy brak skonfigurowanej trasy. Aby dodać pierwszy kontroler należy wykonać polecenie:

php bin/console make:controller TestController

Stworzą się dwa pliki: kontrolera oraz widoku.

Instalacja kontrolera.
Instalacja kontrolera.

Plik kontrolera src/Controller/TestController.php ma zawartość:

<?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('/test', name: 'app_test')]
    public function index(): Response
    {
        return $this->render('test/index.html.twig', [
            'controller_name' => 'TestController',
        ]);
    }
}

Możemy zamienić linijkę:

#[Route('/test', name: 'app_test')]

na:

#[Route('/', name: 'app_test')]

Dzięki temu zabiegowi podmienimy stronę główną na tą z kontrolera. Po odświeżeniu http://helloworld.localhost/ zobaczymy taki widok:

Widok TestController
Widok TestController

Edytujemy plik templates/test/index.html.twig, który ma następującą postać:

{% extends 'base.html.twig' %}

{% block title %}Hello TestController!{% endblock %}

{% block body %}
<style>
    .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
    .example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>

<div class="example-wrapper">
    <h1>Hello {{ controller_name }}! ✅</h1>

    This friendly message is coming from:
    <ul>
        <li>Your controller at <code><a href="{{ 'C:/www/HelloWorldSymfony6/src/Controller/TestController.php'|file_link(0) }}">src/Controller/TestController.php</a></code></li>
        <li>Your template at <code><a href="{{ 'C:/www/HelloWorldSymfony6/templates/test/index.html.twig'|file_link(0) }}">templates/test/index.html.twig</a></code></li>
    </ul>
</div>
{% endblock %}

Zmieniamy plik wg własnych potrzeb, np:

{% extends 'base.html.twig' %}

{% block title %}Witaj Świecie!{% endblock %}

{% block body %}
<div>
    <h1>Witaj Świecie!</h1>
    <p>Witaj na mojej pierwszej stronie w Symfony!</p>

</div>
{% endblock %}

Nasza strona po odświeżeniu będzie wyglądała następująco:

Nowy widok Hello World.
Nowy widok Hello World.

Podsumowanie

W tym artykule nauczyłeś się, jak zainstalować Symfony 6 oraz skonfigurować serwer Apache z wirtualnym hostem, aby stworzyć prostą stronę „Hello World”. Przez kilka kroków opisaliśmy proces instalacji Symfony 6, dodawania apache-pack, konfiguracji serwera Apache, udostępnienia katalogu dla serwera Apache, restartowania serwera Apache, edycji kontrolera oraz widoku.

Dzięki tym krokom możemy teraz szybko tworzyć nowe projekty oparte na Symfony 6 i łatwo konfigurować środowisko lokalne na serwerze Apache. Wiedza ta jest przydatna dla każdego programisty, który chce rozpocząć pracę z frameworkiem Symfony lub udoskonalić swoje umiejętności w konfiguracji serwera Apache.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Scroll to Top