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

Publikacja projektu symfony

Object Storage Arubacloud
0 głosów
807 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ź 411 wizyt
0 głosów
0 odpowiedzi 836 wizyt
pytanie zadane 14 maja 2017 w PHP przez MateoMat Nowicjusz (200 p.)
+2 głosów
1 odpowiedź 255 wizyt
pytanie zadane 29 października 2015 w PHP przez makoso Mądrala (7,380 p.)

92,661 zapytań

141,554 odpowiedzi

319,995 komentarzy

62,028 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...