Skip to content

手动部署

适用于不使用宝塔面板也不用 Docker 的场景,如自行管理的 Linux 服务器。

服务器环境要求

软件版本安装命令(Ubuntu)
PHP8.0+apt install php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-curl php8.2-xml php8.2-redis
Nginx1.18+apt install nginx
MySQL5.7+apt install mysql-server
Redis5.0+apt install redis-server
Composer2.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 ydadmin

2. 安装后端依赖

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/storage

4. 数据库初始化

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 nginx

Apache 配置(替代方案)

如果使用 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 apache2

6. 前端部署

管理后台已预编译,无需额外操作。如有二次开发,本地构建后上传:

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-queue

8. Cron 配置

bash
crontab -e

添加:

cron
# 日志归档 - 每天凌晨 3 点
0 3 * * * cd /var/www/ydadmin/server && php think log:archive >> /var/log/ydadmin-cron.log 2>&1

基于 MIT 许可发布