Tencent Cloud Server構成プロセス(CentOS + Python + Django + Nginx + uWSGI)

序文

  このブログはTencentCloud Serverのセットアッププロセスです(Alibaba Cloud Serverも利用可能です)。必要なソフトウェアはCentOS 7.5、Python 3.7.8、Django 3.1、Nginx、uWSGIです。Djangoを使用してWebサイトを開発する場合、これは良いものです。このチュートリアルを通じて、Djangoによって開発されたWebサイトをサーバーにデプロイできることを選択します。

1.開発ツールとさまざまな依存関係パッケージをインストールして更新します

	yum -y groupinstall "Development tools"
	yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc automake autoconf libtool make wget

ここに写真の説明を挿入
ここに写真の説明を挿入

2.Python3をインストールします

  • Pyhton3を/usr/localディレクトリにダウンロードします[遅いので、ローカルにダウンロードWinSCP経由でアップロードしました]
	cd /usr/local
	wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz
  • Pythonソースコードパッケージを解凍します
	tar -zxvf Python-3.7.8.tgz
  • Python-3.7.8ディレクトリに入り、コンパイルしてインストールします
	cd Python-3.7.8
	./configure --prefix=/usr/local/python3
	make && make install
  • 端末での直接使用を容易にするためのソフトリンクを確立します(システム環境変数に追加されます)
	ln -s /usr/local/python3/bin/python3 /usr/bin/python3
	ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • バージョンを確認する
	python3 -V
	pip3 -V
  • pip3のバージョンをアップグレードします(オプション)
	pip3 install --upgrade pip

ここに写真の説明を挿入

3.仮想環境を構成します

  • virtualenvをインストールして、さまざまなバージョンのプロジェクト管理を容易にします
	pip3 install virtualenv
  • ソフトリンクを確立する
	ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
  • インストールが成功すると、ルートディレクトリに2つのフォルダが作成され、主にenvファイルとwebsiteファイルを保存するために使用されます
	mkdir -p /data/env
	mkdir -p /data/wwwroot
  • /data/env/へ切り替えて、指定したバージョンの仮想環境を作成します
	cd /data/env/
	virtualenv --python=/usr/bin/python3 pyweb
  • 仮想環境を開始します
	cd /data/env/pyweb/bin
	source activate
  • 仮想環境を終了します
	deactivate

ここに写真の説明を挿入

4.MySQLをインストールします

  • MySQLの公式Yumリポジトリをダウンロードしてインストールします
	wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  • 上記のコマンドを使用して、インストール用にYumリポジトリを直接ダウンロードし、yumを使用して直接インストールします。
	yum -y install mysql57-community-release-el7-10.noarch.rpm

ここに写真の説明を挿入

  • MySQLサーバーをインストールします
	yum -y install mysql-community-server
  • 最初にMySQLを起動します
	systemctl start mysqld.service
  • MySQLの実行ステータスを確認します。表示active (runing)されている場合は、MySQLが開始されていることを意味します。
	systemctl status mysqld.service

ここに写真の説明を挿入

  • ログファイルでルートパスワードを確認します
	grep "password" /var/log/mysqld.log
  • データベースに入る
	mysql -u root –p 
  • パスワードを変更する
	ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

ここに写真の説明を挿入

5.DjangoとuWSGIをインストールします

  • DjangoとuWSGIをインストールします(インストールする前に仮想環境に入ります)
	pip3 install django
	pip3 install uwsgi
  • また、互換性とデバッグの利便性のために、ローカルMySQLはバージョン8.0であるため、pymysqlをインストールします。
	pip3 install pymysql
  • ソフトリンクを確立する
	ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
  • ファイアウォールをオンにします
	# 查看防火墙是否开启
	systemctl status firewalld
	# 开启防火墙
	systemctl start firewalld

ここに写真の説明を挿入

  • ポートを開きます(8001ポートを追加し、ポリシー構成を再ロードします)需要在服务器管理界面配置一下安全组,加入8001端口
	firewall-cmd --zone=public --add-port=8001/tcp --permanent
  • ポリシー構成を再ロードして、新しい構成を有効にします
	firewall-cmd --reload
  • 開いているポートとプロセスを表示する
	netstat -tunlp
	netstat -lnp| grep 8001
  • Webサイトプロジェクトのルートディレクトリに/data/wwwroot/ChatRobot名前を付けたtest_uwsgi.pyファイルを作成します
	cd /data/wwwroot
	mkdir ChatRobot
	cd ChatRobot
	vim test_uwsgi.py
	# 文件内容如下:
	def application(env, start_response):
	    start_response('200 OK', [('Content-Type','text/html')])
	    return [b"Hello World"]
	# 内容写入之后 ESC 退出输入模式,切换到命令模式
	# :w 保存	:q 退出
  • 次のコマンドを入力してuWSGIを起動します。このとき、コンピューターのブラウザーにip:8001入力し、Enterキーを押してブラウザーの表示Hello Worldワードを表示します。これは、サーバーがブラウザーからの要求を受信できることを意味します。
	uwsgi --http :8001 --wsgi-file /data/wwwroot/ChatRobot/test_uwsgi.py

ここに写真の説明を挿入

  • UWSGIとポートは、次のコマンドで開始できます
	uwsgi --chdir /data/wwwroot/ChatRobot --home /data/env/pyweb --http :8001 --module=ChatRobot.wsgi:application

  このとき、ブラウザにipを入力します。問題がなければ、Webサイトはロードされていますが、静的ファイルがありません。

6.Nginxをインストールして構成します

  インストールする前に、Webサイトのディレクトリについて説明しましょう。以下に数行のコードを追加します。

ここに写真の説明を挿入

	# 在urls.py文件中添加如下代码
	from django.urls import path
	from tencent import views
	
	urlpatterns = [
	    path('wx', views.TencentView, name='TencentView')
	]
	
	# 在views.py文件中添加如下代码
	from django.http import HttpResponse

	def TencentView(request):
		return HttpResponse(content="haha this is a tencent")
  • epelライブラリをインストールする
	yum install epel-release –y
  • Nginxライブラリをインストールします
	yum -y install nginx

ここに写真の説明を挿入

  • Nginxサービスを開始します(ポート80が開いていて、占有されていないことを確認します。開いていない場合は、上記の構成を参照して、ファイアウォールを介してポートを開きます)
	systemctl start nginx.service
	或
	service nginx start
  • Nginxを構成し、次のコマンドを使用してインストールパスを見つけます
	find / -name nginx.conf
  • 変更nginx.confファイルは次のとおりです。
	#user  nobody;
	worker_processes  2;
	
	error_log  /data/wwwroot/ChatRobot/error.log;
	error_log  /data/wwwroot/ChatRobot/error.log  notice;
	error_log  /data/wwwroot/ChatRobot/error.log  info;
	
	#pid        logs/nginx.pid;
	
	
	events {
    
    
	    worker_connections  1024;
	}
	
	
	http {
    
    
	    include       mime.types;
	    default_type  application/octet-stream;
	
	    #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  /data/wwwroot/ChatRobot/access.log  main;
	
	    sendfile        on;
	    #tcp_nopush     on;
	
	    #keepalive_timeout  0;
	    keepalive_timeout  65;
	
	    fastcgi_connect_timeout 300; 
	    fastcgi_send_timeout 300; 
	    fastcgi_read_timeout 300; 
	    fastcgi_buffer_size 64k; 
	    fastcgi_buffers 4 64k; 
	    fastcgi_busy_buffers_size 128k; 
	    fastcgi_temp_file_write_size 128k;
	
	    #gzip  on;
	
	    server {
    
    
		listen 80;
		server_name localhost;
		charset utf-8;
	
		client_max_body_size 75M;
	
		location /static {
    
    
			alias /data/wwwroot/ChatRobot/static;
		    	proxy_connect_timeout   18000;   
	          	proxy_send_timeout      18000;  
	          	proxy_read_timeout      18000;  
		}
	
		location /media {
    
    
			alias /data/wwwroot/ChatRobot/media;
		}
	
		location / {
    
    
			uwsgi_pass 127.0.0.1:8001;
			include /etc/nginx/uwsgi_params;
		}
	}
  • 構成が完了したら、それが合法かどうかを確認します
	nginx -t

ここに写真の説明を挿入

  • robot_uwsgi.ini次の内容で、Webサイトプロジェクトのルートディレクトリに名前が付けられた構成ファイルを作成します。
	[uwsgi]
	chdir = /data/wwwroot/ChatRobot
	home = /data/env/pyweb
	module = ChatRobot.wsgi:application
	master = true
	processes = 4
	harakiri = 600
	max-requests = 5000
	socket = 127.0.0.1:8001
	uid = 1000
	gid = 2000
	pidfile = uwsgi.pid
	daemonize = uwsgi.log
	vacuum = true
  • uWSGIとNginxを起動します
	uwsgi --ini /data/wwwroot/ChatRobot/chatrobot_uwsgi.ini
	service nginx start
  • uWSGIとnginxが正常に起動するかどうかを確認します
	ps -aux | grep uwsgi
	ps -aux | grep nginx

ここに写真の説明を挿入
ここに写真の説明を挿入

  • このとき、ブラウザにIPアドレスを入力してWebサイトにアクセスしてください。

ここに写真の説明を挿入
  OK!それでおしまい!

ここに写真の説明を挿入

  • 操作を終了したい場合は、次のコマンドを使用できます
	pkill -9 uwsgi
	pkill -9 nginx

7.Djangoパーツサプリメント

  • プロジェクトを構築する
	django-admin startproject ChatRobot(工程名)
  • MySQLデータベースを起動し、という名前のデータベースを作成tencentします
	net start MySQL80(我的本地MySQL是8.0版本的)
	mysql -uroot -p
	create database tencent;
  • __init__.py互換性のあるバージョンであることにコードを追加MySQL8.0
	import pymysql 
	pymysql.install_as_MySQLdb()
  • DjangoはデフォルトでSQLiteデータベースを使用し、settings.pyMySQLはファイルで構成さます
	DATABASES = {
    
    
	    'default': {
    
    
	        'ENGINE': 'django.db.backends.mysql',
	        'NAME': 'tencent',
	        'USER': '用户名',
	        'PASSWORD': '密码',
	        'HOST': '数据库服务器IP,本地是localhost',
	        'PORT': '端口名,默认是3306',
	    }
}
  • アプリケーションを作成する
	python manage.py startapp tencent(应用名)
  • settings.py、ファイル、う'tencent'に追加することがINSTALLED_APPS
  • 起動
	# ip可以不写,即默认本机ip
	# 端口号可以不写,默认为8000,可以修改
	python manage.py runserver ip:port

おすすめ

転載: blog.csdn.net/qq_42730750/article/details/112292993