分类目录归档:建站相关

Linux下重置MySQL root密码

一、手动修改

  1. 停止MySQL服务
    执行:/etc/init.d/mysql stop,你的机器上也不一定/etc/init.d/mysql也可能是/etc/init.d/mysqld

  2. 跳过验证启动MySQL
    /usr/local/mysql/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
    注:如果mysqld_safe的位置如果和上面不一样需要修改成你的,如果不清楚可以用find命令查找。

  3. 重置密码
    等一会儿,然后执行:/usr/local/mysql/bin/mysql -u root mysql
    出现mysql提示符后输入:update user set password = Password('要设置的密码') where User = 'root';
    回车后执行:flush privileges; 刷新MySQL系统权限相关的表。再执行:exit; 退出。

  4. 重启MySQL
    杀死MySQL进程:killall mysqld
    重启MySQL:/etc/init.d/mysql start

二、使用重置脚本

wget http://soft.vpser.net/lnmp/ext/reset_mysql_root_password.sh;sh reset_mysql_root_password.sh

适合lnmp或MySQL管理脚本在/etc/init.d/mysql 且mysql安装在/usr/local/mysql/的。否则需要修改脚本后再执行sh reset_mysql_root_password.sh。

参考

Linux 下重置Mysql root密码

Shadowsocks 相关

前言

乙亥猪年第一天,发现SSR的IP好像被封了,VPS的IP可以ping通,也可以用SSH连接上。但是使用SSR提示ERR_SOCKS_CONNECTION_FAILED,而且使用IP查询,也无法获得有效的翻墙IP。

所以将Vultr上的VPS,take snapshot,并在sydney选了一个$3.5/mo的进行了restore。

目前使用的安装脚本是 秋水逸冰 大神的 Shadowsocks 一键安装脚本(四合一)

包含一键安装 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四选一)服务端。
支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同)。

安装方法

使用root用户登录,运行以下代码

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

安装完成后,提示

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://your_encryption_method:your_password@your_server_ip:your_server_port
Your QR Code has been saved as a PNG file path:
 your_path.png

Welcome to visit:https://teddysun.com/486.html
Enjoy it!

卸载方法

若已安装多个版本,则卸载时也需多次运行(每次卸载一种);

./shadowsocks-all.sh uninstall

使用方法

分别对应各版本:启动,停止,重启,查看状态。

/etc/init.d/shadowsocks-python start | stop | restart | status

/etc/init.d/shadowsocks-r start | stop | restart | status

/etc/init.d/shadowsocks-go start | stop | restart | status

/etc/init.d/shadowsocks-libev start | stop | restart | status

各版本默认配置文件的位置

/etc/shadowsocks-python/config.json

/etc/shadowsocks-r/config.json

/etc/shadowsocks-go/config.json

/etc/shadowsocks-libev/config.json

开启多端口的方法

python版、R版和Go版,分别修改对应默认配置文件,并重启即可。
配置文件示例如下:

#python版
{
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "fast_open": false
}

R版
{
    "server":"0.0.0.0",
    "server_ipv6": "[::]",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "9000":"password0",
        "9001":"password1",
        "9002":"password2",
        "9003":"password3",
        "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "protocol": "your_protocol",
    "protocol_param": "",
    "obfs": "your_obfs",
    "obfs_param": "",
    "redirect": "",
    "dns_ipv6": false,
    "fast_open": false,
    "workers": 1
}

Go版
{
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "method":"your_encryption_method",
    "timeout":300
}

libev版开启多端口的步骤如下:
1. 下载脚本并赋予权限

wget -O /etc/init.d/shadowsocks-manager https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-manager
chmod 755 /etc/init.d/shadowsocks-manager
  1. 新建配置存放目录
mkdir /etc/shadowsocks-manager
  1. 创建多端口配置文件 /etc/shadowsocks-manager/config.json 示例
{
    "server":"0.0.0.0",
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "user":"nobody",
    "method":"your_encryption_method",
    "nameserver":"8.8.8.8",
    "mode":"tcp_and_udp"
}

其他

以前用过一个带有多用户管理的SSR脚本感觉很好,换了VPS后,提示安装不成功。脚本来自都比根据地(doubi.io),可以最近主站上不去了,站长也不见了。

找到了几个粉丝做的备份:
1. 逗比云
2. 逗比根据地backup

参考:

  1. Shadowsocks 一键安装脚本(四合一)
  2. 如何启用 Shadowsocks 的多端口
  3. 自建ss服务器教程 Alvin9999

Typecho免插件实现文章浏览次数统计

Typecho免插件实现文章浏览次数统计

转载声明:Typecho免插件实现文章浏览次数统计(Cookie Enabled)

感谢 Ryan 提供的实现方法

具体步骤:

  1. functions.php 里添加
/*
 * 获取浏览次数(改进版)
 */
function getViewsStr($widget, $format = "{views} 次浏览") {
    $fields = unserialize($widget->fields);
    if (array_key_exists('views', $fields))
        $views = (!empty($fields['views'])) ? intval($fields['views']) : 0;
    else
        $views = 0;

    //增加浏览次数
    if ($widget->is('single')) {
        $vieweds = Typecho_Cookie::get('contents_viewed');
        if (empty($vieweds))
            $vieweds = array();
        else
            $vieweds = explode(',', $vieweds);
        if (!in_array($widget->cid, $vieweds)) {
            $views = $views + 1;
            $widget->setField('views', 'str', strval($views), $widget->cid);
            $vieweds[] = $widget->cid;
            $vieweds = implode(',', $vieweds);
            Typecho_Cookie::set("contents_viewed",$vieweds);
        }
    }
    return str_replace("{views}", $views, $format);
}
  1. index.phppost.php 需要显示文章统计次数的地方,添加
<?php _e(getViewsStr($this)); /* $this 是 Widget_Archive 对象 */ ?>

输出统计次数。


转载声明:Typecho免插件实现文章浏览次数统计(Cookie Enabled)

为本站添加了SSL证书

使用浏览器时,您与此网站之间建立的连接不安全 的提醒很碍眼,所以今天为本站添加了SSL证书,启用 https://


申请SSL证书

在阿里云的 云盾证书服务(包年),免费的SLL证书,要先点击Symantec一个域名,就会出现 免费型DV SSL 的选项,然后就可以0元购买。

有两种域名验证方式

  1. DNS验证方式
  2. 文件验证方式

通过验证就申请成功了。然后在证书控制台,下载并安装证书。

下载.pem.key 文件,然后上传到服务器,知道路径就行。


安装SSL证书

这部分,主要是Nginx的操作。虽然使用LNMP一键安装包安装LNMP,但没有使用 lnmp ssl add 添加证书。

我的操作是,修改/usr/local/nginx/conf/vhost 路径下相应站点的 .conf 文件。

server
    {
        listen 80;
        #listen [::]:80;
        server_name blog.francis67.cc francis67.cc;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/blog.francis67.cc;

        #SSL配置从这里新增
        listen 443;
        ssl on;
        ssl_certificate   /usr/local/nginx/conf/vhost/cert/xxx.pem;
        ssl_certificate_key  /usr/local/nginx/conf/vhost/cert/xxx.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        #SSL配置到这里结束

        include rewrite/other.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
         {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/y.log;
        }

重启Nginx服务 /etc/init.d/nginx restart

参考:

  1. [建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务
  2. LNMP下Nginx SSL配置的方法详解

typecho设置

  • 配置config.inc.php

文件位于typecho根目录,新增如下内容:

    /** 开启SSL */
    define('__TYPECHO_SECURE__',true);
  • 后台设置

后台管理—>基本设置—>站点地址,将 https://blog.francis67.cc 换成 https://blog.francis67.cc

  • 更换全站链接

使用phpMyadmin在SQL中中执行:

UPDATE typecho_contents SET TEXT = REPLACE( TEXT, 'http://www.opdev.me/', 'https://www.opdev.me/');

  • Chrome警告

找到站点主题目录下的comments.php文件,并搜索$this->commentUrl(),将其替换为:echo str_replace("http","https",$this->commentUrl()); 最后保存。

参考:

  1. Typecho全站启用HTTPS教程
  2. Typecho 全站启用SSL

强制全站https

此时httphttps应该都是可以访问的,如果想只使用https,我们可以我通过Ningx将80端口(HTTPS)重定向到443端口(HTTPS),强制全站HTTPS。

修改/usr/local/nginx/conf/vhost 路径下相应站点的 .conf 文件。

把前面的listen 80;注释掉,再添加一段

server
{
    listen 80;
    server_name blog.francis67.cc francis67.cc;
    rewrite ^(.*) https://blog.francis67.cc$1 permanent;
}

参考:

  1. Nginx强制https,HTTP 301重定向到HTTPS

目前有三张免费SSL证书,分别用在了blog.francis67.ccblog.francis67.ccfile.francis67.cc,都已经启用了https://

安装配置vim

检查是否已经安装过vim , 输入rpm -qa|grep vim

  • vim-common
  • vim-enhanced
  • vim-minimal
  • vim-filesystem

表示安装成功,有的centos系统,默认包名不同。

:如果缺少vim-enhanced这个包,执行:yum -y install vim-enhanced 命令,它会自动下载安装。

下载完后,yum -y install vim* 安装

配置方法:

新建 vim ~/.vimrc

编辑内容为:

set nu          "设置行号
set hlsearch        "查找字符串的反白设置值
set autoindent      "自动缩进set cindent
set ruler
set showmode        "显示左下角的状态栏
syntax on       "语法高亮
set smartindent     "为C程序提供自动缩进

"设置缩进为4个空格
set tabstop=4
set softtabstop=4
set shiftwidth=4

参考:

  1. Linux Centos下安装与设置Vim编辑器和基本配置

Typecho通过页面模板实现分类、归档标签页

通过独立页面的模板实现导航栏的分类和归档

步骤:

  1. 创建php文件,例 page-category.php, 但文件名不重要
  2. 编辑php内容如下,文章分类、文章归档、标签模板
  3. 上传php文件到 theme/default
  4. 进入typecho后台,创建独立页面,选择模板,ok
  • 文章分类

配置SSR、LNMP、Typecho、Kodexplorer

缘起

上一个ip 45.77.20.58实在是太卡了,SS的网页代理卡,SSH连接也卡,ping后发现延迟还行,但丢包严重。期间拿联通卡的手机开热点,下午有一段时间还行,晚上还是不行。

猜想可能的原因:

  1. vlutr的日本机房被ban了
  2. 电信网连接太慢

昨天在vultr上试了很久,试图找到一个还能用的日本ip,不过最终还是放弃了。目前使用的ip是104.207.158.14,位于西雅图,延迟200~300ms,相比之下真是如丝般流畅。


ShadowssocksR

使用逗比根据地的Toyo大佬的一键安装脚本,安装过程十分简单,多用户管理也方便这样分享给身边人用。

ssrmu.sh 脚本是单服务器多用户脚本,使用的是 SSR服务端的MudbJSON模式,可以给每个用户(端口)设置不同的加密方式/协议/混淆/限制速度/设备数限制/可用总流量等功能。即实现单服务器多用户流量管理等功能。

客户端下载:

  1. Windows C# 下载
  2. Android 下载

参考:

  1. 『原创』ShadowsocksR MudbJSON模式多用户一键脚本 支持流量限制等
  2. 两个值得关注Github项目 SSR project backupshadowsocksrr

LNMP

使用LNMP一键安装包配置了LNMP环境,耗时约30~40min

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。

使用 lnmp vhost add 创建了域名blog.francis67.cc,又在该域名下分别创建了两个二级域名。把typecho放在blog.francis67.cc下,而kodexplorer放在file.francis67.cc下。

原来的francis67.com下个月9.29到期,续费69有点贵,.cc的域名只要22,续费每年30。

给blog.francis67.cc和file.francis67.cc添加了解析。

遇到过的问题:

  1. 二级域名,网站文件夹目录配置,例:/home/wwwroot/www.xxx.com/blog
  2. .user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini
  3. 执行:lnmp vhost del 只是删除虚拟主机配置文件,网站文件并不会删除需要自己删除。

参考:

  1. LNMP添加、删除虚拟主机及伪静态使用教程

Typecho

把原来的wordpress博客换成了typecho,从体验上来说,wp更加方便不会编程的用户,而typecho比较简洁轻巧,但个性化需要一定的变成基础。

安装步骤:

  1. 在安装好LNMP的基础上,lnmp vhost add 添加了blog.francis67.cc,在部署网站时创建了数据库。(尚未添加SSL证书)
  2. 下载、解压 typecho 主体,可以直接在vps上下载,或者下载到本地通过FTP上传到vps,放在 对应网站的 文件夹下
  3. 然后通过浏览器进入,填入对应的数据库,和数据库对接就完成了

和wordpress类似,感觉实质上就是和数据库对接的文本管理,然后通过网络服务框架连接上互联网。

参考:

  1. 官方文档
  2. lnmp1.4安装及部署typecho或其它博客教程

Kodexplorer

文件管理方面还是使用了 Kodexolorer(芒果云),更像往在线操作系统的方向发展

Linux安装步骤

wget http://static.kodcloud.com/update/download/kodexplorer4.32.zip
unzip kodexplorer4.32.zip
chmod -Rf 777 ./*