블로그로 돌아가기

Ubuntu 20.04에서 Nginx와 함께 Laravel 설치 및 구성하기

Ubuntu 20.04에서 Nginx와 함께 Laravel 설치 및 구성하기

소개

Laravel내장 도구 및 리소스 세트를 제공하여 현대적인 PHP 애플리케이션을 개발할 수 있는 웹 애플리케이션 프레임워크입니다. 신뢰성, 성능, 효율성, 모듈성 및 보안성으로 잘 알려져 있습니다. 다양한 내장 기능 덕분에 Laravel은 인기가 엄청나게 성장했습니다. 많은 개발자가 웹 개발 프로세스를 간소화하기 위해 Laravel을 채택하고 있습니다.

가이드는 Ubuntu 20.04에서 새로운 Laravel 애플리케이션을 설치하고 구성하는 방법을 보여줍니다..

Ubuntu에서의 Laravel

우리는 Laravel을 다운로드하고 관리하기 위해 PHP 의존성 관리자인 Composer를 사용할 것입니다. Composer를 설치하려면 이 튜토리얼의 지침을 따르십시오. The Nginx 서버가 애플리케이션을 서비스할 것입니다. MySQL 데이터베이스를 사용하여 데모 Laravel 애플리케이션을 구축할 것입니다.

이 가이드는 몇 가지 전제 조건이 필요합니다. 이미 올바르게 구성된 Ubuntu 20.04 서버가 실행 중이라고 가정합니다. 참고로, 다음은 Ubuntu 서버 설정에 대한 빠른 가이드입니다. 또한 LEMP (Linux, Nginx, MySQL, PHP) 스택이 설치 및 구성되어 있어야 합니다. LEMP 스택 설치 및 구성.

에 대한 자세한 가이드가 있습니다. 다양한 패키지를 설치할 예정이므로 root 권한이 필요합니다. Ubuntu의 경우 기본적으로 root 사용자가 비활성화되어 있습니다. 따라서 sudo 권한이 있는 비-root 사용자에 대한 액세스가 필요합니다. 다음은 다른 사용자에게 sudo 권한을 부여하는 방법.

1단계 – PHP 모듈 설치

Laravel을 설치하기 전에 프레임워크에 필요한 몇 가지 중요한 PHP 모듈이 필요합니다. 이 모듈들은 Ubuntu 기본 패키지 저장소에서 직접 제공됩니다. 이 모듈들은 문자 인코딩, XML 및 정밀 수학과 같은 기능을 지원합니다.

먼저, APT 캐시를 업데이트하고 패키지를 설치합니다:

2단계 – 애플리케이션용 데이터베이스 생성

Laravel의 기능을 시연하기 위해 사용자가 방문하고 싶은 장소 목록과 이미 방문한 장소 목록을 보여주는 여행 목록 애플리케이션을 만들 것입니다. 이 데이터는 name (위치 이름) 및 visited (visited 또는 nonvisited로 표시) 필드가 있는 place 테이블에 저장할 수 있습니다. 추가 필드에는 각 항목의 고유 식별자가 포함됩니다. 데이터를 Laravel 애플리케이션과 연결하기 위해 전용 MySQL 사용자를 생성하고, 해당 사용자에게 travellist.

데이터베이스에 대한 전체 권한을 부여할 것입니다. 기본 MySQL PHP 라이브러리인 mysqlnd는 더 이상 caching_sha2_authentication을 지원하지 않습니다. 따라서 데이터베이스의 인증 방법을 mysql_native_password로 설정해야 합니다. 다음 사용자로 MySQL 셸에 액세스합니다: root:

다음으로, travellist:

그 후, 적절한 비밀번호를 가진 전용 사용자 travellist_user를 생성합니다:

사용자 travellist_user에게 travellist 데이터베이스에 대한 전체 권한을 부여합니다. 이는 또한 해당 사용자가 서버의 다른 데이터베이스를 생성하거나 수정하는 것을 방지합니다:

MySQL 셸을 종료합니다:

exit

새로운 사용자를 테스트해 보겠습니다. 다음 명령은 travellist_user 사용자로 MySQL 셸에 로그인합니다. -p 플래그는 사용자 비밀번호를 묻는 메시지를 표시합니다:

사용 가능한 모든 데이터베이스를 출력합니다. 이전에 구성한 대로 travellistinformation_schema만 표시되어야 합니다:

다음으로, 데이터 테이블 places를 생성해야 합니다. 다음 MySQL 문을 실행합니다:

테이블에 몇 가지 샘플 데이터를 채워 보겠습니다:

데이터가 데이터베이스에 성공적으로 저장되었는지 확인해 보겠습니다:

보시다시피, 테스트 테이블에 유효한 데이터가 채워졌습니다. 이제 MySQL 셸을 종료할 수 있습니다:

MySQL shell

3단계 – 새 Laravel 앱 생성

이제 Composer를 사용하여 새 Laravel 애플리케이션을 생성할 준비가 되었습니다. 데모 애플리케이션으로 travellist를 사용하겠습니다. 이 애플리케이션은 MySQL 데이터베이스의 위치 목록을 표시하여 Laravel의 기본 구성을 보여줍니다. 사용자의 홈 디렉터리로 이동합니다:

다음 단계는 Composer를 사용하여 새 Laravel 애플리케이션을 생성하는 것입니다. 그러면 기본 설정의 기본 Laravel 애플리케이션이 포함된 전용 디렉터리인 travellist가 생성됩니다. 다음 명령을 실행하세요:

composer create-project

앱이 생성되면 모든 구성 요소가 성공적으로 설치되었는지 확인할 수 있습니다:

php artisan

출력을 통해 모든 애플리케이션 파일이 제자리에 있는지 확인할 수 있습니다. 또한 모든 Laravel 명령줄 도구가 작동하는지 보장합니다. 하지만 데이터베이스를 설정하고 몇 가지 추가 조정을 하려면 여전히 앱 구성이 필요합니다.

4단계 – Laravel 구성

모든 Laravel 구성 파일은 루트 앱 디렉터리 내의 config 디렉터리 내에 저장됩니다. 또한 Composer로 Laravel을 설치하면 환경 파일도 생성됩니다. 여기에는 현재 환경에 특정한 다양한 설정이 포함되어 있습니다. 이 파일 내에 선언된 값은 config.

디렉터리의 일반 구성 파일에 설정된 값보다 우선합니다. 각 고유 설치에는 데이터베이스 연결 설정, 앱 URL, 디버그 옵션 등과 같은 값을 정의하기 위해 자체 환경 파일이 필요합니다. 환경 파일에는 데이터베이스 자격 증명, 보안 키 등과 같은 민감한 정보가 포함되어 있으므로 이 파일을 공개적으로 공유하지 않는 것을 강력히 권장합니다.

텍스트 편집기로 환경 파일을 엽니다:

다음은 샘플 환경 코드입니다:

DB_PASSWORD=password123

값을 하나씩 살펴보겠습니다:

  • APP_NAME: 이 필드는 애플리케이션의 이름을 설명합니다. 이 이름은 알림 및 메시지에 사용됩니다.
  • APP_ENV: 애플리케이션의 현재 환경입니다.
  • APP_KEY: 이 키는 Composer를 통해 Laravel을 설치할 때 자동으로 생성됩니다. 솔트 및 해시를 생성하는 데 사용됩니다. 변경할 필요가 없습니다.
  • APP_DEBUG: 디버그 모드 토글입니다. 켜져 있으면 클라이언트 측에 디버그 정보가 표시됩니다.
  • APP_URL: 앱의 기본 URL입니다. 애플리케이션 링크를 생성하는 데도 사용됩니다.
  • DB_DATABASE: 데이터베이스의 이름입니다. 이 경우 우리가 생성한 전용 데이터베이스가 됩니다.
  • DB_USERNAME: 데이터베이스에 연결할 사용자 이름입니다.
  • DB_PASSWORD: 데이터베이스에 연결할 비밀번호입니다.

변경이 완료되면 파일을 저장하고 편집기를 닫습니다.

5단계 – Nginx 설정

사용자 홈 디렉토리의 로컬 폴더에 Laravel을 성공적으로 설치했습니다. 이 구성은 로컬 개발 환경에서는 잘 작동합니다. 하지만 외부 인터넷에 개방된 웹 서버에 적용하는 것은 권장되지 않습니다.

다음 단계는 애플리케이션을 다음 위치로 이동하는 것입니다: /var/www 이곳은 Nginx에서 실행되는 웹 앱의 일반적인 위치입니다. 다음 명령어를 사용하세요: mv 명령어를 사용하여 travellist을(를) 다음 위치로 이동합니다: /var/www/travellist:

다음으로, 사용자에게 다음 폴더에 대한 쓰기 권한을 부여합니다: storagecache 폴더. 이 폴더들은 Laravel 앱에서 생성된 파일들이 위치하는 곳입니다:

이제 애플리케이션 파일이 제자리에 준비되었습니다. 하지만 Nginx가 이 콘텐츠를 서비스하도록 설정해야 합니다. 새로운 가상 호스트 설정 파일을 생성하세요:

다음은 Nginx에서 실행되는 Laravel 애플리케이션에 권장되는 설정 샘플입니다:

이제 새로운 가상 호스트 설정 파일을 활성화할 차례입니다. 다음 디렉토리에 심볼릭 링크를 생성하세요: sites-enabled 디렉토리:

다음 Nginx 명령어를 사용하여 설정 파일의 구문 오류를 테스트합니다:

그런 다음, Nginx를 재로드합니다:

이제 도메인 이름 또는 IP 주소(다음 지시어에 정의된 대로)를 사용하여 애플리케이션에 접속할 수 있습니다: server_name 지시어):

Installing Laravel image 3

Step 6 – Customizing the Main Page

Laravel 애플리케이션 설정이 완료되었으므로 이제 작업을 시작할 수 있습니다. 데모를 위해, 데이터베이스 테이블인 places의 샘플 데이터를 보여주는 샘플 페이지를 만들어 보겠습니다. 먼저, 텍스트 에디터로 메인 라우트 파일을 엽니다:

이 파일에는 기본적으로 일부 내용이 포함되어 있습니다. 여기서 라우트는 정적 메서드(Route::get)를 사용하여 정의됩니다. 이 메서드는 pathcallback function을 인수로 받습니다.

코드를 다음과 같이 변경합니다:

Installing Laravel image 2

파일을 저장하고 편집기를 닫습니다. 다음으로, 데이터베이스 쿼리 결과를 사용자에게 렌더링할 레이아웃을 생성합니다. 다음 경로 내에 새 파일을 생성합니다: resource/views:

다음 코드에서는 다음 값에 따라 두 개의 장소 목록을 생성했습니다: visitedtogo:

Installing Laravel image 1

파일을 저장하고 편집기를 닫습니다. 이제 웹 앱 페이지에 다시 접속합니다:

Travel list

짜잔! 이제 콘텐츠에 MySQL 데이터베이스를 사용하는 기능적인 Laravel 애플리케이션이 완성되었습니다.

마치며

이 튜토리얼에서는 Ubuntu 20.04 서버에서 실행되는 LEMP 스택 위에 Laravel 애플리케이션을 설정하는 방법을 설명했습니다. 또한 기본 라우트를 사용자 정의하여 데이터베이스 콘텐츠를 쿼리하고 결과를 맞춤형 뷰에 표시하는 방법도 보여주었습니다. Laravel에 대한 자세한 내용은 다음의 공식 문서를 참조하세요: , 라우트, 및 데이터베이스 지원.

이 튜토리얼의 설치는 독립형 가상 머신에서 수행됩니다. 하지만 다음과 같이 할 수도 있습니다: Docker의 LEMP 스택에 Laravel 배포.

즐거운 컴퓨팅 되세요!

author

Hark Labs

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.