美文网首页
从0到微信公众平台开发

从0到微信公众平台开发

作者: 灰斗儿 | 来源:发表于2017-11-19 02:08 被阅读16次

    Q&A

    Q:输入supervisorctl。提示unix:///soft/run/supervisor.sock no such file?

    A:输入supervisord启动服务

    Q: supervisorctl start xxxx, 提示 xxxxx: ERROR (spawn error)

    A:
    =======第一种可能=======
    检查环境变量是否正常加载。environment字段,我的由于python变量未定义导致过这个问题
    [program:xxx]
    directory=/soft/xxx/
    command=uwsgi --ini /soft/xxx/uwsgi.ini
    autostart=false
    autorestart=false
    redirect_stderr=true
    stdout_logfile=/soft/log/supervisord/xxx.log
    stderr_logfile=/soft/log/supervisord/xxx.err
    environment=PYTHONPATH=/usr/lib/python2.7/site-packages
    stopsignal=QUIT
    =======第二种可能=======
    端口被占用。例如8000端口

    $lsof -i:8000
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    nginx 967 root 8u IPv4 9380 0t0 TCP *:irdmi (LISTEN)
    nginx 1107 nobody 8u IPv4 9380 0t0 TCP *:irdmi (LISTEN)
    如果有,执行kill PID 命令
    $kill 967
    再次启动项目恢复正常

    ======更多可能======
    查看配置中stdout_logfile所指定的log文件,一般后两行可以看出原因。

    Q: git 仓库创建

    A:git init -bare xxxx.git //创建空仓库
    chown -R git:git xxxx.git //更改所有者为git,否则无法提交git push
    持续更新中。。。。

    注册微信公众号

    待补充

    购买阿里云ECS服务器

    待补充

    配置服务器开发环境

    安装nginx
    $yum install wget
    $wget http://nginx.org/download/nginx-1.4.2.tar.gz //可以到官网更改为最新版本
    $tar -zxvf nginx-1.4.2.tar.gz
    $cd nginx-1.4.2
    $./configure
    $make
    $make install
    
    $ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin/nginx //建立软链接,方便直接使用nginx命令。
    $nginx -s start     //启动nginx
    $nginx -s reload     //重启nginx
    $nginx -s stop     //停止nginx
    

    开启端口

    $iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
    $service iptables save
    $service iptables restart
    

    前往阿里云后台设置增加安全组规则,端口设置为8088


    增加安全组规则截图

    更改nginx.conf 监听8088端口,设置root目录

    $vi /usr/local/nginx/conf/nginx.conf
    阅读nginx.conf文件,按i键,将server 中的listen 后面的80改为8088,location下面的root后面的路径改为项目跟目录。按esc按钮 
    $:wq
    $nginx -s reload
    

    django 基本项目会用到sqlite3,安装

    $wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz
    $tar xvzf sqlite-autoconf-3070500.tar.gz 
    $cd sqlite-autoconf-3070500
    $make && make install
    
    升级python版本到2.7+
    $wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
    $tar -zxvf Python-2.7.2.tgz
    $cd Python-2.7.2
    $./configure  --prefix=/usr
    $make&&make install
    

    升级pip,否则会报错(pkg_response not found)

    $curl -O http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
    $sh setuptools-0.6c11-py2.7.egg
    $easy_install pip
    
    安装django框架
    $easy_install django //或者pip install django
    
    测试django是否安装成功
    $python
    Python 2.7.2 (default, Jul 30 2016, 19:40:32) 
    [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import django
    >>> django.VERSION
    (1, 11, 7, u'final', 0)
    

    配置微信公号号服务器

    公众号平台后台-》基本配置

    安装uwsgi
    $pip install uwsgi
    $uwsgi --version
    2.0.15(可能会不同)
    
    使用supervisor守护程序

    supervisor是什么?为何要使用?

    nginx 服务器配置
    server {
        listen      80; //nginx 监听端口(其他端口可以通过nginx反向代理实现)
        server_name localhost; //机器备案域名,代替ip地址
        charset     utf-8; //编码UTF-8,提高可读性
    
        access_log /path to your project/access_log; //nginx 运行日志(路径文件夹需自己创建,文件会自动生成)
        error_log  /path to your project/error_log; //nginx 异常日志(路径文件夹需自己创建,文件会自动生成)
    
        client_max_body_size 25M;  //最大上传文件大小,根据需要自行调整
    
        //nginx反向代理端口,django server
        location / {
             include    uwsgi_params;
             uwsgi_pass 127.0.0.1:8088;
            //uwsgi_params 根据需求调整,见附录
        }
        //多媒体资源
        #location /media  {
        #    alias /path to your project/media; //所有多媒体资源存放路径
        #}
        //静态资源
        location /static {
          alias /root/project/hello/static;//所有静态文件在这里(图片啥的)
        }
    }
    

    yum install libxslt-devel libxml2-devel(gcc cu ou)
    yum install lxml

    安装数据库(mysql)

    方法一:安装包安装
    参考mysql官方教程

    启动:sudo mysql.server start
    停止:sudo mysql.server stop
    重启:sudo mysql.server restart
    

    方法二:brew 安装
    安装:brew install mysql

    启动:sudo mysql start
    停止:sudo mysql stop
    重启:sudo mysql restart
    
    创建数据库(mysql)

    sqlite3存在中文编码问题,目前未找到解决方案
    mysql -uroot -p

    show databases; //查看所有数据库

    SHOW VARIABLES LIKE 'character%'; //查看数据库编码类型

    CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; //COLLATE utf8_general_ci 排序时根据utf8排序

    create database xxxx character set utf8; //创建数据库并设备编码utf8,解决中文 ??? 乱码的问题,建议使用这种方式创建

    alter database mydb character set utf8; //针对已经存在的数据库更改字节编码类型
    也可以在修改 /etc/my.cnf文件
    alter table mydb change nickname nickname varchar(32) character set utf8 not null;
    [mysqld]
    default-character-set=utf8
    character_set_server=utf8
    这样会更改整个个mysql的编码类型
    这样操作之后重启数据库即可,注意只对新建的数据库生效

    django setting 设置数据库

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'xxxx',
    'USER':'root',
    'PASSWORD':'123456',
    'HOST':'',
    'PORT':'',
    }
    }

    修改数据库密码

    MySQL -u root
      mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

    简单项目入手测试

    后台项目创建
    web项目创建(React js)

    日志很重要

    相关文章

      网友评论

          本文标题:从0到微信公众平台开发

          本文链接:https://www.haomeiwen.com/subject/laquvxtx.html