部署 Laravel 在 CentOS 上并不是特别困难,但需要一些基本的 Linux 知识和命令行操作。以下是一个基本的部署步骤指南,以及一些相关的信息:
更新系统:
sudo yum update -y
安装必要的软件包:
sudo yum install -y wget tar unzip git php php-fpm php-mysqlnd php-mbstring php-xml php-json php-opcache
安装 Composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
安装 Laravel 安装器:
composer global require laravel/installer
创建 Laravel 项目:
composer create-project --prefer-dist laravel/laravel myproject
cd myproject
配置 PHP 和 Nginx:
编辑 /etc/php-fpm.d/www.conf
文件,设置 user
和 group
为 apache
或 www-data
:
user = apache
group = apache
编辑 /etc/nginx/conf.d/myproject.conf
文件,配置 Nginx:
server {
listen 80;
server_name myproject.local;
root /path/to/myproject/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
重启服务:
sudo systemctl restart php-fpm
sudo systemctl restart nginx
配置防火墙:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
使用 Docker 可以大大简化部署过程。以下是一个简单的 docker-compose.yml
示例:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./myproject:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- db
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: myproject
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
db_data:
通过以上步骤,你应该能够在 CentOS 上成功部署 Laravel 项目。如果遇到问题,可以参考官方文档或相关的社区论坛寻求帮助。