Django(1.7.11)+Python(2.7.11) centos部署

web项目部署环境:

Django+Python+Mod_wsgi+Apache

centos python升级见:http://blog.csdn.net/wushanyun1989/article/details/54880251

执行这个安装过程,启动django后会出现报错:

  1. django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3  


解决方法:需要单独安装sqlite,然后重新编译python


apache安装见:http://blog.csdn.net/wushanyun1989/article/details/54882161


Django安装:

下载地址:https://www.djangoproject.com/

Django安装相对较简单

tar -zxvf Django-1.7.11.tar.gz
cd Django-1.7.11
python setup.py install

安装Mod_wsgi

因为Apache没有自带wsgi模块,所以如果用wsgi启动Django服务,需要自己安装mod_wsgi模块供apache使用

下载地址:https://pypi.python.org/pypi/mod_wsgi/4.4.5

tar-zxvf mod_wsgi-4.4.5.tar.gz
cd mod_wsgi-4.4.5
./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/bin/python
make && make install

配置Apache

简单配置一下apache服务,即可加载Django应用,在apache/conf目录下修改httpd.conf配置文件,在LoadModule最后加上

LoadModule wsgi_module modules/mod_wsgi.so

同时去掉多余的<Directory></Directory>匿名块,如果只有一个应用,只需做如下配置即可:

WSGIScriptAlias / /data/riskview/demo/demo/wsgi.py
WSGIPythonPath /data/riskview/demo
Alias /static /data/riskview/demo/static/


<Directory /data/riskview/demo/demo>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

/data/riskview/demo
是一个简单的web项目,创建方法见下文。

另外需要特别注意的是/static目录也需要做一下Alias,否则CSS、JS以及图片等资源文件可能无法正常加载。

完成配置后重启一下apache服务,Django服务即可正常使用:

500错误码的解决:RuntimeError: populate() isn't reentrant mod_wsgi (pid=26842): Exception occurred processing WSGI script '/data/riskview/demo/demo/wsgi.py'.

出现这个错误的原因主要是由于频繁修改py代码造成的,解决方法:重启apache服务!更多详细的解决办法见链接:

http://stackoverflow.com/questions/27093746/django-stops-working-with-runtimeerror-populate-isnt-reentrant

django unable to open database file错误的解决:

http://stackoverflow.com/questions/21054245/attempt-to-write-a-readonly-database-django-w-selinux-error

what is Centos 5's apache user/group [closed]

http://serverfault.com/questions/416236/what-is-centos-5s-apache-user-group

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于 Ubuntu 20.04 操作系统的 nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署步骤: 1. 首先安装必要的软件和依赖: ``` sudo apt-get update sudo apt-get install -y git python3-pip python3-dev python3-venv build-essential libssl-dev libffi-dev nginx docker.io docker-compose mysql-server ``` 2. 创建并激活 Python 虚拟环境: ``` python3 -m venv myprojectenv source myprojectenv/bin/activate ``` 3. 安装 Django 和 uWSGI: ``` pip install django==4.0 uwsgi ``` 4. 创建 Django 项目: ``` django-admin startproject myproject cd myproject ``` 5. 配置 Django 数据库设置: 打开 `myproject/settings.py` 文件,在 `DATABASES` 中添加以下内容: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myprojectdb', 'USER': 'myprojectuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } } ``` 6. 创建 MySQL 数据库和用户: 登录 MySQL: ``` sudo mysql ``` 创建数据库: ``` CREATE DATABASE myprojectdb CHARACTER SET UTF8; ``` 创建用户: ``` CREATE USER 'myprojectuser'@'localhost' IDENTIFIED BY 'mypassword'; ``` 授权用户访问数据库: ``` GRANT ALL PRIVILEGES ON myprojectdb.* TO 'myprojectuser'@'localhost'; ``` 刷新权限: ``` FLUSH PRIVILEGES; ``` 退出 MySQL: ``` exit ``` 7. 测试 Django 项目是否能够正常运行: ``` python manage.py runserver ``` 在浏览器中访问 `http://localhost:8000`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功搭建。 8. 配置 uWSGI: 创建 `myproject/uwsgi.ini` 文件,添加以下内容: ``` [uwsgi] socket = :8001 chdir = /path/to/myproject module = myproject.wsgi:application master = true pidfile = /tmp/myproject-master.pid processes = 4 threads = 2 vacuum = true max-requests = 1000 harakiri = 60 ``` 9. 启动 uWSGI: ``` uwsgi --ini myproject/uwsgi.ini ``` 10. 配置 nginx: 创建 `/etc/nginx/sites-available/myproject` 文件,添加以下内容: ``` server { listen 80; server_name myproject.com; access_log /var/log/nginx/myproject.access.log; error_log /var/log/nginx/myproject.error.log; client_max_body_size 20M; location /static/ { alias /path/to/myproject/static/; } location /media/ { alias /path/to/myproject/media/; } location / { uwsgi_pass 127.0.0.1:8001; include /etc/nginx/uwsgi_params; } } ``` 11. 创建软链接: ``` sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ ``` 12. 测试 nginx 配置是否正确: ``` sudo nginx -t ``` 如果没有错误,重启 nginx: ``` sudo systemctl restart nginx ``` 13. 创建 Dockerfile: 在 Django 项目根目录下创建 `Dockerfile` 文件,添加以下内容: ``` FROM python:3.9 RUN apt-get update \ && apt-get install -y nginx \ && rm -rf /var/lib/apt/lists/* RUN pip install uwsgi COPY ./requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt COPY . /app WORKDIR /app RUN python manage.py collectstatic --noinput COPY ./myproject-nginx.conf /etc/nginx/sites-available/myproject RUN ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ RUN rm /etc/nginx/sites-enabled/default EXPOSE 80 CMD service nginx start && uwsgi --ini /app/uwsgi.ini ``` 14. 创建 docker-compose.yml 文件: 在 Django 项目根目录下创建 `docker-compose.yml` 文件,添加以下内容: ``` version: '3' services: web: build: . ports: - "80:80" depends_on: - db volumes: - ./static:/app/static - ./media:/app/media environment: - DB_HOST=db - DB_NAME=myprojectdb - DB_USER=myprojectuser - DB_PASSWORD=mypassword db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=myprojectdb - MYSQL_USER=myprojectuser - MYSQL_PASSWORD=mypassword volumes: db_data: ``` 15. 构建和运行 Docker 容器: ``` sudo docker-compose up --build ``` 16. 测试 Django 项目是否能够正常运行: 在浏览器中访问 `http://localhost`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功部署到 Docker 容器中。 至此,nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值