AmazonLinux2 Laravel 환경 구축 노트

이번 환경


  • EC2:Amazon Linux2
  • PHP 7.3
  • Composer
  • Laravel Framework 6.17.1

  • 초기 설정



    패키지 업데이트~시간대 업데이트까지

    AWS EC2 + Amazon Linux2 + 기본 설정을 시도한 메모

    Apache 설치



    매번 익숙한 "Apache"씨

    설치
    $ sudo yum install httpd
    

    Apache 시작
    $ sudo systemctl start httpd
    

    시작 확인
    $ sudo systemctl status httpd
    

    Active: active (running) 같은 것이 나오면 좋다

    시스템 부팅 시 부팅 설정
    $ sudo systemctl enable httpd
    

    Windows에서 말하는 곳의 시작처럼

    위 설정 확인
    $ sudo systemctl is-enabled httpd
    

    enabled가 나오면 OK

    조사하고 있으면 「Nginx」라고 하는 것도 있었으므로 그중 만져보고 싶다
    Apache와 Nginx 비교

    PHP 설치



    설치
    $ sudo amazon-linux-extras install php7.3
    

    버전 확인
    $ php -v
    
    PHP 7.3.14 (cli) (built: Feb 21 2020 01:59:28) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
    

    설치된 모듈 확인
    $ sudo yum list php* | grep php7.3
    

    관련 모듈 설치
    $ yum install php-xml php-mbstring php-dom php-zip
    

    다음 중 하나가 없으면 설치
    없으면 Laravel의 설치시나 프로젝트 작성시에 이끼 같다.
  • php-xml
  • php-mbstring
  • php-dom
  • php-zip

  • PHP 설정



    이쪽을 참고로

    AmazonLinux2에서 Laravel 개발 환경 구축
    nginx와 PHP-FPM의 작동 방식을 제대로 이해하면서 PHP 실행 환경 구축

    설정 파일 열기
    $ sudo vi /etc/php.ini
    

    열면 다음과 같이 수정

    php.ini
    # HTTPヘッダにPHPのバージョンを記載しない(セキュリティ的に)
    # expose_php = On
    expose_php = Off
    
    # メモリ上限を引き上げる(結構デフォルトのメモリは少なめ)
    # memory_limit = 128M
    memory_limit = 256M
    
    
    # POST送信の許容サイズを引き上げる
    # post_max_size = 8M
    post_max_size = 16M
    
    # アップロードファイルの許容サイズを引き上げる
    # upload_max_filesize = 2M
    upload_max_filesize = 16M
    
    # timezoneの設定
    # date.timezone =
    date.timezone = Asia/Tokyo
    

    php-fpm 재시작 (php.ini 설정을 반영하기 위해)
    $ sudo systemctl restart php-fpm
    

    Laravel 프로젝트 만들기



    Laravel 설치 AmazonLinux2

    compoer 설치
    $ curl -sS https://getcomposer.org/installer | php
    
    # Pathの通っている/usr/binに移動させる
    $ mv composer.phar /usr/local/bin/composer
    

    이제 compoer를 사용할 준비가 되었습니다.
    바로 프로젝트를 만들어 가자.

    "/var/www/html"당 프로젝트를 만들까!
    라고 생각하면 에러가 되므로, 이번은 다른 곳에 만듭니다.
    ※ 아무래도 작성하고 싶은 경우는 권한을 괴롭히고

    작업 폴더 만들기 및 이동
    $ mkdir ~/html
    $ cd ~/html
    

    Laravel 프로젝트 만들기
    $ composer create-project --prefer-dist laravel/laravel blog
    

    ※ VSCode의 Remote-SSH를 사용해 조작하고 있습니다만, 프로젝트 작성시에 처리 떨어지는 일이 있습니다.

    프로젝트 업데이트
    $ cd ~/html/blog
    $ composer update
    

    권한 주위 변경
    $ cd ~
    $ chmod -R 775 ~
    $ chmod -R 775 ~/html
    $ chmod -R 777 ~/html/blog/bootstrap/cache
    $ chmod -R 777 ~/html/blog/storage
    

    Laravel 버전 확인



    프로젝트 폴더에서 다음 명령

    버전 확인 명령
    $ cd ~/html/blog/
    $ php artisan -V
    

    Apache 설정



    conf 작성
    $ sudo vi /etc/httpd/conf.d/xxxxx.conf
    

    ※「xxxxx.conf」는 임의의 이름입니다.

    xxxxx.conf
    DocumentRoot /home/ec2-user/html/blog/public
    <Directory /home/ec2-user/html/blog/public>
        #.htaccessを利用可能にする
        AllowOverride All
    
        #アクセス許可
        Require all granted
    </Directory>
    

    이것을 쓰고 저장

    확인



    서버 주소를 브라우저에서 두드려 동작 확인
    demo 화면이 나타나면 OK



    MySql5.6 설치



    리포지토리 추가
    $ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
    

    Amazon Linux2에는 MySql 5.6이 없으므로 리포지토리를 추가합니다.

    리포지토리 전환
    $ sudo yum-config-manager --disable mysql57-community
    $ sudo yum-config-manager --enable mysql56-community
    

    추가한 리포지토리의 기본값은 5.7이므로
    다음 상태로 한다.
  • 5.7 비활성화
  • 5.6 사용

  • 설치부터 시작까지
    $ sudo yum -y install mysql-community-server
    $ sudo systemctl enable mysqld
    $ sudo systemctl start mysqld
    

    위에서 순서대로 이런 느낌의 설정
  • 설치
  • 서비스 자동 시작 사용
  • 서비스 시작

  • 시작 확인
    $ sudo systemctl status mysqld
    

    확인은 아파치 때처럼
    Active: active (running) 같은 것이 나오면 좋다

    초기 설정
    mysql_secure_installation
    

    "Enter current password for root (enter for none): "
    번역 : 루트의 현재 암호를 넣어!

    없기 때문에 그대로 Enter
    그리고는 모두 「y」로 OK

    튜토리얼 소개



    환경 설정 후에는 튜토리얼을 하고 싶은 사람(나)용으로 튜토리얼을 몇개인가 찾아 왔습니다.
  • 처음 Laravel 애플리케이션 가이드
  • Laravel 5.4에서 간단한 CMS를 만드는 자습서
  • 입문 Laravel 튜토리얼 (1) 소개와 환경 구축
  • 좋은 웹페이지 즐겨찾기