Uninote
Uninote
用户根目录
tmp
博客笔记

部署mynote项目

进入服务器

修改了心跳ssh链接不断

  • 使用 vim /etc/ssh/sshd_config 编辑如下两行:
    找到下面两行
# ClientAliveInterval 0
# ClientAliveCountMax 3

去掉注释,改成

# 客户端每隔多少秒向服务发送一个心跳数据
ClientAliveInterval 30
# 客户端多少秒没有相应,服务器自动断掉连接
ClientAliveCountMax 1800
  • 重启sshd服务
$ service sshd restart

安装lnmp集成环境

官网链接为:lnmp

直接执行shell命令:

wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

按照提示如下操作:

+------------------------------------------------------------------------+
|          LNMP V1.5 for CentOS Linux Server, Written by Licess          |
+------------------------------------------------------------------------+
|        A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux       |
+------------------------------------------------------------------------+
|           For more information please visit https://lnmp.org           |
+------------------------------------------------------------------------+
You have 10 options for your DataBase install.
1: Install MySQL 5.1.73
2: Install MySQL 5.5.60 (Default)
3: Install MySQL 5.6.40
4: Install MySQL 5.7.22
5: Install MySQL 8.0.11
6: Install MariaDB 5.5.60
7: Install MariaDB 10.0.35
8: Install MariaDB 10.1.33
9: Install MariaDB 10.2.14
0: DO NOT Install MySQL/MariaDB
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9 or 0): 9
You will install MariaDB 10.2.14
===========================
Please setup root password of MySQL.
Please enter: ******
MySQL root password: *****
===========================
Do you want to enable or disable the InnoDB Storage Engine?
Default enable,Enter your choice [Y/n]: y
You will enable the InnoDB Storage Engine
===========================
You have 8 options for your PHP install.
1: Install PHP 5.2.17
2: Install PHP 5.3.29
3: Install PHP 5.4.45
4: Install PHP 5.5.38
5: Install PHP 5.6.36 (Default)
6: Install PHP 7.0.30
7: Install PHP 7.1.18
8: Install PHP 7.2.6
Enter your choice (1, 2, 3, 4, 5, 6, 7 or 8): 8
You will install PHP 7.2.6
===========================
You have 3 options for your Memory Allocator install.
1: Don't install Memory Allocator. (Default)
2: Install Jemalloc
3: Install TCMalloc
Enter your choice (1, 2 or 3): 1
Enter your choice (1, 2 or 3): 1
You will install not install Memory Allocator.

Press any key to install...or Press Ctrl+c to cancel

等待安装完成!

访问服务器出现lnmp欢迎界面

登录phpmyadmin完成高级功能设置

配置ssh权限访问

复制mynote2中的.ssh文件夹中的密钥到服务器

  • 注意:其目的是uninote的仓库可以克隆不一定是mynote2

从版本库中克隆项目到服务目录并且修改权限组

cd /home/www
git clone git@121.40.183.99:mynote.git
chown -R www:www mynote

修改nginx配置

localhost换成localhost_81端口服务改成81 生成passwd.db验证服务

  • 本地生成passwd.db
htpasswd -c passwd.db [username]
scp -r passwd.db root@[服务器]:/usr/local/nginx/passwd.db

  • 上服务器屏蔽nginx.confserver字段 第60行到101行,行首添加#注解掉server字段
vim /usr/local/nginx/conf/nginx.conf

  • 配置localhost_81.conf
vim /usr/local/nginx/conf/vhost/localhost_81.conf
server {
    charset utf-8,gbk;
    client_max_body_size 128M;
    listen 81;
    server_name [域名];

    include enable-php.conf;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    root   /home/wwwroot/default;
    index  index.php index.html;

    location / {
        # 开启 密码验证
        auth_basic "请输入密码和用户名";
        # 密码文件
        auth_basic_user_file /usr/local/nginx/passwd.db;
    }

    location ~ \.php$ {
        # 开启 密码验证
        auth_basic "请输入密码和用户名";
        # 密码文件
        auth_basic_user_file /usr/local/nginx/passwd.db;
    }

    access_log  /home/wwwlogs/localhost_81.log;
    error_log   /home/wwwlogs/localhost_81.error.log;
}

  • 配置mynote_80.conf
vim /usr/local/nginx/conf/vhost/mynote_80.conf
server {
    charset utf-8,gbk;
    client_max_body_size 128M;
    listen 80;
    server_name [域名];

    include enable-php.conf;
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/www/:/tmp/:/proc/";

    root   /home/www/mynote/basic/web;
    index  index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ ^/tests/ {
        auth_basic "请输入用户名和密码";
        auth_basic_user_file /usr/local/nginx/passwd.db;
    }

    location ^~/docs  {
        deny all;

        location ~ .*\.(html|htm|js|css|png|jpg|jpeg|gif|txt)?$ {
            allow all;
        }
    }

    access_log  /home/wwwlogs/mynote_80.log;
    error_log   /home/wwwlogs/mynote_80.error.log;
}

  • 修改fastcgi.conf配置
vim /usr/local/nginx/conf/fastcgi.conf

屏蔽第27行

# fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

  • 修改php.ini配置 修改第477行
display_errors = On

  • 重新载入服务
lnmp reload

安装PHP扩展

redis SeasLog xhprof

  • 下载redis服务和安装
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -xzf redis-5.0.0.tar.gz
cd redis-5.0.0
make

  • 开启redis服务
cd
./redis-5.0.0/src/redis-server &

  • 下载PHP-redis扩展和安装
wget https://pecl.php.net/get/redis-4.1.1.tgz
tar xzf redis-4.1.1.tgz
cd redis-4.1.1
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cp /root/redis-4.1.1/modules/redis.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
vim /usr/local/php/conf.d/ext-redis.ini
[redis]
extension=redis.so

  • 修改php.ini配置
vim /usr/local/php/etc/php.ini

第1322行改为redis

session.save_handler = redis

第1352行添加一行

session.save_path = "tcp://127.0.0.1:6379"

解除禁用函数,第314行

disable_functions =

修改cgi.fix_pathinfo值为1,第776行

cgi.fix_pathinfo = 1

  • 下载redismyadmin81端口服务目录
wget https://github.com/daivem/RedisMyAdmin/archive/master.zip
mv master.zip RedisMyAdmin.zip
unzip RedisMyAdmin.zip
mv RedisMyAdmin-master/ /home/wwwroot/default/redismyadmin

修改index.html目录文件

vim /home/wwwroot/default/index.html

第32行修改为:

<p>查看本地环境: <a href="/p.php" target="_blank" class="links">探针</a>  <a href="/phpinfo.php" target="_blank" class="links">phpinfo</a>  <a href="/redismyadmin/" target="_blank" class="links">redisMyAdmin</a>  <a href="/phpmyadmin/" target="_blank" class="links">phpMyAdmin</a>(为了安全,建议将phpmyadmin目录重命名为不容易猜到的目录!)</p>

  • 下载PHP-seaslog扩展和安装
wget https://pecl.php.net/get/SeasLog-1.8.6.tgz
tar xzf SeasLog-1.8.6.tgz
cd SeasLog-1.8.6
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
vim /usr/local/php/conf.d/ext-seaslog.ini
[SeasLog]
; configuration for php SeasLog module
extension = seaslog.so
; 默认log根目录
seaslog.default_basepath = "/tmp/log/seaslog-test"
; 默认logger目录
seaslog.default_logger = "default"
; 日期格式配置 默认"Y-m-d H:i:s"
seaslog.default_datetime_format = "Y-m-d H:i:s"
; 日志格式模板 默认"%T | %L | %P | %Q | %t | %M"
;seaslog.default_template = "%T -||- %L -||- %R -||- %C -||- %F -||- %Q -||- %M"
seaslog.default_template = "%t -||- %L -||- %C -||- %F -||- %Q -||- %M"
; 是否以目录区分Logger 1是(默认) 0否
seaslog.disting_folder = 1
; 是否以type分文件 1是 0否(默认)
seaslog.disting_type = 0
; 是否每小时划分一个文件 1是 0否(默认)
seaslog.disting_by_hour = 0
; 是否启用buffer 1是 0否(默认)
seaslog.use_buffer = 1
; buffer中缓冲数量 默认0(不使用buffer_size)
seaslog.buffer_size = 100
; cli运行时关闭buffer
; 1是 0否(默认)
seaslog.buffer_disabled_in_cli = 0
; 记录日志级别,数字越大,根据级别记的日志越多。
; 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL
; 默认8(所有日志)
;
; 注意, 该配置项自1.7.0版本开始有变动。
; 在1.7.0版本之前, 该值数字越小,根据级别记的日志越多:
; 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency
; 1.7.0 之前的版本,该值默认为0(所有日志);
seaslog.level = 8
; 日志函数调用回溯层级
; 影响预定义变量 %F 中的行数
; 默认0
seaslog.recall_depth = 1
; 自动记录notice 默认0(关闭)
seaslog.trace_notice = 0
; 自动记录warning 默认0(开启)
seaslog.trace_warning = 0
; 自动记录错误 默认1(开启)
seaslog.trace_error = 0
; 自动记录异常信息 默认0(关闭)
seaslog.trace_exception = 0
; 日志存储介质 1File 2TCP 3UDP (默认为1)
seaslog.appender = 1
; 写入重试次数
; 默认0(不重试)
seaslog.appender_retry = 0
; 接收ip 默认127.0.0.1 (当使用TCP或UDP时必填)
seaslog.remote_host = "127.0.0.1"
; 接收端口 默认514 (当使用TCP或UDP时必填)
seaslog.remote_port = 514
; 接收端口的超时时间 默认1秒
seaslog.remote_timeout = 1
; 过滤日志中的回车和换行符 (默认为0)
seaslog.trim_wrap = 0
; 是否开启抛出SeasLog自身异常  1开启(默认) 0否
seaslog.throw_exception = 1
; 是否开启忽略SeasLog自身warning  1开启(默认) 0否
seaslog.ignore_warning = 1

  • 下载PHP-xhprof扩展和安装
wget https://github.com/longxinH/xhprof/archive/master.zip
mv master.zip xhprof.zip
unzip xhprof.zip
cd xhprof-master/extension/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
vim /usr/local/php/conf.d/ext-xhprof.ini
[xhprof]
extension=xhprof.so
xhprof.output_dir="/tmp/xhprof"

安装gogs版本管理服务

官网文档:https://gogs.io/docs

wget https://dl.gogs.io/0.11.66/gogs_0.11.66_linux_amd64.zip
unzip gogs_0.11.66_linux_amd64.zip
useradd git
mv gogs /home/git
cd /home/git
chown -R git:git gogs
su git
cd gogs
./gogs web &

  • 打开MySQL数据库建立gogs数据库:
CREATE DATABASE `gogs` DEFAULT charset=utf8;
  • 浏览器访问3000端口,安装图例: gogs 安装图例

  • 设置SSH密钥
usermod -s /bin/bash www
su www
cd /home/www
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
cd .ssh
less id_rsa.pub

点击右上角自己头像 --> 用户设置 --> SSH密钥 ——> 增加密钥
复制shell显示的密钥到密钥内容,密钥名称随便取个有意思的!

  • 设置 Gogs API 点击右上角自己头像 --> 用户设置 --> 授权应用 --> 生成新的令牌 --> 输入令牌名称 --> 点击生成令牌
    温馨提示:新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次!

  • 服务器初次使用刚设置的ssh密钥 点击右上角自己头像 --> 控制面板 --> 用户管理 --> 创建新的账号 演示图例: gogs 创建测试用户图例 创建成功后退出登陆,使用刚才测试用户登陆gogs建立test仓库: gogs 创建测试仓库 继续给仓库添加协作者: 右上角仓库设置 --> 管理协作者 --> 输入自己的管理员用户 --> 增加协作者 --> 设置管理权限 温馨提示:在服务器上使用www用户组,执行仓库克隆和创建。(这一步骤是为了初次使用git的测试,以便为后面git使用顺利。) 图例演示: gogs 服务器仓库克隆创建

su www
cd /home/www
mkdir test
cd test
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@*.*.*.*:test/test.git
git push -u origin master

操作mynote配置文件

执行/home/www/mynote/sql目录下所有*.sql语句到MySQL数据库

推荐:可以进入82端口用phpmyadmin执行。

在配置目录操作文件

  • 进入配置目录
su www
cd /home/www/mynote/basic/config
  • 设置数据库密码
vim local_db.php
<?php

return [
    'password' => '******',
];
  • 设置api地址
vim local_api.php
<?php

return [
    'api_url' => 'http://[域名]/api',
    /*'api_url' => "{$_SERVER['REQUEST_SCHEME']}://{$_SERVER['HTTP_HOST']}/api",*/
];
  • 设置必要参数
vim local_params.php
<?php

return [
    'XHPROF_ROOT' => __DIR__ . "/../../../additional_item/xhprof/", // 性能分析插件基本目录
    'log_url' => 'http://localhost/app/mynote/additional_item/log_analysis/runner.php', //日志寄存host地址

    /**
    * mynote_gogs
    * @link https://github.com/gogs/docs-api
    */
    'gogs_api_url' => 'http://[域名]:3000/api/v1',  // gogs 的地址
    'gogs_token' => '***', // gogs eson token 管理者的令牌
    'gogs_url' => 'http://[域名]:3000/',

    /**
    * 阿里云SMS短信配置
    * @link https://dysms.console.aliyun.com
    */
    'AliyunSMS' => [
        'accessKeyId' => '***',
        'accessKeySecret' => '***',
        'SignName' => '***',
        'TemplateCode' => '***',
    ],

    /**
    * 邮箱SMTP配置
    * @link https://dm.console.aliyun.com/
    */
    'smail' => [
        'class' => 'Swift_SmtpTransport',
        'host' => '***',
        'username' => '***',
        'password' => '***',
        'port' => '465',
        'encryption' => 'ssl',
    ],

    /*邮件api配置*/
    'smail_api' => [
        'AccessKeyID' => '***',
        'AccessKeySecret' => '***',
    ],

    /*es 索引*/
    'es_host' => '47.97.186.229',
    'es_index' => 'mynote',
];

部署辅助additional_item项目

项目地址:git@git.uninote.com.cn:eson/additional_item.git

数据库MySQL新建:

建议使用81端口的phpmyadmin创建 在项目目录additional_item/sql下的所有*.sql文件执行在mynote数据库

设置MySQL数据库日志查询:

cd /usr/local/mariadb
mkdir logs
chown -R mariadb:mariadb logs

使用81端口phpmyadmin执行sql语句

SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/usr/local/mariadb/logs/general_log.log';

项目配置方面

温馨提示:克隆之前需要配置git源仓库的ssh密钥或者采用http地址

su www
cd /home/www
git clone git@git.uninote.com.cn:eson/additional_item.git

操作配置

vim config_my.php
<?php
$g_config["pwd"] = "***";
//日志寄存host地址
$g_config["log_url"] = 'http://[域名]:81/additional_item/log_analysis/runner.php';
/*日志解析路径*/
$g_config['item'] = [
    [
        "api" => "mynote_log", //模块名称
        "path" => "/home/www/mynote/basic/runtime/seaslog/default" //实际情况日志路径
    ],
    [
        "api" => "mynote_login",
        "path" => "/home/www/mynote/basic/runtime/seaslog/login"
    ],
    [
        "api" => "mynote_request", //固定写
        "path" => "/home/www/mynote/basic/runtime/logs/logs.txt"
    ]
];

设置logviewer配置文件:

cd logviewer
cp logs_tmpl.php logs.php
vim logs.php
<?php
// 复制此文件到logs.php进行配置,eg:

//日志的路径(可以是文件路径或目录路径)
$paths = [
    '/home/www/mynote/basic/runtime/logs/app.log',
    '/usr/local/mariadb/logs/general_log.log',
    '/home/www/mynote/basic/runtime/logs/logs.txt',
    '/home/www/mynote/basic/runtime/seaslog/api',
    '/home/www/mynote/basic/runtime/seaslog/shell',
    '/home/www/mynote/basic/runtime/seaslog/default',
];

//每次读取的长度(注释掉后,默认为 500000)
$read_size = 50000;

服务器nginx配置方面

进入nginx配置目录vhost

vim /usr/local/nginx/conf/vhost/additional_item_82.conf
 server {
    charset utf-8;
    client_max_body_size 128M;
    listen 82;
    server_name [域名];

    include enable-php.conf;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    root   /home/www/additional_item;
    index  index.php index.html;

    location / {
        # auth_basic "请输入用户名和密码";
        # auth_basic_user_file /usr/local/nginx/passwd.db;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime off;
        charset utf-8,gbk;
    }

    access_log  /home/wwwlogs/additional_item.log;
    error_log   /home/wwwlogs/additional_item.error.log;
}

  • 重启服务
lnmp reload
  • 部分日志权限设置
chmod -R 777 /home/www/mynote/basic/runtime/logs/app.log
chmod -R 777 /usr/local/mariadb/logs/general_log.log
chmod -R 777 /home/www/mynote/basic/runtime/logs/logs.txt

部署后台fastadmin项目

项目地址:git@git.uninote.com.cn:eson/fastadmin.git

项目克隆

su www
cd /home/www
git clone git@git.uninote.com.cn:eson/fastadmin.git

配置nginx服务

vim /usr/local/nginx/conf/vhost/fastadmin_444.conf
server {
    charset utf-8;
    client_max_body_size 128M;
    listen 444;
    server_name [域名];

    index   index.php index.html;
    set     $root    /home/www/fastadmin/public;

    location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
    {
        root $root;
    }

    location / {
        root    $root;
        index    index.html index.php;
        if ( -f $request_filename) {
            break;
        }
        if ( !-e $request_filename) {
            rewrite ^(.*)$ /index.php/$1 last;
            break;
        }
    }

    location ~ .+\.php($|/) {
        fastcgi_pass    unix:/tmp/php-cgi.sock;
        fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
        fastcgi_param   PATH_INFO          $fastcgi_path_info;
        fastcgi_param   PATH_TRANSLATED    $document_root$fastcgi_path_info;
        fastcgi_param   SCRIPT_FILENAME    $root$fastcgi_script_name;
        include         fastcgi_params;
    }

    access_log  /home/wwwlogs/fastadmin.log;
    error_log   /home/wwwlogs/fastadmin.error.log;
}

  • 记得重启服务
lnmp reload

执行初始化脚本

su www
cd /home/www/fastadmin
./init.sh

从浏览器打开配置安装项目:

如图安装图例: fastadmin 安装图例

成功进入后台之后打开命令行执行curd.sh脚本:

温馨提示:需要把mynote项目中sql更新为最新。

su www
cd /home/www/fastadmin
./curd.sh

注意:

  • fastadmin项目依赖于mynote项目下config/local_api.php文件,如果此文件不存在,则无法进入登录页面[ error ] [8]未定义变量: api_arr_tmp
  • web页面中安装时,数据库名必须为mynote

最后开启同步art_workman服务

su www
cd /home/www/mynote/art_workam
php start.php start -d

打开浏览器查看项目部署完毕!

更换mynote接口api配置说明

项目web_mynote协作说明

点赞(0) 阅读(13) 举报
目录
标题