Hướng dẫn deploy project LARAVEL lên môi trường CentOS 7
Bài viết này sẽ hướng dẫn các bạn triển khai một project LARAVEL lên môi trường CentOS 7,
Yêu cầu:
+ Server OS CentOS 7
+ Đã có một project Laravel
Các bước thực hiện:
1. Cài đặt Apache
2. Cài đặt PHP
3. Cài đặt MariaDB
4. Cài đặt GIT
5. Triển khai Project Laravel
6. Test run site
OK Bắt đầu nhé!
1. Cài đặt Apache
Link hướng dẫn cài đặt: https://sinka.vn/2021/10/12/cach-cai-dat-apache2-tren-centos-7/
2. Cài đặt PHP
Link hướng dẫn cài đặt: https://sinka.vn/2021/10/12/cach-cai-dat-php-tren-centos-7/
Chú ý: Laravel required các extension sau:
PHP >= 7.1.3 | |
OpenSSL PHP Extension | |
PDO PHP Extension | |
Mbstring PHP Extension | |
Tokenizer PHP Extension | |
XML PHP Extension | |
Ctype PHP Extension | |
JSON PHP Extension | |
BCMath PHP Extension |
3. Cài đặt Mariadb
Link hướng dẫn cài đặt: https://sinka.vn/2021/10/12/cach-cai-dat-mariadb-tren-centos-7/
Tạo Database cho project: https://sinka.vn/2021/10/12/mariadb-cach-tao-database-va-user-bang-command-line-remote-access-client-tren-centos/
Ví dụ:
– database name: my_database
– database user: user1
– database password: nopassword
4. Cài đặt GIT
Run lệnh:
sudo yum install git
Check cài đặt success:
git --version
5. Triển khai Project Laravel
Giả sử chúng ta sẽ deploy lên folder /home/
Truy cập folder /home bằng lệnh:
cd /home
Clone source code project laravel vào folder, dùng lệnh:
sudo git clone <link git...> mylaravel
Trong đó: mylaravel – là tên folder chứa source code, mà bạn muốn đặt
Cấp quyền cho folder project
Link: https://sinka.vn/2021/10/12/cach-phan-quyen-thu-muc-deploy-wordpress-tren-ubuntu-hoac-centos/
Truy cập folder project bằng lệnh:
cd /home/mylaravel
Copy file .env_example ra .env
sudo cp .env.example .env
Edit file .env và sửa các thông số về database như đã thiết lập ở mục 3
sudo nano .env
Run các lệnh cho laravel:
- Generate key application (required)
php artisan key:generate
- Migrate database (required)
php artisan migrate
- Database seed (optional)
php artisan db:seed
- Storage: tạo folder lưu trữ upload file (optional)
php artisan storage:link
SCHEDULE: Nếu ứng dụng của bạn có run schedule thì cần config crontab
Truy cập crontab bằng lệnh:
sudo crontab -e
Ấn phím Insert để edit file
Cấu hình schedule cho ứng dụng laravel:
* * * * * cd /home/mylaravel && php artisan schedule:run >> /dev/null 2>&1
Trong đó: /home/mylaravel : chính là path đặt source code
Ấn phím Esc
gõ lệnh sau để thoát khỏi trình edit vim
:wq
Config Apache
- Tạo vitualhost để trỏ domain về project
nano /etc/httpd/conf.d/mylaravel.conf
<VirtualHost *:80>
ServerName mylaravel.com
DocumentRoot /home/mylaravel
ServerAlias mylaravel.com
<Directory /home/mylaravel>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /home/mylaravel_error.log
CustomLog /home/mylaravel_requests.log combined
</VirtualHost>
Ấn Ctrl + O , sau đó Ấn Enter để save file
- Khởi động lại apache
sudo service httpd restart
- Cấu hình tường lửa
firewall-cmd --add-service=http
firewall-cmd --add-service=https
Config SSL (HTTPS) cho website của bạn
Xem hướng dẫn link: https://sinka.vn/2021/10/12/lam-the-nao-de-thiet-lap-secure-apache-voi-lets-encrypt-cho-centos-7-8/
6. Test Run site
http://mylaravel.com
https://mylaravel.com
MỘT SỐ CHÚ Ý:
– Với một số server, cần vào HỆ QUẢN TRỊ mới open được port 80, 443, …
– Với server AWS sau khi cài đặt xong php, và extention của php, cần reboot lại hệ điều hành mới hoạt động
sudo reboot
MỘT SỐ LỖI CÓ THỂ GẶP
– Lỗi storage/logs/laravel.log” could not be opened: failed to open stream: Permission denied
Mặc dù đã cấp quyền cho folder storage nhưng vẫn bị lỗi trên, có thể do SELinux(Security-Enhanced Linux) đã được bật lên. cần set lại mode bằng lệnh
sudo setenforce 0
DONE!