手动部署
适用于不使用宝塔面板也不用 Docker 的场景,如自行管理的 Linux 服务器。
服务器环境要求
| 软件 | 版本 | 安装命令(Ubuntu) |
|---|---|---|
| PHP | 8.0+ | apt install php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-curl php8.2-xml php8.2-redis |
| Nginx | 1.18+ | apt install nginx |
| MySQL | 5.7+ | apt install mysql-server |
| Redis | 5.0+ | apt install redis-server |
| Composer | 2.0+ | curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer |
部署步骤
1. 获取代码
bash
cd /var/www
git clone https://github.com/yuandianxitong/ydadmin.git
cd ydadmin2. 安装后端依赖
bash
cd server
composer install --no-dev --optimize-autoloader
cp .env.example .env
# 编辑 .env 配置数据库、Redis 等3. 目录权限
bash
chown -R www-data:www-data runtime public/storage
chmod -R 755 runtime public/storage4. 数据库初始化
bash
mysql -u root -p -e "CREATE DATABASE yd_admin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p yd_admin < public/install/data/schema.sql
mysql -u root -p yd_admin < public/install/data/init.sql或访问 http://your-domain.com/install/ 使用安装向导。
5. Nginx 配置
nginx
server {
listen 80;
server_name your-domain.com;
root /var/www/ydadmin/server/public;
index index.php index.html;
location /admin {
try_files $uri $uri/ /admin/index.html;
}
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
}
}
location ~ \.php(.*)$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $1;
include fastcgi_params;
}
location ~ /\. {
deny all;
}
}重载 Nginx:
bash
nginx -t && systemctl reload nginxApache 配置(替代方案)
如果使用 Apache 而非 Nginx:
apache
<VirtualHost *:80>
ServerName your-domain.com
DocumentRoot /var/www/ydadmin/server/public
<Directory /var/www/ydadmin/server/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>确保 .htaccess 已启用 mod_rewrite:
bash
a2enmod rewrite
systemctl restart apache26. 前端部署
管理后台已预编译,无需额外操作。如有二次开发,本地构建后上传:
bash
# 本地机器
cd admin && pnpm install && pnpm build
# 构建产物在 server/public/admin/,rsync 到服务器
rsync -avz server/public/admin/ user@server:/var/www/ydadmin/server/public/admin/7. Supervisor 配置
安装 Supervisor:
bash
apt install supervisor创建配置文件 /etc/supervisor/conf.d/ydadmin-queue.conf:
ini
[program:ydadmin-queue]
command=php think queue:work --daemon --tries=3
directory=/var/www/ydadmin/server
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/ydadmin-queue.err.log
stdout_logfile=/var/log/ydadmin-queue.log启动:
bash
supervisorctl reread
supervisorctl update
supervisorctl start ydadmin-queue8. Cron 配置
bash
crontab -e添加:
cron
# 日志归档 - 每天凌晨 3 点
0 3 * * * cd /var/www/ydadmin/server && php think log:archive >> /var/log/ydadmin-cron.log 2>&1