Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

WeGdufe/SmallGdufe-Server

Repository files navigation

小广财服务端-安装指南

如果是接入API,而非安装,请看 API接入文档

requirements: Redis >= 3.x Mysql/MariaDB PHP 7(如果不是,修改 AesSecurity/不使用加密方案可以不改 )

clone完代码建议直接全部文件777权限 chmod -R 777 . , 同时跑 git config core.filemode false 忽略Git的权限变更

从0开始搭建

Redis:

yum install -y redis 
nohup redis-server &

Nginx:

yum install -y nginx 
systemctl start nginx
systemctl enable nginx

Mysql(mariadb):

yum install mariadb-server mariadb -y
初始化密码 mysql_secure_installation
systemctl start mariadb
systemctl enable mariadb

PHP7:

yum -y install epel-release
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
yum install yum-utils -y
yum-config-manager --enable remi-php71
yum --enablerepo=remi,remi-php71 install -y php-fpm php-common
yum --enablerepo=remi,remi-php71 install -y php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-zip 
systemctl start php-fpm
systemctl enable php-fpm
如遇问题可参考: https://www.hostinger.com/tutorials/how-to-install-lemp-centos7

新建数据库用户,避免ROOT账号连接

mysql -u root -p
CREATE USER 'gdufeuser'@'localhost' IDENTIFIED BY '密码';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON *.* TO 'gdufeuser'@'localhost';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE ON `gdufeapp`.* TO 'gdufeuser'@'localhost';
flush privileges;

然后更改config/db.php配置

如果想远程root连接数据库

mysql -u root -p 密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
flush privileges;

PHP7 & 修改代码

config 下新建个 api_center.php

<?php
return $apiCenter = [
 'AppIdSecretMap' => [
 '我是KEY' => '我是纯英文私钥,建议6位'
 ]
];

上面那个文件本来是放 安卓APP 1.6 参数加密使用的,后来放弃了,所以即使不要也OK
放弃原因:原计划根据加密后的参数进行解码, 因遇到 签名不一致 和 强要求PHP 7.0 、 DieReturn 的data必须匹配不同接口(数组还是对象), 所以没发1.6.0版,白开发了

建议直接 PHP7

如果你想用PHP5,最少得是 5.5.9 而且需要修改 controllers/AesSecurity 让他与现有的PHP7版反正一致

以下为PHP5升级7教程:

Centos6: https://www.zerostopbits.com/how-to-install-upgrade-php-5-3-to-php-5-5-on-centos-6-7/

Centos7: https://www.cadch.com/modules/news/article.php?storyid=227

EPEL和remi要装对应版本,Centos7就装7的,如果报了 Requires: httpd-mmn = 20051115 类似错误说明是你Centos7装了remi6,你需要 remove 掉6的再装7的。

导入初始数据库

新建数据库,名字叫gdufeapp,导入gdufeapp.sql,修改 config/db.php 的数据库密码等配置,在不用客户端的情况下命令如下

mysql -uroot -p
MySQL [(none)]> create database gdufeapp;
MySQL [(none)]> use gdufeapp;
MySQL [gdufeapp]> source 绝对路径/gdufeapp.sql;
MySQL [gdufeapp]> exit;

解决代码库依赖

代码需要一堆第三方库,在vendor目录里,

  • 方案一:unzip vendor.zip 解压放到项目根目录,这样就不用安装composer了

  • 方案二:安装composer,然后跑命令在线下载,这种方案少了/vender/bower/目录,不过那个是错误页,少了没关系

    curl -sS https://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer
    composer config -g repo.packagist composer https://packagist.phpcomposer.com # 设置镜像加速用
    yum -y install php-mbstring php-xml # 防依赖库报错用
    composer install 					# 让composer去下载依赖库
    

运行

Nginx配置

  1. 复制并编辑nginx样例配置替换 /etc/nginx/nginx.conf 里的Server部分

  2. 由于样例是Nginx通过sock文件跟PHP交互,所以 vi /etc/php-fpm.d/www.conflisten = 127.0.0.1:9000 改为 listen = /var/run/php-fpm/php-fpm.sock

  3. 然后重启Nginx和php-fpm systemctl restart php-fpm systemctl restart nginx,尝试访问你的iP:82端口,如果出现Json字符串说明成功 如果你全程是root账号操作你可能需要 尝试 chmod o+w /var/run/php-fpm/php-fpm.sock 启动失败请看日志: /var/log/nginx/error.log /usr/share/nginx/MovingGdufe-Server/runtime/logs

Yii自带Web服务器,在项目目录下

php yii serve app.wintercoder.com:82

就行。但这个是单线程的,只能测试用,不要线上用,否则更新APP的时候可能卡全部用户。

Httpd 配置

直接监听82端口,目录指到项目根目录的/web目录就行,如果代码放在默认的/var/www/html/目录下,直接如下操作就行。

vi /etc/httpd/conf/httpd.conf

Listen 82
NameVirtualHost *:82
<VirtualHost *:82>
ServerName 这里是服务器IP/域名
DocumentRoot "/var/www/html/web"
</VirtualHost>

完工。如果不在/var/www/html/里,你跟着改路径就行。

如果同时跑Web官网和接口,添加如下:

NameVirtualHost *:82
<VirtualHost *:82>
ServerName app.wintercoder.com
DocumentRoot "服务端代码根目录地址/web"
</VirtualHost>
NameVirtualHost *:82
<VirtualHost *:82>
ServerName api.wintercoder.com
DocumentRoot "服务端代码根目录地址/web"
</VirtualHost>
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName www.wintercoder.com
DocumentRoot "官网代码根目录地址"
</VirtualHost>
然后DocumentRoot "这目录下包含服务端代码目录和官网目录"

启动 service httpd start

检验成功与否

记得关闭iptables或者开放82,8080端口

  1. 能浏览器打开(GET) http://你的ip:82/index.php?r=work/check-app-update 且返回json则说明环境通了
  2. 访问 http://你的ip:82/index.php?r=work/feedback&sno=13251102210&content=test 能通说明数据库OK
  3. 能查成绩且第二次打开会快很多则说明redis没问题 http://你的ip:82/index.php?r=jw/get-grade&sno=你的学号&pwd=你的密码

更新Api文档

Api文档是用Apidoc生成的,需要NodeJs环境,以下是按Win来说明的,Linux和Mac操作同理

  1. 安装NodeJs: http://www.runoob.com/nodejs/nodejs-install-setup.html 装完后安装apidoc: sudo npm install apidoc -g

  2. 解决国内npm命令安装依赖速度慢的问题:

    npm config set registry http://registry.npm.taobao.org

  3. 修改完 controller/ 的注释就在项目根目录就可以生成到 apidoc 目录下

    apidoc -i controllers/ -o apidoc/

安装中可能遇到的问题

  • MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.

​ 解决方案: 在redis-cli里运行 127.0.0.1:6379> config set stop-writes-on-bgsave-error no

  • HTTPD显示PHP文件为源码或者自动下载 vi /etc/httpd/conf/httpd.conf

    AddHandler php5-script PHP
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule prefork.c>
    LoadModule php5_module modules/libphp5.so
    </IfModule>
    <IfModule !prefork.c>
    LoadModule php5_module modules/libphp5-zts.so
    </IfModule>
    

​ 如果加载不到这几个.so的报错就可能PHP你不是通过yum安装的

  • 该系统在Win上也可安装,最开始是在Win上测试的,不过安装软件就需要自己百度去官网下载了。

  • 修改Mysql的Root密码,连上mysql再

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
    FLUSH PRIVILEGES;
    

About

小广财服务端(2019年09月23日说明:因登录系统变更,代码无法使用,仅供学习,无法提供其他价值,!不要用于毕设! )

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /