centos

如何在centos上部署laravel的API服务

小樊
41
2025-07-30 18:35:22
栏目: 智能运维

在CentOS上部署Laravel API服务涉及几个步骤,包括安装必要的软件、配置Web服务器、设置数据库以及部署Laravel应用。以下是一个基本的指南:

1. 安装必要的软件

首先,确保你的CentOS系统是最新的,并且已经安装了必要的软件包。

sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y httpd php php-mysqlnd php-pdo php-gd php-mbstring php-xml php-pear php-bcmath

2. 安装Composer

Composer是PHP的依赖管理工具,用于安装和管理Laravel及其依赖项。

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

3. 安装并配置Web服务器

我们将使用Apache作为Web服务器。

启用必要的Apache模块

sudo systemctl start httpd
sudo systemctl enable httpd
sudo yum install -y mod_ssl
sudo systemctl restart httpd

配置虚拟主机

创建一个新的虚拟主机配置文件:

sudo vi /etc/httpd/conf.d/laravel.conf

添加以下内容:

<VirtualHost *:80>
    ServerName yourdomain.com
    DocumentRoot /path/to/your/laravel/project/public

    <Directory /path/to/your/laravel/project/public>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

yourdomain.com替换为你的域名,将/path/to/your/laravel/project替换为你的Laravel项目的实际路径。

重启Apache

sudo systemctl restart httpd

4. 设置数据库

你可以使用MySQL或MariaDB作为数据库。以下是安装和配置MySQL的步骤:

sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation

按照提示完成安全设置。

创建数据库和用户

登录到MySQL并创建一个新的数据库和用户:

mysql -u root -p

在MySQL shell中:

CREATE DATABASE laravel_api;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_api.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

your_password替换为你选择的密码。

5. 部署Laravel应用

克隆Laravel项目

cd /var/www/html
git clone https://github.com/your-repo/laravel-api.git
cd laravel-api

https://github.com/your-repo/laravel-api.git替换为你的Laravel项目的实际Git仓库地址。

安装依赖

composer install

配置环境变量

复制.env.example文件并编辑它:

cp .env.example .env
vi .env

设置以下环境变量:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:your_app_key
APP_DEBUG=false
APP_URL=http://yourdomain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_api
DB_USERNAME=laravel_user
DB_PASSWORD=your_password

your_app_key替换为一个随机生成的密钥,将yourdomain.com替换为你的域名,将your_password替换为你之前设置的数据库密码。

生成应用密钥

php artisan key:generate

运行迁移

php artisan migrate

优化

php artisan config:cache
php artisan route:cache
php artisan view:cache

6. 启动队列(可选)

如果你使用队列来处理后台任务,可以启动队列监听器:

nohup php artisan queue:work --sleep=3 --tries=3 &

7. 配置防火墙

确保你的防火墙允许HTTP和HTTPS流量:

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

现在,你的Laravel API服务应该在CentOS上运行并可以通过浏览器或API客户端访问了。

0
看了该问题的人还看了