Cài đặt Laravel with Nginx on CentOS 8

Laravel là một mã nguồn mở dựa trên PHP, nổi tiếng và hiện đại với cú pháp diễn đạt, trang nhã và dễ hiểu, giúp dễ dàng xây dựng các ứng dụng web lớn và mạnh mẽ.

Các tính năng chính của nó bao gồm một công cụ định tuyến đơn giản, nhanh chóng, bộ chứa phụ thuộc mạnh mẽ, nhiều đầu cuối để lưu trữ phiên và bộ nhớ cache, cơ sở dữ liệu trực quan và trực quan ORM (Ánh xạ quan hệ đối tượng), xử lý công việc nền mạnh mẽ và phát sóng sự kiện thời gian thực.

Ngoài ra, nó sử dụng các công cụ như Composer - một trình quản lý gói PHP để quản lý các phần phụ thuộc và Artisan - một giao diện dòng lệnh để xây dựng và quản lý các ứng dụng web.

Trong bài viết này, bạn sẽ học cách cài đặt phiên bản mới nhất của khuôn khổ web Laravel PHP trên bản phân phối CentOS 8 Linux.

Yêu cầu máy chủ

  • PHP >= 7.2.5 with these PHP extensions OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype and JSON.
  • Composer – for installing and manage dependencies.

 

1.  Cài đặt LEMP Stack in CentOS 8

Để bắt đầu, hãy cập nhật gói phần mềm hệ thống và cài đặt ngăn xếp LEMP (Linux, Nginx, MariaDB / MySQL và PHP) bằng cách sử dụng các lệnh dnf sau.

sudo dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip

Khi quá trình cài đặt LEMP hoàn tất, bạn cần khởi động các dịch vụ PHP-FPM, Nginx và MariaDB bằng các lệnh systemctl sau.

sudo systemctl start php-fpm nginx mariadb
sudo systemctl enable php-fpm nginx mariadb
sudo systemctl status php-fpm nginx mariadb

Tiếp theo, bạn cần bảo mật và làm cứng cơ sở dữ liệu MariaDB bằng cách sử dụng tập lệnh bảo mật như được hiển thị.

mysql_secure_installation

Trả lời các câu hỏi sau để bảo mật cài đặt máy chủ.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

Nếu bạn đang chạy dịch vụ firewalld, bạn cần mở dịch vụ HTTP và HTTPS trong tường lửa để kích hoạt các yêu cầu của ứng dụng khách tới máy chủ web Nginx.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --

Cuối cùng bạn chạy thử lên trình duyệt:

http://server-IP

2.  Cầu hình, securing PHP-FPM và cấu hình Nginx

Để xử lý yêu cầu từ nginx web service, PHP-FPM có thể lắng nghetrên on a Unix socket or TCP socket và được cấu hình trên file /etc/php-fpm.d/www.conf.

vi /etc/php-fpm.d/www.conf

Set PHP-FPM Listen Socket. Tìm đến listen = /run/php-fpm/www.sock và bỏ dấu ; nếu có

listen = /run/php-fpm/www.sock

Nếu sử dụng Unix socket bạn cũng nên đặt ownership and permissions như bên dưới

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Bỏ dấu ; ở dòng security.limit_extensions = .php .php3 .php4 .php5 .php7

security.limit_extensions = .php .php3 .php4 .php5 .php7

Giới hạn lần thực thi php extention

Tiếp tục bạn sẽ cần phải set time zone trong file /etc/php.ini

vi /etc/php.ini

 Sửa như sau

date.timezone = Asia/Ho Chi Minh

Tiếp tục set cgi.fix_pathinfo=1 thành cgi.fix_pathinfo=0

3. Cài đặt composer và laravel framework

Cài đặt composer và phần quyền

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Khởi tạo project laravel trực tiếp trên server

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Tiếp tục sẽ cầu hình ownership and permissions cho storage và cache

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

Nếu SELinux được bật trên máy chủ của bạn, bạn cũng nên cập nhật ngữ cảnh bảo mật của thư mục lưu trữ và bootstrap / cache.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/ken92.com'

4. Cấu hình máy chủ nginx cho laravel

Đi đến etc/nginx/conf.d và tạo file

 vi /etc/nginx/conf.d/ken92.com.conf

Cập nhật cấu hình cho file ken92.com.conf

server {
listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
         try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Kiếm tra cú pháp trong file vừa tạo 

nginx -t

Khởi động lại PHP-FPM and Nginx services

systemctl restart php-fpm
systemctl restart nginx

Bây giờ các bạn có thể chạy website của mình nên trình duyệt được rồi. Nếu gặp lỗi gì các bạn có thể để lại bình luận ở bên dưới