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

Publikacja projektu symfony

Aruba Cloud - Virtual Private Server VPS
0 głosów
980 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ź 471 wizyt
0 głosów
0 odpowiedzi 867 wizyt
pytanie zadane 14 maja 2017 w PHP przez MateoMat Nowicjusz (200 p.)
+2 głosów
1 odpowiedź 306 wizyt
pytanie zadane 29 października 2015 w PHP przez makoso Mądrala (7,380 p.)

93,271 zapytań

142,266 odpowiedzi

322,256 komentarzy

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...