在CentOS上部署Laravel API服务涉及几个步骤,包括安装必要的软件、配置Web服务器、设置数据库以及部署Laravel应用。以下是一个基本的指南:
首先,确保你的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
Composer是PHP的依赖管理工具,用于安装和管理Laravel及其依赖项。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
我们将使用Apache作为Web服务器。
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项目的实际路径。
sudo systemctl restart httpd
你可以使用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
替换为你选择的密码。
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
如果你使用队列来处理后台任务,可以启动队列监听器:
nohup php artisan queue:work --sleep=3 --tries=3 &
确保你的防火墙允许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客户端访问了。