Szukaj…


Uwagi

Aby uzyskać więcej informacji na temat wdrażania projektu Laravel na hostingu współdzielonym, odwiedź to repozytorium Github.

Aplikacja Laravel 5 na Shared Hosting na Linux Server

Domyślnie folder public projektu Laravel udostępnia zawartość aplikacji, której może zażądać ktokolwiek z dowolnego miejsca, reszta kodu aplikacji jest niewidoczna lub niedostępna dla każdego bez odpowiednich uprawnień.

Po opracowaniu aplikacji na maszynie programistycznej należy ją przenieść na serwer produkcyjny, aby można było uzyskać do niej dostęp z Internetu z dowolnego miejsca - prawda?

W przypadku większości aplikacji / stron internetowych pierwszym wyborem jest użycie współdzielonego pakietu hostingowego od dostawców usług hostingowych, takich jak GoDaddy, HostGator itp., Głównie ze względu na niski koszt.

Uwaga: Można zwrócić się do dostawcy ręcznie zmienić document_root, więc wszystko co musisz zrobić, to przesłać swoją aplikację laravel do serwera (poprzez FTP), żądanie zmiany korzenia do {app} / publiczne i powinno być dobrze.

Takie współdzielone pakiety hostingowe mają jednak ograniczenia w zakresie dostępu do terminali i uprawnień do plików. Domyślnie należy przesłać swoją aplikację / kod do folderu public_html na współdzielonym koncie hostingowym.

Więc jeśli chcesz załadować projekt Laravel na wspólne konto hostingowe, jak byś to zrobił? Czy należy przesłać całą aplikację (folder) do folderu public_html na współdzielonym koncie hostingowym? - Z pewnością NIE

Ponieważ wszystko w folderze public_html jest dostępne „publicznie, tj. Dla każdego”, co stanowiłoby duże zagrożenie bezpieczeństwa.

Kroki, aby przesłać projekt na wspólne konto hostingowe - sposób Laravela

Krok 1
Utwórz folder o nazwie laravel (lub cokolwiek lubisz) na tym samym poziomie, co folder public_html .

Eg:  
/
|--var  
    |---www
        |----laravel       //create this folder in your shared hosting account
        |----public_html  
        |----log  

Krok 2
Skopiuj wszystko oprócz folderu public z projektu laravel (na komputerze deweloperskim) do folderu laravel (na hoście serwera - konto hostingu współdzielonego).
Możesz użyć:

  • Panel C: co byłoby najwolniejszą opcją
  • Klient FTP: jak FileZilla, aby połączyć się z twoim współdzielonym kontem hostingowym i przesłać swoje pliki i foldery poprzez przesyłanie FTP
  • Mapuj dysk sieciowy: możesz także utworzyć mapowany dysk sieciowy na komputerze programistycznym, aby połączyć się z folderem głównym konta współdzielonego hostingu, używając „ ftp: // nazwa-domeny ” jako adresu sieciowego.

Krok 3
Otwórz folder public swojego projektu laravel (na komputerze deweloperskim), skopiuj wszystko i wklej do folderu public_html (na hoście serwera - konto hostingu współdzielonego).
Krok 4
Teraz otwórz plik index.php w folderze public_html na współdzielonym koncie hostingowym (w edytorze cpanel lub innym podłączonym edytorze) i:

Zmiana:

require __DIR__.'/../bootstrap/autoload.php';   

Do:

require __DIR__.'/../laravel/bootstrap/autoload.php';  

I zmień:

$app = require_once __DIR__.'/../bootstrap/app.php';

Do:

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Zapisz i zamknij.

Krok 5
Teraz przejdź do folderu laravel (na współużytkowanym laravel hostingowym) i otwórz plik server.php
Zmiana

require_once __DIR__.'/public/index.php';

Do:

require_once __DIR__.'../public_html/index.php';  

Zapisz i zamknij.

Krok 6
Ustaw uprawnienia do plików dla folderu laravel/storage (rekurencyjnie) i wszystkich plików, podfolderów i plików w nich na współdzielonym koncie hostingowym - serwerze na 777 .
Uwaga: Uważaj na uprawnienia do plików w systemie Linux, są one jak miecz obosieczny, jeśli nie będą używane prawidłowo, mogą narazić Twoją aplikację na ataki. Aby zrozumieć uprawnienia do plików systemu Linux, przeczytaj https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

Krok 7

Ponieważ plik .env serwera lokalnego / programistycznego jest ignorowany przez git i powinien zostać zignorowany, ponieważ zawiera wszystkie zmienne środowiskowe, w tym klucz APP_KEY, i nie powinien być udostępniany publicznie przez wypychanie go do repozytoriów. Można również zauważyć, że .gitignore plik ma .env wspomniano zatem nie będzie przesłać go do repozytoriów.

Po wykonaniu wszystkich powyższych kroków .env plik .env w folderze laravel i dodaj całą zmienną środowiskową, której użyłeś, z pliku .env serwera lokalnego / programistycznego do pliku .env serwera produkcyjnego.

Nawet istnieją pliki konfiguracyjne, takie jak app.php , database.php w folderze config aplikacji laravel, który domyślnie definiuje te zmienne w drugim parametrze env() ale nie koduje na stałe wartości w tych plikach, ponieważ wpłynie to na pliki konfiguracyjne użytkowników, którzy ściągają twoje repozytorium. Dlatego zaleca się .env utworzenie pliku .env !

Laravel podaje .env-example plik .env-example , którego można użyć jako odniesienia.

Otóż to.

Teraz, gdy odwiedzasz adres URL, który skonfigurowałeś jako domenę na serwerze, Twoja aplikacja laravel powinna działać tak samo, jak działała na komputerze hosta lokalnego - podczas gdy kod aplikacji jest bezpieczny i nie jest dostępny dla nikogo bez odpowiednich uprawnień do plików.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow