• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Publikacja projektu symfony

VPS Starter Arubacloud
0 głosów
763 wizyt
pytanie zadane 8 czerwca 2018 w PHP przez michal Mądrala (5,560 p.)
Witam. Czy mógłby ktoś opisać w miarę szczegółowo w jaki sposób opublikować projekt symfony na hostingu? Przeglądałem dokumentację, ale nie mogę do końca zrozumieć jak to ma się odbywać. Mam projekt na dysku i uruchamiam go lokalnie poprzez polecenie bin/console server:run, a w jaki sposób to umieścić na serwerze produkcyjnym? Czy cały projekt trzeba przenieść do public_html, czy z projektu wygenerować jakieś pliki tak aby publicznie nie było dostępu do wersji developerskiej?  Z góry dzięki za wszelkie wskazówki.

1 odpowiedź

0 głosów
odpowiedź 10 czerwca 2018 przez Bosswell Nałogowiec (36,470 p.)
edycja 10 czerwca 2018 przez Bosswell

Pierwszy sposób.

1. Dostawcy hostigu oferują wybór głównego publicznego folderu. Ustawiasz ścieżkę na 'web' lub 'public', zależnie od wersji Symfony.

2. Edytujesz informacje zawarte w pliku parameters.yml na parametry twjego serwera tj. loginy, hasła


Drugi sposób:

1. W pliku composer.json musisz podmienić

"extra": {
        "symfony-app-dir": "app",
        "symfony-bin-dir": "bin",
        "symfony-var-dir": "var",
        "symfony-web-dir": "web",
        "symfony-tests-dir": "tests",
        "symfony-assets-install": "relative",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        },
        "branch-alias": null
    }

"symfony-web-dir": "web" na "symfony-web-dir": "public_html"

W przypadku jeśli główny folder to public_html,

2. W pliku config.yml musisz podmienić wszystkie ścieżki z 'web' na 'public_html', jeżeli masz coś podmienić. Może masz jakieś parametry.

3. Podmieniasz zawartość pliku parameters.yml


Serwer sobie poradzi, jak naprowadzisz go na główny folder publiczny. Jak nie znajdzie index.php to będzie szukał app.php

Ten 'public_html' to tak jakby 'web' lub 'public'

W Symfony 4. oprócz parameters.yml, musisz edytować także .env

komentarz 10 czerwca 2018 przez michal Mądrala (5,560 p.)
Dziękuje za obszerne wyjaśnienie, mam jeszcze pytanko czy po tej całej konfiguracji którą opisałeś to cały projekt (wszystkie pliki i foldery) trzeba przerzucić na hosting ?
komentarz 11 czerwca 2018 przez Bosswell Nałogowiec (36,470 p.)
Prawie wszystkie, wszystkie albo żadnego.

Pakujesz taki projekt w zipa i wysyłasz na serwer przez FTP. Następnie łączysz się przez SSH i rozpakowywujesz z poziomu terminala. Przesyłanie nie spakowanego projektu zajmie Ci bardzo dużo czasu. Bo w Symfony jest bardzo dużo plików.

Mozesz tez przesłać wszystko oprócz   folderu vendor. A następnie przez SSH odpalić composer install. Na serwerze oczywiście musi być zainstalowany composer. Zanim weźmiesz się do przenoszenia to wyczyść pamięć cache.

Jezeli projekt przechowujesz na GitHubie to przez SSH możesz użyć polecenia git clone i composer update. Tylko pamiętaj o doslaniu przez FTP pliku parameters.yml. Bo w gitignore plik ten jest ignorowany, wiec nie znajdziesz go na githubie
komentarz 11 czerwca 2018 przez michal Mądrala (5,560 p.)
Chciałbym się jeszcze upewnić czy dobrze rozumie. Czyli tak naprawdę chodzi o to żeby nakierować użytkownika jak wchodzi na nasza stronę na katalog web i to tak naprawdę wszystko do poprawnego działania? Mam jeszcze pytanie odnośnie tej zmiany w composer.json. Jeśli zmienie tam z web na public_html to muszę po tym wykonać composer insatll, żeby dokonać tych zmian przed przerzuceniem projektu na hosting? Zastanawia mnie jeszcze jedna kwestia, jeżeli cały projekt wrzucę do katalogu publicznego na serwerze, to czy jest to bezpieczne? Co przypadku gdy ktoś poda ścieżkę  .../app_dev.php, ewentualnie ma dostęp do plików z cala konfiguracja? No chyba że tutaj coś jestem w błędzie?
komentarz 11 czerwca 2018 przez Bosswell Nałogowiec (36,470 p.)
Nie wrzucasz całego projektu do katalogu publicznego. Jedynie folder 'web' jest publiczny. Reszta folderów umieszczona jest obok niego. Folder 'web' to odpowiednik 'public_html' na serwerze. Ty nie musisz nakierowywać użytkownika na ten folder. Wystarczy, ze odpowiednio prześlesz pliki i wszystko będzie cacy. Jeżeli ktoś poda ścieżkę app_dev.php to nie uda mu się przejść. Jak otworzysz ten plik to zobaczysz w jaki sposób jest on chroniony. Możesz go użyć jedynie wtedy, kiedy Symfony działa lokalnie.

Podobne pytania

0 głosów
1 odpowiedź 399 wizyt
0 głosów
0 odpowiedzi 827 wizyt
pytanie zadane 14 maja 2017 w PHP przez MateoMat Nowicjusz (200 p.)
+2 głosów
1 odpowiedź 238 wizyt
pytanie zadane 29 października 2015 w PHP przez makoso Mądrala (7,380 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...