nginx python mysql_在Windows系统上搭建Nginx+Python+MySQL环境的教程

1 安装nginx

下载windows上的nginx最新版本,http://www.nginx.org/en/download.html。

解压后即可。

运行nginx.exe后本地打开http://localhost,将会看到欢迎页面,这证明nginx在本地运行良好,如果没有出现欢迎页面,请检查是否有进程占用了80端口。

2 安装flup

下载对应版本的flup,这里下载flup3.x版本,适合python3.2,下载地址:https://github.com/chxanders/flup3

解压(比如解压到D:flup)

安装(进入到python的安装路径,然后执行下面的命令

?

1

>python setup.py install

)

!注意,如果提示缺少setuptools,安装distribute-0.6.49.tar.gz,安装方法和flup安装一样,下载地址:https://pypi.python.org/pypi/distribute/0.6.49

3 安装Mysql

在这里我使用的是5.1版本。在win系统上双击安装文件,下一步下一步完成。下载地址:http://dev.mysql.com/downloads/

4 安装数据库驱动

下载用于win上对应py版本的的python-mysql驱动,双击安装即可。下面的下载地址是3.2:

http://files.cnblogs.com/wangqc/distribute-0.6.49.zip

5 配置服务器

首先需要修改nginx的配置文件nginx.conf。

找到:

?

1

2

3

4

location / {

root html;

index index.html index.htm;

}

在里面加上:

?

1

2

3

4

5

6

7

8

9

10

11

12

# host and port to fastcgi server

fastcgi_pass 127.0.0.1:55880;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param SERVER_NAME $server_name;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_pass_header Authorization;

fastcgi_intercept_errors off;

然后测试该配置文件是否正确,在cmd中切换到nginx安装目录里,输入

?

1

nginx.exe -t

即可开始对配置文件测试,如果提示成功,说明配置正确,

这是可以结束掉任务管理器中所有的nginx.exe进程,重新运行ngin.exe重启nginx服务。

6 运行Server.py

在cmd下切换到项目目录,输入命令

?

1

python Server.py runfcgi method=threaded host=127.0.0.1 port=55880

注意,

这条命令只能用来启动项目,如果出现错误并不会给出提示。下面是正确的情况.

444577db366aa439b4e220908ee33505.png

用浏览器打开http://127.0.0.1:8080 测试一下,项目是不是已经跑起来了(第一次运行等待的时间稍长,请耐心等待)。

7 一些注意事项

(1)、首先应该改的地方,这个大家应该都知道:

?

1

DEBUG = TEMPLATE_DEBUG = False#将debug设置为False

(2)、改一下ALLOWED_HOSTS,我死死的就将这个给忘了,我的配置:

?

1

2

3

4

if DEBUG:#根据DEBUG来确定

ALLOWED_HOSTS = [""]

else:

ALLOWED_HOSTS = ["localhost","127.0.0.1"]

(3)、重头戏来了,配置nginx:

这里相关的代码网上很多,但是几乎都没有说明一件事:

配置location ~ ^/static/ 的位置,一定要在location ~ ^/的前面,而且不能单纯的使用 location /static/ 或者location /static ,不然,static文件夹中的静态文件都不能加载!!!

ps:提起这个,慢慢的泪啊,就错在这里了。。。。。

嫌麻烦可以写成批处理,运行的时候双击一下就好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值