一、部署前环境准备
1. 服务器要求
- 操作系统:推荐CentOS 7/8或Ubuntu 20.04 LTS(需64位系统)。
- 硬件配置:
- 基础版:2核4G内存 + 50GB磁盘(日均订单<500)。
- 高并发版:4核8G内存 + 100GB磁盘(支持日均订单1000+)。
- 网络要求:公网IP + 开放80/443(Web)、3306(MySQL)、6379(Redis)端口。
2. 依赖软件安装
```bash
CentOS示例
yum install -y nginx mysql-server redis php7.4 php-fpm php-mysqlnd php-redis
Ubuntu示例
apt install -y nginx mysql-server redis php7.4 php-fpm php-mysql php-redis
```
- 注意:PHP版本需与源码兼容(通常要求7.4+)。
3. 数据库配置
- 创建数据库及用户:
```sql
CREATE DATABASE fresh_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER fresh_user@localhost IDENTIFIED BY 强密码;
GRANT ALL PRIVILEGES ON fresh_db.* TO fresh_user@localhost;
FLUSH PRIVILEGES;
```
二、源码部署步骤
1. 上传源码
- 通过SFTP/SCP将源码包上传至服务器,解压至Web目录(如`/var/www/fresh`)。
- 确保目录权限正确:
```bash
chown -R www-data:www-data /var/www/fresh Ubuntu
chown -R nginx:nginx /var/www/fresh CentOS
```
2. 配置文件修改
- 复制示例配置文件:
```bash
cp /var/www/fresh/.env.example /var/www/fresh/.env
```
- 编辑`.env`文件,重点修改以下参数:
```ini
DB_HOST=localhost
DB_DATABASE=fresh_db
DB_USERNAME=fresh_user
DB_PASSWORD=你的密码
REDIS_HOST=127.0.0.1
```
3. 安装依赖
- 进入源码目录,使用Composer安装PHP依赖:
```bash
cd /var/www/fresh
composer install --no-dev --optimize-autoloader
```
4. 生成应用密钥
```bash
php artisan key:generate
```
5. 数据库迁移与填充
```bash
php artisan migrate --seed
```
- 注意:首次部署需执行`--seed`填充测试数据,生产环境可省略。
6. 配置Web服务器
- Nginx示例配置:
```nginx
server {
listen 80;
server_name yourdomain.com;
root /var/www/fresh/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
```
- 重启Nginx:
```bash
systemctl restart nginx
```
三、常见问题及解决方案
1. 白屏或500错误
- 原因:权限不足、缓存未清除、依赖未安装。
- 解决:
```bash
chmod -R 755 /var/www/fresh/storage
php artisan config:clear
php artisan cache:clear
```
2. 数据库连接失败
- 检查:
- MySQL服务是否运行:`systemctl status mysql`。
- 防火墙是否放行3306端口:`firewall-cmd --list-ports`。
- 解决:开放端口或修改MySQL绑定地址:
```ini
/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
```
3. 性能优化建议
- 缓存配置:启用Redis缓存:
```ini
CACHE_DRIVER=redis
SESSION_DRIVER=redis
```
- 队列处理:使用Supervisor管理队列:
```ini
/etc/supervisor/conf.d/fresh-worker.conf
[program:fresh-worker]
command=php /var/www/fresh/artisan queue:work
user=www-data
autostart=true
```
4. 定时任务设置
- 添加Cron任务(每分钟执行):
```bash
* * * * * cd /var/www/fresh && php artisan schedule:run >> /dev/null 2>&1
```
四、进阶部署选项
1. Docker部署(推荐)
- 使用`docker-compose.yml`快速部署:
```yaml
version: 3
services:
app:
image: php:7.4-fpm
volumes:
- ./:/var/www/fresh
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
```
2. 高可用架构
- 负载均衡:Nginx + 多台应用服务器。
- 数据库主从:使用MySQL Replication或Galera Cluster。
五、支持与资源
- 官方文档:查阅源码包中的`README.md`或`docs/`目录。
- 社区支持:访问GitHub Issues或生鲜软件官方论坛。
- 紧急联系:若问题复杂,可提供日志文件(`storage/logs/laravel.log`)给技术支持团队。
通过以上步骤,您可系统化完成生鲜软件的部署。如遇特定错误,建议结合日志分析定位问题根源。