概述:
此文記錄我如何在一臺全新的騰訊雲主機上部署一個flask web,
一般我們的博客都會在完成後整理成一個最優解,但
這篇文章我不準備做任何整理,完全展現我部署的整個思維方式,希望給更多的人一種另外一種啓示
nginx安裝
#nginx 編譯依賴庫
1.yum install pcre pcre-devel
2. yum install openssl openssl-devel
#nginx 下載網址
http://nginx.org/download/nginx-1.15.10.tar.gz
#創建nginx賬號
useradd nginx -s /sbin/nologin -M # -M 不創建家目錄 -s /sbin/nologin 禁止shell登錄
#解壓
tar -zxvf nginx-1.15.10.tar.gz
#編譯,安裝目錄/usr/local/app/nginx/
./configure --user=nginx --group=nginx --prefix=/usr/local/app/nginx/ --with-http_stub_status_module --with-http_ssl_module
#編譯顯示的信息
nginx path prefix: "/usr/local/app/nginx/"
nginx binary file: "/usr/local/app/nginx//sbin/nginx"
nginx modules path: "/usr/local/app/nginx//modules"
nginx configuration prefix: "/usr/local/app/nginx//conf"
nginx configuration file: "/usr/local/app/nginx//conf/nginx.conf"
nginx pid file: "/usr/local/app/nginx//logs/nginx.pid"
nginx error log file: "/usr/local/app/nginx//logs/error.log"
nginx http access log file: "/usr/local/app/nginx//logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"#
#測試nginx
cd /usr/local/app/nginx/sbin
./nginx -t
nginx: the configuration file /usr/local/app/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/app/nginx//conf/nginx.conf test is successful#nginx 重載命令
nginx -s reload
#放通80端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#nginx 配置
去掉#和空行 生成 新的 nginx.conf 配置文件
egrep -v "#|^$" nginx.conf.bak >nginx.conf# nginx配置文件如下
[root@VM_0_12_centos conf]# pwd /usr/local/app/nginx/conf [root@VM_0_12_centos conf]# cat nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_buffer_size 4k; proxy_buffers 4 32k ; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; #root html; #index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } [root@VM_0_12_centos conf]#
vim設置4空格
在修改nginx 配置的時候,tab鍵不是4空格就順手改了
#vim 簡單配置 設置tab鍵爲4個空格
cp /etc/vimrc ~/.vimrc
set ts=4
python 安裝
#linux python 安裝 linux 可以通過wget 下載安裝包,但是下載太慢了,我就本地開代理下載後,直接通過scp上傳的
1.wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz #雲主機wget太慢2.scp ./Python-3.6.5.tgz [email protected]:~ #scp上傳python安裝包
#解壓
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5#配置-編譯-安裝
./configure --prefix=/usr/local
make&&make install#
python3.6程序的執行文件:/usr/local/bin/python3.6
python3.6應用程序目錄:/usr/local/lib/python3.6
pip3的執行文件:/usr/local/bin/pip3.6
#
git安裝
yum install git
#安裝git 的原因我想直接在github clone web工程,後來發現速度太太慢了,後來還是自己本地上傳的
gunicorn 安裝
#安裝
pip3 install gunicorn
啓動命令
gunicorn -w 2 -D --log-level info --access-logfile /usr/local/app/gun_log/access.log --error-logfile /usr/local/app/gun_log/error.log -b 127.0.0.1:8000 blog:app
-w 進程數
-b 設置端口-D 後臺啓動
mysql安裝
在gunicorn 啓動後,遠程訪問,報錯了,纔想起來mysql 沒有安裝。。。。。
#通過yum 安裝,簡單粗暴,但是我想安裝5.7的mysql 所以我手動通過方式二安裝的mysql
yum install mysql方式二:
# groupadd mysql
# useradd -s /sbin/nologin -g mysql -M mysql#安裝mysql
# wget https://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm
# yum -y localinstall mysql57-community-release-el7-8.noarch.rpm
# yum -y install mysql-community-server#啓動
service mysqld start #我習慣這種方式啓動mysql
systemctl start mysqld
systemctl restart mysqld#開機啓動
systemctl enable mysqldsystemctl daemon-reload
#mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個臨時的默認密碼。
vi /var/log/mysqld.log
1 [Note] A temporary password is generated for root@localhost: d6#(*YXu!x92
#mysql -u root -p
修改root 密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你自己的密碼';
授權遠程登錄
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Onionxxxxxx' WITH GRANT OPTION;
查看編碼
mysql> show variables like '%character%';mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
修改mysql編碼
# vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'#修改後記得重啓mysql,
登錄mysql 創建blog數據庫
mysql> create database blog;
進入工程生成數據
cd /home/onion/project/blog/app
python3 data_fake.py #執行報錯app 找不到
手動在data_fake.py 中加入如下幾行
import sys sys.path.append("/home/onion/project/blog")
自此 整個工程部署完成
後記
點擊左上角onion博客,會彈出登錄界面,
密碼:zhou