수색…


비고

Laravel 프로젝트를 공유 호스팅에 배포하는 방법에 대한 자세한 내용은 Github 레포를 참조하십시오.

Linux 서버의 공유 호스팅에 대한 Laravel 5 앱

기본적으로 Laravel 프로젝트의 public 폴더는 어느 곳에서나 요청할 수있는 앱의 콘텐츠를 공개하며 나머지 앱 코드는 적절한 권한이없는 사람에게는 보이지 않거나 액세스 할 수 없습니다.

개발 컴퓨터에서 응용 프로그램을 개발 한 후 프로덕션 서버에 푸시해야 어디서나 인터넷을 통해 액세스 할 수 있습니다.

대부분의 앱 / 웹 사이트의 경우 첫 번째 선택은 GoDaddy, HostGator 등과 같은 호스팅 서비스 제공 업체의 공유 호스팅 패키지를 사용하는 것입니다. 주로 저렴한 비용 때문입니다.

note : 공급자에게 document_root 를 수동으로 변경하도록 요청할 수 있으므로 Laravel 응용 프로그램을 FTP를 통해 서버에 업로드하고 루트를 {app} / public으로 변경해야합니다.

그러나 이러한 공유 호스팅 패키지에는 터미널 액세스 및 파일 사용 권한면에서 한계가 있습니다. 기본적으로 공유 호스팅 계정의 public_html 폴더에 앱 / 코드를 업로드해야합니다.

따라서 Laravel 프로젝트를 공유 호스팅 계정에 업로드하려면 어떻게해야할까요? 전체 앱 (폴더)을 공유 호스팅 계정의 public_html 폴더에 업로드해야합니까? - 확실히 NO

public_html 폴더의 모든 항목은 "공개적으로 즉 누구든지 액세스 할 수 있으므로 큰 보안 위험이 따릅니다.

공유 호스팅 계정 - Laravel 방식으로 프로젝트를 업로드하는 단계

1 단계
public_html 폴더와 동일한 레벨에 laravel (또는 원하는대로)이라는 폴더를 만듭니다.

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

2 단계
laravel 폴더 (서버 호스트 - 공유 호스팅 계정)의 laravel 프로젝트 (개발 컴퓨터의)에서 public 폴더를 제외한 모든 것을 복사하십시오.
당신이 사용할 수있는:

  • C- 패널 : 가장 느린 옵션이 될 것입니다.
  • FTP 클라이언트 : FileZilla 와 마찬가지로 공유 호스팅 계정에 연결하고 FTP 업로드를 통해 파일 및 폴더를 전송합니다.
  • 네트워크 드라이브 매핑 : 개발 컴퓨터에서 매핑 된 네트워크 드라이브를 만들어 네트워크 주소로 " ftp : // your-domain-name "을 사용하여 공유 호스팅 계정의 루트 폴더에 연결할 수 있습니다.

3 단계
laravel 프로젝트의 public 폴더를 열고 (개발 컴퓨터에서) 모든 것을 복사하고 public_html 폴더 (서버 호스트 - 공유 호스팅 계정에 있음)에 붙여 넣습니다.
4 단계
이제 공유 호스팅 계정 (cpanel 편집기 또는 다른 연결된 편집기에서)의 public_html 폴더에있는 index.php 파일을 열고 다음을 수행하십시오.

변화:

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

에:

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

그리고 변경 :

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

에:

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

저장하고 닫습니다.

5 단계
이제 laravel 폴더 (공유 호스팅 계정 -server)로 이동하여 server.php 파일을 엽니 다.
변화

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

에:

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

저장하고 닫습니다.

6 단계
laravel/storage 폴더 (재귀 적으로)와 모든 파일, 하위 폴더 및 그 안에있는 파일을 공유 호스팅 계정 - 서버에서 777 합니다.
참고 : linux의 파일 사용 권한에주의 하십시오. 양날 검과 같습니다. 제대로 사용하지 않으면 공격에 취약해질 수 있습니다. Linux 파일 사용 권한을 이해 하려면 https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions 를 읽어보십시오.

7 단계

로컬 / 개발 서버의 .env 파일은 자식에 의해 무시되므로 APP_KEY를 포함한 모든 환경 변수가 있으므로 무시해야하며 리포지토리로 밀어 넣어 공개해서는 안됩니다. ' .gitignore 파일은 .env 언급되어 있으므로 저장소에 업로드하지 않는다는 것을 볼 수 있습니다.

위의 모든 단계를 수행 한 후 laravel 폴더에 .env 파일을 만들고 로컬 / 개발 서버의 .env 파일에서 사용한 모든 환경 변수를 프로덕션 서버의 .env 파일에 추가합니다.

심지어 app.php , database.php 와 같은 설정 파일이 env() 의 두 번째 매개 변수에서이 변수를 기본적으로 정의하는 laravel 응용 프로그램의 config 폴더에 있지만이 파일의 값을 하드 코드하지 마십시오. 저장소를 가져온 사용자의 구성 파일. 따라서 .env 파일을 수동으로 생성하는 것이 좋습니다!

또한 laravel은 참조로 사용할 수있는 .env-example 파일을 제공합니다.

그게 전부 야.

이제 서버로 도메인을 구성한 URL을 방문하면 laravel 응용 프로그램은 localhost - 개발 컴퓨터에서 작동하는 것처럼 작동해야하지만 응용 프로그램 코드는 안전하며 적절한 파일 권한이없는 사람은 액세스 할 수 없습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow