部署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.conf
中server
字段 第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
- 下载
redismyadmin
到81
端口服务目录
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
端口,安装图例:
- 设置
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
建立test
仓库: 继续给仓库添加协作者: 右上角仓库设置 --> 管理协作者 --> 输入自己的管理员用户 --> 增加协作者 --> 设置管理权限 温馨提示:在服务器上使用www
用户组,执行仓库克隆和创建。(这一步骤是为了初次使用git的测试,以便为后面git使用顺利。) 图例演示:
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
项目
数据库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
项目
项目克隆
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
从浏览器打开配置安装项目:
如图安装图例:
成功进入后台之后打开命令行执行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