Install Laravel trên Amazon Linux 2

Giới thiệu

Ở bài viết này mình sẽ hướng dẫn các bạn từng bước để cài đặt ứng dụng Laravel trên AWS EC2.

Chuẩn bị

Tất nhiên bạn đã có tài khoản trên AWS và đã tạo Instance để lưu trữ ứng dụng WEB của mình. Trường hợp bạn chưa có và chưa biết gì thì làm theo Link hướng dẫn bên dưới nhé.

Nếu có ai thắc mắc về sự khác nhau giữa Amazon Linux 2 và Amazon Linux AMI thì hẹn bạn trong bài viết khác nhé! Còn bây giờ mình sẽ tập trung vào cài đặt ứng dụng Laravel chạy trên EC2

Thực hiện

OK tới đây thì mình mặc nhiên là đã có Instance đã được cài đặt LAMP hoàn chỉnh, chúng ta sẽ tiến hành những bước tiếp theo

  1. Connect ec2 via SSH: Ở bài viết này mình sẽ hướng dẫn các bạn access lên môi trường thông qua SSH với Key Pairs.

    • Access theo link https://console.aws.amazon.com/ec2/
    • Ở menu bên trái bạn chọn option Key Pairs, nếu như bạn không thấy Menu bên trái thì có lẽ nó đã bị ẩn đilúc này bạn hãy bấm vào mũi tên để mở nó ra nhé.
    • Bấm nút Create Key Pair
    • Nhập tên cho key pairs vào ô Key pair name (muốn nhập gì thì nhập nhé VD: happy-coding) sau đó bạn bấm nút Create
    • Ok lúc này AWS sẽ tạo cho bạn 1 key file với tên là happy-coding và sẽ tự động download về browser của bạn
    • Đây là cơ hội duy nhất để bạn download key file vừa mới tạo ra vì vậy bạn nên move nó vào 1 nơi an toàn nhé.

    Được rồi như vậy bạn đã có chìa khóa rồi giờ thì đi mở cửa thôi. Mở terminal lên và thực hiện:

    chmod 400 happy-coding.pem
    ssh -i "happy-coding.pem" ec2-user@ecX-XX-XXX-XXX-XXX.us-east-2.compute.amazonaws.com

    Được rồi chúng ta cùng phân tích câu lệnh ở trên nhé

    happy-coding.pem là file key Pairs chúng ta vừa tạo ở trên ec2-XX-XXX-XXX-XXX.us-east-2.compute.amazonaws.com đây chính là Public DNS bạn có thể lấy thông tin này ở phần quản lý Instances

    Enter và connect thành công! nếu như chưa thành công thì bạn đọc kỹ lại các bước ở trên và làm lại nhé :D

  2. Install Composer:

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    sudo mv composer.phar /usr/local/bin/composer
  3. Tạo mới project với composer

    cd /var/www/html
    composer create-project --prefer-dist laravel/laravel happy-coding
  4. Update file httpd.conf

    sudo nano /etc/httpd/conf/httpd.conf

    Bạn tìm tới block code

    <Directory "/var/www/html/worker">...</Directory>

    Và thay thế bằng block code bên dưới

    <Directory "/var/www/html/happy-coding">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.4/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
    
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
    
        #
        # Controls who can get stuff from this server.
        #
        Require all granted
    </Directory>
  5. Restart HTTPD service

    sudo systemctl restart httpd
  6. Access vào Laravel app access theo link Public DNS và bạn sẽ thấy được thành quả của mình

Screen Shot 2019-01-04 at 9.53.20 AM.png

Kết luận

Đây là hướng dấn cơ bản để bạn có thể tạo một App Laravel trên AWS EC2 bài viết của mình hi vọng sẽ giúp ích được cho những bạn mới làm web với AWS EC2 và laravel. Nếu trong quá trình thực hiện có vấn đề gì thì vui lòng để lại comment bên dưới nhé. Thanks!

Posted in AWS, PHP, Vietnam Offshore on Jan 04, 2019