1, mysqljavascript
grant all on demo.* to demo@'127.0.0.1' identified by 'wd1023'; flush privileges; create database demo character set = utf8;
2,nginx 和初始壞境腳本php
# onestack的腳本 wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ~/oneinstack/install.sh --nginx_option 1 # python編譯安裝和虛擬環境 wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz && tar xvf Python-3.6.5.tar.xz && cd Python-3.6.5/ ./configure && make && make install mkdir -p /data/ && cd /data python3.6 -m venv py36 source /data/py36/bin/activate # 項目安裝 unzip demo.zip mv demo wwwroot/project cd /data/wwwroot/project/ apt install libmysqlclient-dev -y pip install -r requirements.txt
3, Django 項目配置css
vi demo/settings.py ALLOWED_HOSTS = ['*'] #容許任意主機訪問 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'demo', 'USER':'demo', 'PASSWORD':'wd1023', 'HOST':'192.168.1.200' 'PORT':'3306', 'OPTIONS': MYSQL_DATABASE_OPTIONS, } } STATIC_ROOT = os.path.join(BASE_DIR, 'static/') #設置靜態目錄 python manage.py collectstatic #採集靜態文件到指定的STATIC_ROOT python manage.py makemigrations python manage.py migrate #數據庫對象生成 python manage.py createsuperuser #超級管理員 python manage.py runserver 0.0.0.0:8000 #測試運行
4, uwsgi相關配置文件和目錄java
mkdir /data/uwsgi-script -p #建立uwsgi-script存放log等文件(原來是想存放自動腳本) chown www.www -R /data/wwwroot/project #修改項目文件屬主和uwsgi中一致 mkdir /etc/uwsgi/sites/ -p #創建uwsgi統一的站點配置目錄(相似於nginx的conf/vhost目錄) cat /etc/uwsgi/sites/demo.ini #生成項目的uwsgi配置demo.ini [uwsgi] #socket = :8000 uid = www socket = /run/uwsgi/demo.sock #用unix-socket方式 chmod-socket = 660 #socket權限 chown-socket = www:www #socket屬主 #http = 192.168.1.210:8000 static-map=/static=/data/wwwroot/project/static/ #靜態文件路徑和setting裏的STATIC_ROOT一致 chdir = /data/wwwroot/project/ #項目主目錄 module = demo.wsgi:application #項目的app中的wsgi路徑(由於uwsgi實際上是封裝wsgi) home = /data/py36 #虛擬環境主目錄 pidfile = /data/uwsgi-script/demo/uwsgi.pid #pid文件 daemonize = /data/uwsgi-script/demo/uwsgi.log #日誌文件 master = true processes = 3 #進程和線程數 threads = 2 vacuum = true #這項必須開啓,才能使用emperor模式 max-requests = 2000
PS: 不建立會報錯
mkdir /data/uwsgi-script/demo/
touch /data/uwsgi-script/demo/uwsgi.logpython
5, nginx相關配置mysql
mkdir /usr/local/nginx/conf/vhost vi /usr/local/nginx/conf/vhost/demo.conf server { listen 80; server_name _; access_log /data/wwwlogs/demo_nginx_access.log; client_max_body_size 75M; charset utf-8; gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; location /static { #nginx跳過uwsgi直接處理靜態請求 alias /data/wwwroot/project/static/; } location / { include uwsgi_params; # uwsgi_pass 127.0.0.1:8000; uwsgi_pass unix:/run/uwsgi/demo.sock; #nginx代理uwsgi的unix-socket } } vi /usr/local/nginx/conf/nginx.conf #備註主配置中的default server :61,92 s/^/#/g nginx -t nginx -s reload
6, systemcd腳本linux
cat /lib/systemd/system/demo.service [Unit] Description=uWSGI Emperor service [Service] ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown www.www /run/uwsgi' ExecStart=/data/py36/bin/uwsgi --emperor /etc/uwsgi/sites Restart=always KillSignal=SIGQUIT Type=notify NotifyAccess=all [Install] WantedBy=multi-user.target systemctl enable demo
7,uwsgi 測試命令nginx
啓動:uwsgi --ini your_path/demo.ini
中止:uwsgi --stop your_path/uwsgi.pid
重啓:uwsgi --reload your_path/uwsgi.pidsql