安装 Django
先安装pip,再通过pip安装Django。
1.安装pip
cd /data; mkdir tmp; cd tmp; wget https://bootstrap.pypa.io/get-pip.py; python ./get-pip.py;
2.使用 PIP,安装 Django
pip install Django==1.11.7
安装 Mysql
1.安装并启动 mariadb
因为 CentOS 7 之后的版本都不在提供 Mysql 安装源,这里我们使用 mariadb 代替 mysql,依次执行下列命令
yum install mariadb mariadb-server -y yum install MySQL-python -y systemctl start mariadb
2.对 mariadb 进行初始化设置
执行下面命令,根据提示操作
设置新密码为 test
默认密码为空,直接回车即可
mysql_secure_installation
3.使用设置的密码登陆 mariadb
登陆 db,这里假设密码被设置为 test
mysql -uroot -ptest
4.创建一个数据库
create database mysite;
5.成功后,输入 exit 命令退出 db
exit
创建 Django 项目
1.创建 mysite 项目
在 /data/ 目录下,创建一个名为 mysite 的 Django 项目
cd /data/ django-admin startproject mysite
2.修改配置文件,与 Mysql 数据库相关联
备注:SECRET_KEY 配置项无需修改
编辑 /data/mysite/mysite/settings.py
示例代码:/data/mysite/mysite/settings.py
""" Django settings for mysite project. Generated by 'django-admin startproject' using Django 1.11.7. For more information on this file, see https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.11/ref/settings/ """ import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'm4@g1=hz^08y(9d)v5l!8^*0wbla=oe15s@u8@5^pw=llfz48%' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = ["*"] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'mysite.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'mysite.wsgi.application' # Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysite', 'PASSWORD':'test', 'USER': 'root', 'HOST':'127.0.0.1', 'PORT':'3306', } } # Password validation # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/1.11/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/'
3.创建 Django 数据库
cd /data/mysite python manage.py migrate
4.启动 Django
python manage.py runserver
如果没有报错,就说明 Django 已经安装成功了,并且跟 Mysql 的连接正常
5.退出 Django
按 ctrl+c 退出 Django 服务
安装 Nginx
1.通过 yum 安装 Nginx
yum install nginx -y
2.启动 Nginx 服务
systemctl start nginx
访问你的服务器IP,可以看到 nginx 的欢迎界面
http://<您的 server IP 地址>/
安装 uwsgi
使用 yum 命令安装 uwsgi
yum install uwsgi uwsgi-plugin-python -y
让 Nginx,uwsgi,Django 协同工作[精华部分]
1.修改 Nginx 配置文件
编辑 /etc/nginx/nginx.conf
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
2.重启 Nginx
/usr/sbin/nginx -s reload
3.创建 uwsgi 配置文件
在 /data/mysite 目录下创建 uwsgi.ini,参考下面的内容
示例代码:/data/mysite/uwsgi.ini
[uwsgi] socket = 127.0.0.1:8000 chdir = /data/mysite wsgi-file = mysite/wsgi.py processes = 4 threads = 2 stats = 127.0.0.1:9191 uid = nobody gid = nobody master = true harakiri = 30 daemonize = /data/mysite/uwsgi.log plugins = python
4.启动 uwsgi
uwsgi uwsgi.ini
搭建完成
访问链接 http://<您的 server IP 地址>/
如果可以看到 Django 的界面,恭喜你,环境搭建成功
评论加载中