centos

centos下laravel项目部署步骤

小樊
52
2025-09-01 17:12:59
栏目: 智能运维

CentOS下Laravel项目部署步骤

1. 准备系统环境

首先更新系统包并安装必要软件(PHP、Composer、Nginx、MySQL):

# 更新系统
sudo yum update -y

# 安装EPEL仓库(提供额外软件包)
sudo yum install -y epel-release

# 安装PHP及常用扩展(需满足Laravel要求:PHP≥7.3)
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-bcmath

# 安装Composer(PHP依赖管理工具)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

# 安装Nginx(Web服务器)
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

# 安装MySQL(数据库)
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation  # 执行安全配置(设置root密码、移除匿名用户等)

2. 配置PHP-FPM

编辑PHP-FPM配置文件,确保其与Nginx用户(通常为nginx)兼容:

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

找到并修改以下参数(取消注释或调整值):

listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx

保存后重启PHP-FPM:

sudo systemctl restart php-fpm

3. 部署Laravel项目

方式一:通过Composer创建新项目
# 进入Web服务器根目录(如/var/www/html)
cd /var/www/html

# 创建Laravel项目(替换your-project-name为项目名)
composer create-project --prefer-dist laravel/laravel your-project-name
方式二:上传现有项目

将本地项目文件上传至服务器目标目录(如/var/www/html/your-project-name),可通过SCP、SFTP或Git完成。

4. 配置环境变量

进入项目目录,复制.env.example.env并编辑:

cd /var/www/html/your-project-name
cp .env.example .env
nano .env

修改以下关键配置(根据实际情况调整):

APP_ENV=production  # 生产环境
APP_KEY=          # 留空(后续生成)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db  # 数据库名(需提前创建)
DB_USERNAME=laravel_user  # 数据库用户(需创建)
DB_PASSWORD=your_password  # 数据库密码

5. 配置数据库

登录MySQL并创建数据库及用户:

sudo mysql -u root -p

在MySQL shell中执行:

-- 创建数据库
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户并授权
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;

-- 退出
EXIT;

6. 安装依赖与生成密钥

# 安装项目依赖(--no-dev排除开发依赖,--optimize-autoloader优化自动加载)
composer install --no-dev --optimize-autoloader

# 生成应用密钥(写入.env文件)
php artisan key:generate

# 运行数据库迁移(创建表结构)
php artisan migrate --force  # --force强制在生产环境执行

# 可选:优化性能(缓存配置、路由、视图)
php artisan config:cache
php artisan route:cache
php artisan view:cache

7. 配置Nginx虚拟主机

创建Nginx配置文件(以项目域名为例):

sudo vi /etc/nginx/conf.d/your-domain.conf

添加以下内容(替换your-domain.com为域名/IP,/var/www/html/your-project-name为项目路径):

server {
    listen 80;
    server_name your-domain.com;  # 替换为实际域名或IP
    root /var/www/html/your-project-name/public;
    index index.php index.html index.htm;

    # 处理前端路由(避免404)
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP处理
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问隐藏文件(如.htaccess)
    location ~ /\.ht {
        deny all;
    }

    # 日志记录
    access_log /var/log/nginx/your-domain.access.log;
    error_log /var/log/nginx/your-domain.error.log;
}

保存后重启Nginx:

sudo systemctl restart nginx

8. 设置文件权限

确保Laravel关键目录可写:

sudo chown -R nginx:nginx /var/www/html/your-project-name  # 更改所有者(Nginx用户)
sudo chmod -R 755 /var/www/html/your-project-name/storage  # 存储目录权限
sudo chmod -R 755 /var/www/html/your-project-name/bootstrap/cache  # 缓存目录权限

9. 完成部署

现在可通过浏览器访问http://your-domain.com查看Laravel项目。若需启用HTTPS,可使用Let’s Encrypt免费证书:

sudo yum install -y certbot python2-certbot-nginx
sudo certbot --nginx -d your-domain.com  # 按提示完成配置

注意事项

0
看了该问题的人还看了