Laravel là một framework PHP mã nguồn mở tuân theo mô hình thiết kế MVC (Model-View-Controller). Nó được Taylor Otwell tạo ra vào năm 2011 như một nỗ lực cung cấp một giải pháp thay thế nâng cao cho framework CodeIgniter (CI). Vào năm 2011, dự án Laravel đã phát hành phiên bản 1 và 2, năm nay phiên bản 5.4 đã được phát hành với nhiều cải tiến như hỗ trợ Dòng lệnh (CLI) có tên là 'artisan', hỗ trợ tích hợp cho nhiều loại cơ sở dữ liệu hơn và định tuyến được cải thiện.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Laravel Web Framework với máy chủ web Nginx, PHP-FPM 7.1 và MariaDB trên hệ thống CentOS 7. Tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình Laravel trong ngăn xếp LEMP trên máy chủ CentOS 7.
Hướng dẫn này cũng khả dụng cho Laravel trên Ubuntu.
Điều kiện tiên quyết:
Trong hướng dẫn này, chúng ta cần kho lưu trữ EPEL để cài đặt Nginx vì các gói Nginx không tồn tại trong kho lưu trữ CentOS chính thức. Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Kho lưu trữ EPEL đã được cài đặt.
Cài đặt Nginx 1.10 từ kho lưu trữ EPEL bằng lệnh yum.
Khi quá trình cài đặt hoàn tất, hãy khởi động Nginx và thêm nó để bắt đầu khi khởi động.
Nginx đang chạy trên cổng 80, hãy kiểm tra bằng lệnh netstat bên dưới.
Trong trường hợp bạn nhận được kết quả là 'Command not found', hãy cài đặt gói net-tools như hiển thị bên dưới.
PHP 7.1 không tồn tại trong kho lưu trữ cơ sở CentOS, chúng ta cần cài đặt nó từ kho lưu trữ của bên thứ ba có tên là 'webtatic'.
Cài đặt kho lưu trữ webtatic bằng lệnh rpm này.
Bây giờ chúng ta có thể cài đặt PHP-FPM với tất cả các tiện ích mở rộng cần thiết của Laravel chỉ bằng một lệnh yum.
PHP 7.1 đã được cài đặt trên CentOS của chúng tôi 7 system.
Tiếp theo, cấu hình PHP bằng cách chỉnh sửa tệp cấu hình php.ini bằng vim.
Bỏ chú thích dòng bên dưới và thay đổi giá trị thành 0.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chỉnh sửa tệp PHP-FPM www.conf.
PHP-FPM sẽ chạy dưới người dùng và nhóm 'nginx', hãy thay đổi giá trị của hai dòng bên dưới thành 'nginx'.
Thay vì sử dụng cổng máy chủ, PHP-FPM sẽ chạy dưới tệp asocket. Thay đổi giá trị 'listen' thành đường dẫn '/run/php-fpm/php-fpm.sock' như hiển thị bên dưới.
Chủ sở hữu tệp socket sẽ là người dùng 'nginx' và chế độ cấp phép là 660. Bỏ chú thích và thay đổi tất cả các giá trị như sau:
Đối với các biến môi trường, bỏ chú thích các dòng này và đặt các giá trị như hiển thị bên dưới.
Lưu tệp và thoát khỏi vim, sau đó khởi động PHP-FPM và cho phép chạy khi khởi động.
PHP-FPM đang chạy dưới tệp socket, hãy kiểm tra bằng lệnh bên dưới.
Quá trình cài đặt và cấu hình PHP và PHP-FPM 7.1 đã hoàn tất.
Khi quá trình cài đặt hoàn tất, hãy khởi động 'mariadb' và cho phép nó khởi động khi khởi động.
MariaDB đã được khởi động và đang chạy trên cổng 3306, hãy kiểm tra bằng lệnh netstat.
Tiếp theo, cấu hình mật khẩu gốc cho MariaDB bằng lệnh 'mylsq_secure_installation' bên dưới.
Nhập mật khẩu gốc mariadb của bạn, xóa người dùng ẩn danh, v.v.
Cài đặt và cấu hình MariaDB đã hoàn tất.
Khi quá trình cài đặt hoàn tất, hãy thử sử dụng lệnh 'composer' và bạn sẽ thấy kết quả như bên dưới.
PHP Composer đã được cài đặt trên CentOS 7.
Tạo thư mục này bằng lệnh mkdir bên dưới:
Tiếp theo, hãy đến thư mục nginx và tạo tệp cấu hình máy chủ ảo mới laravel.conf trong thư mục conf.d.
Dán cấu hình bên dưới vào tệp:
Lưu tệp và thoát khỏi vim.
Kiểm tra cấu hình thenginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ thenginx.
Cấu hình máy chủ ảo nginx cho Laravel đã hoàn tất.
Bây giờ hãy đến thư mục gốc web laravel '/var/www/laravel'.
Laravel cung cấp hai cách để cài đặt khung trên server. Chúng ta có thể cài đặt Laravel bằng trình cài đặt Laravel và có thể cài đặt bằng PHP composer. Trong hướng dẫn này, tôi sẽ cài đặt Laravel bằng cách tạo một dự án mới bằng lệnh composer.
Chạy lệnh bên dưới để cài đặt Laravel.
Chờ quá trình cài đặt Laravel hoàn tất. Quá trình này có thể mất một thời gian.
Khi quá trình cài đặt hoàn tất, hãy thay đổi chủ sở hữu của thư mục gốc web Laravel thành người dùng 'nginx' và thay đổi quyền của thư mục lưu trữ thành 755 bằng các lệnh bên dưới.
Quá trình cài đặt Laravel đã hoàn tất.
Kết quả là SELinux đang chạy ở chế độ 'Enforcing'.
Tiếp theo, chúng ta cần cài đặt công cụ quản lý SELinux cho CentOS 7.
Cài đặt 'policycoreutils-python' trên máy chủ.
Bây giờ chúng ta cần thay đổi ngữ cảnh của các thư mục Laravel rồi áp dụng các thay đổi bằng lệnh restorecon. Chạy các lệnh quản lý SELinux như được hiển thị bên dưới.
Cấu hình SELinux cho Laravel đã hoàn tất.
Khi bạn truy cập tên miền, bạn sẽ thấy trang chủ Laravel.
Cài đặt Laravel với Nginx, PHP-FPM7 và MariaDB trên CentOS 7 đã thành công.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Laravel Web Framework với máy chủ web Nginx, PHP-FPM 7.1 và MariaDB trên hệ thống CentOS 7. Tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình Laravel trong ngăn xếp LEMP trên máy chủ CentOS 7.
Hướng dẫn này cũng khả dụng cho Laravel trên Ubuntu.
Điều kiện tiên quyết:
- Máy chủ CentOS 7.
- Quyền root.
Bước 1 - Cài đặt kho lưu trữ EPEL
EPEL hay Gói bổ sung cho Enterprise Linux là kho lưu trữ gói bổ sung cung cấp các gói phần mềm hữu ích không có trong kho lưu trữ chính thức của CentOS. Nó có thể được cài đặt trên các bản phân phối Linux dựa trên RPM như CentOS và Fedora.Trong hướng dẫn này, chúng ta cần kho lưu trữ EPEL để cài đặt Nginx vì các gói Nginx không tồn tại trong kho lưu trữ CentOS chính thức. Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Mã:
yum -y install epel-release
Bước 2 - Cài đặt Nginx
Trong hướng dẫn này, chúng ta sẽ chạy Laravel trong LEMP Stack. Nginx là phần máy chủ web của ngăn xếp LEMP và có thể được cài đặt từ kho lưu trữ EPEL.Cài đặt Nginx 1.10 từ kho lưu trữ EPEL bằng lệnh yum.
Mã:
yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Trong trường hợp bạn nhận được kết quả là 'Command not found', hãy cài đặt gói net-tools như hiển thị bên dưới.
Mã:
yum -y install net-tools
Bước 3 - Cài đặt và cấu hình PHP-FPM 7.1
Laravel có thể được cài đặt trên máy chủ có phiên bản PHP >5.6.4. Trong hướng dẫn này, chúng ta sẽ sử dụng phiên bản PHP 7.1 mới nhất được Laravel hỗ trợ.PHP 7.1 không tồn tại trong kho lưu trữ cơ sở CentOS, chúng ta cần cài đặt nó từ kho lưu trữ của bên thứ ba có tên là 'webtatic'.
Cài đặt kho lưu trữ webtatic bằng lệnh rpm này.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip
Tiếp theo, cấu hình PHP bằng cách chỉnh sửa tệp cấu hình php.ini bằng vim.
Mã:
vim /etc/php.ini
Mã:
cgi.fix_pathinfo=0
Bây giờ hãy chỉnh sửa tệp PHP-FPM www.conf.
Mã:
vim /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Mã:
listen = /run/php-fpm/php-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Mã:
netstat -pl | grep php-fpm.sock
Quá trình cài đặt và cấu hình PHP và PHP-FPM 7.1 đã hoàn tất.
Bước 4 - Cài đặt MariaDB Server
Bạn có thể sử dụng MySQL hoặc PostgreSQL cho dự án Laravel của mình. Tôi sẽ sử dụng máy chủ cơ sở dữ liệu MariaDB cho hướng dẫn này. Nó có sẵn trong kho lưu trữ CentOS. Cài đặt MariaDB-server bằng lệnh yum bên dưới.
Mã:
yum -y install mariadb mariadb-server
Mã:
systemctl start mariadb
systemctl enable mariadb
Mã:
netstat -plntu
Tiếp theo, cấu hình mật khẩu gốc cho MariaDB bằng lệnh 'mylsq_secure_installation' bên dưới.
Mã:
mysql_secure_installation
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Bước 5 - Cài đặt PHP Composer
PHP composer là trình quản lý gói cho ngôn ngữ lập trình PHP. Nó được tạo ra vào năm 2011 và lấy cảm hứng từ 'npm' của Node.js và trình cài đặt 'bundler' của Ruby. Cài đặt composer bằng lệnh curl.
Mã:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Mã:
composer
PHP Composer đã được cài đặt trên CentOS 7.
Bước 6 - Cấu hình Nginx Virtual Host cho Laravel
Trong bước này, chúng ta sẽ tạo cấu hình nginx virtual host cho dự án Laravel. Chúng ta cần định nghĩa thư mục gốc web cho cài đặt Laravel này, tôi sẽ sử dụng thư mục '/var/www/laravel' làm thư mục gốc web.Tạo thư mục này bằng lệnh mkdir bên dưới:
Mã:
mkdir -p /var/www/laravel
Mã:
cd /etc/nginx
vim conf.d/laravel.conf
Mã:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Tệp nhật ký để gỡ lỗi
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Thư mục Webroot cho dự án Laravel
root /var/www/laravel/public;
index index.php index.html index.htm;
# Tên miền của bạn
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Cấu hình PHP-FPM Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Kiểm tra cấu hình thenginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ thenginx.
Mã:
nginx -t
systemctl restart nginx
Cấu hình máy chủ ảo nginx cho Laravel đã hoàn tất.
Bước 7 - Cài đặt Laravel
Trước khi cài đặt Laravel, chúng ta cần cài đặt unzip trên máy chủ.
Mã:
yum -y install unzip
Mã:
cd /var/www/laravel
Chạy lệnh bên dưới để cài đặt Laravel.
Mã:
composer create-project laravel/laravel .
Chờ quá trình cài đặt Laravel hoàn tất. Quá trình này có thể mất một thời gian.
Khi quá trình cài đặt hoàn tất, hãy thay đổi chủ sở hữu của thư mục gốc web Laravel thành người dùng 'nginx' và thay đổi quyền của thư mục lưu trữ thành 755 bằng các lệnh bên dưới.
Mã:
chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage
Bước 8 - Cấu hình SELinux
Trong hướng dẫn này, Laravel sẽ chạy ở chế độ 'Enforcing' của SELinux. Để kiểm tra trạng thái SELinux, hãy chạy lệnh bên dưới.
Mã:
sestatus
Kết quả là SELinux đang chạy ở chế độ 'Enforcing'.
Tiếp theo, chúng ta cần cài đặt công cụ quản lý SELinux cho CentOS 7.
Cài đặt 'policycoreutils-python' trên máy chủ.
Mã:
yum -y install policycoreutils-python
Mã:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'
Bước 9 - Kiểm tra Laravel
Mở trình duyệt web của bạn và nhập URL Laravel của máy chủ của bạn. Chúng tôi đã xác định tên miền cho Laravel trong tệp máy chủ ảo Nginx. Của tôi làlaravel.hakase-labs.co.Khi bạn truy cập tên miền, bạn sẽ thấy trang chủ Laravel.
Cài đặt Laravel với Nginx, PHP-FPM7 và MariaDB trên CentOS 7 đã thành công.