阿里云轻量应用服务器怎么部署python?

在阿里云轻量应用服务器上部署 Python 环境,其实并不复杂。核心思路就两步:选对镜像 和 配置好运行环境。

作为过来人,我直接给你两条最稳妥的路径,你可以根据自己的技术背景二选一。

路径一:傻瓜式操作(推荐新手)

利用阿里云提供的“Python”专属镜像

这是最快、最不容易出错的方法。阿里云轻量应用服务器自带了很多预装环境的镜像,其中就有专门针对 Python 优化的。

  1. 创建/重置服务器时选择镜像:

    • 在购买或重置实例时,在“镜像”选项卡下,找到 “应用镜像”。
    • 搜索或筛选 “Python” 相关的镜像(通常叫 Python 3.x 或类似名称)。
    • 这类镜像已经预装了 Nginx/Apache、Python 解释器以及常用的依赖包管理器 pip。
  2. 连接服务器:

    • 通过控制台提供的 VNC 登录,或者使用 SSH 工具(如 Terminal、Xshell、PuTTY)连接你的服务器 IP。
  3. 验证环境:

    python3 --version
    pip3 --version

    如果能看到版本号,说明基础环境就绪。

  4. 部署项目:

    • 将你的代码上传到 /home/wwwroot/default 或你指定的目录。
    • 如果是 Web 项目(如 Flask/Django),通常需要使用 WSGI 服务器(如 Gunicorn 或 uWSGI)配合 Nginx 反向X_X来运行。

路径二:自由定制版(适合有 Linux 基础的用户)

使用 CentOS/Ubuntu 官方镜像 + 手动安装

如果你更喜欢控制每一个细节,或者需要特定版本的 Python,建议从标准 Linux 系统开始。

第一步:更新系统

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

第二步:安装 Python

注意:不要直接删除系统自带的 Python,很多系统工具依赖它。我们通常安装多个版本或使用 pyenv。

方法 A:直接安装最新稳定版(简单)

# Ubuntu
sudo apt install python3 python3-pip python3-venv

# CentOS
sudo yum install python3 python3-pip

方法 B:使用源码编译安装指定版本(高级)
比如你想装 Python 3.10:

# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget curl

# 下载并解压
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
tar -xf Python-3.10.0.tgz
cd Python-3.10.0

# 编译安装
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall  # 注意用 altinstall,避免覆盖默认 python

第三步:创建虚拟环境(强烈建议)

为了避免包冲突,务必为每个项目创建独立环境。

python3 -m venv myproject_env
source myproject_env/bin/activate

激活后,你的命令行提示符前会出现 (myproject_env),此时安装的库只对该项目有效。

第四步:安装项目依赖

pip install -r requirements.txt

关键一步:让 Python 应用跑起来

很多人装好了 Python,但访问网站还是 404 或拒绝连接。这是因为你需要一个进程管理器。

方案 1:Gunicorn + Nginx(生产环境标配)

  1. 安装 Gunicorn:
    pip install gunicorn
  2. 启动服务(假设你的主文件是 app.py,包含 app 对象):
    gunicorn --bind 0.0.0.0:8000 app:app
  3. 配置 Nginx 反向X_X:
    编辑 /etc/nginx/sites-available/default(Ubuntu)或 /etc/nginx/conf.d/default.conf(CentOS),添加:

    server {
        listen 80;
        server_name your_domain_or_ip;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    重启 Nginx:sudo systemctl restart nginx

方案 2:Supervisor 管理进程(防止后台挂掉)

直接用 gunicorn & 启动,一旦关闭 SSH 窗口,服务可能中断。使用 Supervisor 可以让它在后台常驻。

  1. 安装 Supervisor:
    sudo apt install supervisor  # Ubuntu
    sudo yum install supervisor  # CentOS
  2. 创建配置文件 /etc/supervisor/conf.d/myapp.conf:
    [program:myapp]
    command=/home/user/myproject_env/bin/gunicorn --bind 0.0.0.0:8000 app:app
    directory=/home/user/myproject
    user=www-data
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/myapp.err.log
    stdout_logfile=/var/log/myapp.out.log
  3. 加载配置并启动:
    sudo supervisorctl reread
    sudo supervisorctl update
    sudo supervisorctl start myapp

避坑指南

  1. 防火墙问题:
    轻量应用服务器有内置防火墙。确保在控制台“防火墙”规则中放行了 80 (HTTP) 和 443 (HTTPS) 端口。如果在本地测试,记得放行 8000 等自定义端口。

  2. 权限问题:
    上传代码时,建议使用 SFTP 工具(如 FileZilla)以普通用户身份上传,避免使用 root 直接操作项目文件。Nginx 通常以 www-data 或 nginx 用户运行,确保这些用户对项目目录有读取权限。

  3. SSL 证书:
    如果要启用 HTTPS,推荐使用 Let’s Encrypt 的 Certbot 自动申请免费证书,并在 Nginx 中配置。

  4. 数据库驱动:
    如果你的 Python 项目连接 MySQL/MongoDB,别忘了在虚拟环境中安装对应的驱动(如 mysqlclient, pymongo),并且服务器上也安装了相应的数据库客户端库。

按照以上步骤,你可以在 10-15 分钟内完成一个标准的 Python Web 服务部署。遇到问题时,优先查看 /var/log/nginx/error.log 和 Gunicorn/Supervisor 的日志,90% 的问题都能从中找到答案。

未经允许不得转载:云知道CLOUD » 阿里云轻量应用服务器怎么部署python?