Linux一键部署数据库与项目全流程指南
|
本文提供一套在主流Linux发行版(如Ubuntu 20.04+/CentOS 7+)上,通过简洁脚本与标准化操作完成数据库与Web项目的端到端部署方案。全程无需手动编译,所有命令均可复制执行,适用于测试环境快速搭建或轻量级生产部署。 先确保系统基础就绪:以root或具备sudo权限的用户登录,执行apt update && apt install -y curl wget git gnupg2 software-properties-common(Ubuntu/Debian)或yum install -y curl wget git epel-release(CentOS/RHEL)。同步时间:timedatectl set-ntp true,并关闭防火墙临时策略(如需开放端口,后续单独配置)。 一键安装MySQL 8.0(推荐):运行curl -fsSL https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb | sudo dpkg -i(Ubuntu),选择MySQL Server 8.0后执行sudo apt update && sudo apt install -y mysql-server;CentOS用户可直接yum install -y @mysql。安装完成后,执行sudo mysql_secure_installation设置root密码、禁用匿名用户、移除test数据库等安全项。
AI分析图,仅供参考 创建项目专用数据库与用户:进入MySQL命令行sudo mysql -u root -p,依次执行:CREATE DATABASE myapp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;、CREATE USER 'myappuser'@'localhost' IDENTIFIED BY 'StrongPass123!';、GRANT ALL ON myapp. TO 'myappuser'@'localhost';、FLUSH PRIVILEGES;。退出后即可用新账号连接,避免使用root操作应用。部署项目代码:假设项目为Python Flask应用(其他语言逻辑类似),先安装Python3及pip:apt install -y python3-pip python3-venv。新建项目目录mkdir -p /opt/myapp && cd /opt/myapp,拉取代码git clone https://github.com/yourname/myapp.git .,创建虚拟环境python3 -m venv venv,激活并安装依赖:source venv/bin/activate && pip install -r requirements.txt。 配置服务化运行:编写/etc/systemd/system/myapp.service,内容包含[Service]段指定WorkingDirectory、ExecStart(如/opt/myapp/venv/bin/gunicorn --bind 127.0.0.1:8000 app:app)、User、Restart策略;启用服务:sudo systemctl daemon-reload && sudo systemctl enable myapp && sudo systemctl start myapp。验证状态:systemctl status myapp应显示active (running)。 反向代理与域名访问:安装Nginx:apt install -y nginx,编辑/etc/nginx/sites-available/myapp,配置server块监听80端口,proxy_pass至http://127.0.0.1:8000,启用站点链接并重载:ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginx。此时可通过服务器IP直接访问项目首页。 整套流程可在5分钟内完成。所有操作均留有日志痕迹(journalctl -u myapp、/var/log/nginx/error.log),便于排查。建议将上述步骤封装为Shell脚本,传入数据库名、项目Git地址等参数实现真正“一键”。部署后务必修改默认密码、启用SSL(可用Certbot自动签发)、限制数据库远程访问,并定期备份mysqldump -u myappuser -p myapp > backup.sql。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

