php+python+supervisord項目部署

服務器操作系統:ubuntu 18.04

Nginx

安裝Nginx

  1. sudo apt-get update
  2. sudo apt-get install nginx

查看Nginx狀態

  1. sudo systemctl status nginx

啓動Nginx服務

  1. sudo systemctl start nginx

重啓Nginx服務

  1. sudo systemctl restart nginx

配置Nginx日誌格式

vim /etc/nginx/nginx.conf

  1. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  2. ' $status $body_bytes_sent "$http_referer" '
  3. '"$http_user_agent" "$http_x_forwarded_for" '
  4. '$bytes_sent $request_length $request_time $upstream_response_time';

PHP

安裝PHP7.3

  1. sudo apt-get install software-properties-common
  2. sudo add-apt-repository ppa:ondrej/php
  3. sudo apt-get update
  4. sudo apt-get install -y php7.3

安裝PHP擴展

  1. sudo apt-get install php7.3-bcmath php7.3-bz2 php7.3-cgi php7.3-curl php7.3-dev php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-soap php-redis php7.3-xml php7.3-zip php7.3-mongo

安裝PHP包管理工具

  1. sudo apt-get install composer

配置PHP-FPM

  1. sudo vim /etc/php/7.3/fpm/pool.d/www.conf

PHP錯誤日誌

  1. php_admin_value[error_log] = /var/log/fpm-php.www.log
  2. php_admin_flag[log_errors] = on

配置PHP-FPM子進程

  1. pm = static
  2. pm.max_children = 80

PHP慢日誌

  1. slowlog = /var/log/$pool.log.slow
  2. request_slowlog_timeout = 5

重啓PHP-FPM

  1. kill -USR2 `cat /run/php/php7.3-fpm.pid`

 

SFS掛載

  1. mkdir -p /data/sfs
  2. apt-get install nfs-common
  3. mount -t nfs -o vers=3,timeo=600,noresvport,nolock 10.250.50.193:/share_idata_pro /data/sfs

管理後臺項目

python環境安裝

  1. apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools
  2. pip3 install pymysql
  3. pip3 install python-dotenv
  4. pip3 install sshtunnel
  5. pip3 install redis
  6. pip3 install apscheduler

定時任務

  1. */15 * * * * /usr/bin/php7.3 /data/backend/project/artisan schedule:run >> /tmp/idata.log
  2. nohup /usr/bin/python3 /data/backend/project/task/task_app/jobs.py > /tmp/template.log 2>&1 &

接口服務

  1. cd /data/backend/project/api_app
  2. python3.6 -m venv apienv
  3. source apienv/bin/activate
  4. pip install wheel
  5. pip install flask gunicorn
  6. pip install gevent redis python-dotenv

supervisor

安裝supervisor

  1. pip install supervisor
  2. mkdir -p /etc/supervisor
  3. mkdir -m 755 -p /etc/supervisor/
  4. echo_supervisord_conf > /etc/supervisord.conf

編輯配置文件,最後兩行

vim /etc/supervisord.conf

  1. [include]
  2. files = /etc/supervisor/*.conf

創建日誌目錄

mkdir -p /var/log/gunicorn
chown -R www-data:www-data /var/log/gunicorn/

創建項目配置文件

vim /etc/supervisor/project.conf

  1. [program:template]
  2. directory = /data/backend/idata/template_app
  3. command = /data/backend/idata/template_app/templateenv/bin/gunicorn --workers 33 --worker-class gevent --bind unix:template.sock -m 007 app:server
  4. user = www-data
  5. autostart = true
  6. autorestart = true
  7. startretries = 3
  8. redirect_stderr = true
  9. stdout_logfile_maxbytes = 200MB
  10. stdout_logfile_backups = 10
  11. stdout_logfile = /var/log/gunicorn/template.log

workers 數爲cpu核心數 X 2 + 1
user 啓動用戶
redirect_stderr stderr 重定向到 stdout
stdout_logfile_maxbytes 日誌文件大小
stdout_logfile_backups 日誌文件備份數
stdout_logfile 日誌文件

管理supervisord

  1. supervisord -c /etc/supervisord.conf
  2. supervisorctl -c /etc/supervisord.conf status
  3. supervisorctl -c /etc/supervisord.conf reload

項目管理

  1. supervisorctl -c /etc/supervisord.conf stop project
  2. supervisorctl -c /etc/supervisord.conf start project
  3. supervisorctl -c /etc/supervisord.conf restart project

 

mysql:默認安裝後的密碼

 1.進入目錄:cd /etc/mysql,查看debian.cnf文件

    2.使用上debian.cnf的賬號密碼登錄MySQL。

    3.use mysql;

    4.使用一下語句設置賬號密碼:update user set authentication_string=PASSWORD("自定義新密碼") where user='root';

    5.執行一下語句:update user set plugin="mysql_native_password";

    6.刷新:flush privileges;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章