「记录」博客重生记——Ubuntu 18.04安装LNMP+phpmyadmin

  因为各种客观+主观的原因(chrome恶心的安全措施、长期没有对服务器系统进行升级、脑子被门夹了非要上https、海森堡编辑器全是bug、研二全是事情等等),我做了各种令人窒息的操作,导致我的站点和博客彻底凉凉。为了完成曾老师的作业,也为了能好好做记录,我终于下定决心把整个站点重建一遍。

  其实最早只是想着从ubuntu16迁移到18,结果玩脱了。不过既然都上18了,再退到16岂不是坑都白踩了,而且16也不一定能活多久,干脆一步到位。

  这次记录除了包括在ubuntu18上部署lnmp、phpmyadmin以外,还会有https站点迁移的内容,读者请各取所需。

首先安装 lnmp

下面给一个配置文件样本,是一个很早的原始版本,仅供测试参考

有了简单配置之后可以测试下nginx和php了,一定先测试后迁移,因为在迁移过程中涉及的步骤和环节很多,而且中间几乎无法测试,一旦前期有问题最后都没法定位错误!

使用php探针测试会发现页面显示白页,nginx日志无问题,这是一个bug,解决方法如下

测试通过之后就可以开始迁移了,但是建议先把phpmyadmin装了,这样可以先配置数据库

终于可以开始迁移服务器了

完成数据库迁移之后,就是最关键的部分了,之后的步骤中间几乎完全不能调试

  1. 将整站数据上传至相应的服务器目录
  2. 修改目录属主和权限
  3. 将原服务器的nginx配置文件替换掉新服务器nginx的配置文件
  4. 修改新服务器nginx服务器文件,使得其中一些小条目符合新服务器配置
  5. 将ssl证书配置到相应目录
  6. 重启nginx
  7. 进入wordpress目录修改wp-config.php中的数据库连接信息
  8. 修改dns解析地址到新服务器
  9. 通过url访问页面测试

如果一切正常,恭喜你完成了全部步骤!

「记录」在Ubuntu Server 1604上部署SOCKS5服务器dante-server

因为某些原因,我需要部署一台代理服务器,之前配置了http缓存代理,但是有些网站访问异常,而且有些软件不支持http代理,所以萌生了部署SOCKS5服务。

1、安装 dante-server

2、配置
备份配置文件

查找以下关键行进行修改

创建日志文件夹,并重启服务

Ubuntu 1604 安装nginx+php7+mysql+phpmyadmin环境

1. 安装 nginx 最新版本,使用以下命令:

2. 安装 php7 :(不要尝试直接apt-get install php7,这样会默认安装apache,ubuntu 16默认不能安装php5)

3. 安装 MySQL 数据库:

4. nginx管理操作

大括弧里是可选的操作,选一个,外面不需要加大括弧

5. 配置nginx

配置文件样本:

重启nginx:

6. 安装phpMyAdmin

「记录」树莓派raspbian-stretch系统安装LNMP环境 & 解决无法安装php5-mysql的问题

为了能让实验室的路由器一直保持登陆状态,但又不想使用非官方固件,因为非官方固件都不够稳定,所以买了一个树莓派 zero-w。
本着新硬件就要用新系统的想法,刷了官方才出了不到一个月的系统:2017-09-07-raspbian-stretch,然后在安装LNMP环境的过程中遇到很多奇怪的问题,在这里记录一下。

先插一个zero-w的网络配置过程,虽然不是什么大问题,但是着实坑了我很久。
正常刷好系统后,用电脑在/boot分区的根目录创建名为“wpa_supplicant.conf”的文本文件,内容为:

注意:WiFi名称不能包含“_”,就是下划线,因为有些情况下下划线和空格会混淆。WiFi加密模式只能为“WPA-PSK [TKIP]”,因为wpa不支持AES加密。
然后在/boot分区的根目录创建名为“ssh”的空目录,这样就会自动打开ssh服务。

配置好网络后,开始换源。

阿里云
Raspbian http://mirrors.aliyun.com/raspbian/raspbian/

清华大学
Raspbian http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

文件内容如下:

保存

配置LNMP环境

先上干货:

如果直接按照通常步骤直接安装php5-mysql,会提示如下错误:

为了解决这个问题,我参考了「libmysqlclient18 has no installation candidate」。
尝试手动下载并安装packages.debian.org提供的libmysqlclient18包,libmysqlclient18_5.5.57-0+deb8u1_armhf.deb,文件sha1:16237a52a6c3b945c30a8fdf401816277d7f2436。
手动安装libmysqlclient18后,可以成功安装php5-mysql。但是apt-get在安装完,重启php5-fpm的时候会出现以下错误:

尝试多次后,我发现之前参考的讨论里有人说使用archive.raspbian.org官方的libmysqlclient18包,于是进行尝试,并获得成功。
包下载地址:libmysqlclient18,sha1:a5f6877e856a58efbf9046f8db752646895b137b。

「记录」解决Ubuntu 16.04无法安装php5的问题

在Ubuntu 16.04 中默认无法安装php5,只能安装php7,直接用如下命令

会提示

按照这个文章中给出的解决方法,执行以下指令

通过基于ipv6的shadowsocks服务绕过校内ip网络限速

之前校内网一直没有限速,搭配千兆内网用着超级爽,下载就算跑不满千兆也能有20-30Mbps的水平。

但是因为最近校内无线网硬件升级,流量暴增,学校对校内网的每一个ip做了总入口流量限制,限速5Mbps!也就意味着每一个校内ip,只要是校外获取的流量,就会被限速。虽然没有限制校内流量的网速,但是校内的ftp资源站因为一些技术原因暂时不能用,而且校内ftp资源站也没有什么我喜欢的资源。因此,这个新的限速机制让经常需要下载美剧和电影的我十分恼火。

为了能随时有最新的剧看,也为了加速校内下载速度,就在自己的下载机安装了磁力分流软件。使用过程中我希望限制分流软件ipv4的上传速度,只对接入教育v6的用户做分流,在寻找限速软件的过程中,我意外的发现了这个文章「使用shadowsocks,搭建ipv6 VPN,让ipv4上ipv6,下载速度提升到100M」,于是欣喜的进行了配置,并成功绕过了限速!

把配置过程整理一下,分享出来。

首先我已经有了带公网ipv6地址的DO服务器,且这个服务器已经配置过基于ipv4的shadowsocks服务,我的这篇博文有介绍过「在ubuntu server上安装配置shadowsocks服务」,就不再重复了。

1、测试ipv6网络环境,在本地ping服务器的ipv6地址,保证本地到服务器的ipv6网络通畅。

2、更改服务器shadowsocks配置文件”/etc/shadowsocks.json”,内容为:

重点是这行

改成这样服务器的shadowsocks服务就同时支持ipv4和ipv6了,改好后重启shadowsocks服务。

3、更改本地shadowsocks客户端的服务器配置,在ip栏填入服务器的ipv6地址,测试连接是否正常。

迅雷加速:

保证shadowsocks客户端的本地端口正常

在迅雷的“系统设置-高级设置-代理设置”中添加本地代理

代理名称随便填,服务器填写127.0.0.1,端口填写shadowsocks客户端本地端口,类型选择Socks5;然后点击测试,测试成功点击确定。

我的DO服务器是新加坡节点的,实测把迅雷全部流量都走代理一切正常,效果如下。

K9C)9}4W$QSRV%`YW0}ZRGV

在ubuntu server上安装配置shadowsocks服务

新建配置文件/etc/shadowsocks.json,内容为:

server, server_port, password 需要自行根据自己的实际情况修改。

把这条命令放到这个文件下:/etc/rc.local,这样就能开机自动运行了。

「记录」ubuntu搭建python开发环境

Ubuntu 14.04 换阿里云源

阿里云源列表

Ubuntu Server使用命令行版VPN客户端

为了能在外网玩上内网的MC服,朱总和我在腾讯云的学生优惠服务器上部署了一个VPN,想通过让内网MC服务器和客户端同时登录一个外网VPN的方式,曲线实现MC服务器和客户端处在同一局域网。

这样就涉及到让ubuntu server连接VPN的问题。

需要连接VPN的服务器是一台Ubuntu 14.04.3 LTS,使用pptp-linux软件连接VPN。

首先是安装软件包

确认已经安装好后,根据帮助使用pptpsetup建立VPN连接。

例如:

看到如下提示,表明连接成功。

 

ubuntu 1404 下安装 nginx+php5+mysql+phpmyadmin

1. 使用官方PPA安装 Nginx 最新版本,使用以下命令:

2. 安装 PHP:(不要尝试直接apt-get install php5,这样会默认安装apache)

3. 安装 MySQL 数据库:

4. nginx管理操作

5. 配置nginx

配置文件样本:

重启nginx:

6. 安装phpMyAdmin

参考资料:https://idefs.com/record-under-ubuntu-nginx-php5-mysql.html

Linux下批量替换文件名中的部分字段

从网上下载了一批旧的影视剧资源,命名倒是挺规范,但是不和我的胃口,想要重新命名。

但是不能用简单的批量重命名,因为原文件名里包含一个集名的字段,这个字段一定是不同的。如果用批量重命名,会导致这个字段消失,然而我想保留它,于是想批量替换掉我不想要的字段。

Mac上用brew安装了rename,默认安装的是Perl 语言版本。

命令格式:rename ‘s/原字符串/新字符串/’ 文件名

字符串支持正则,要注意字符元的使用和转义。

同时,原字符串只会在一个文件名中匹配一次,例如:

[舌尖上的中国][01][高清版][HR-HDTV].mp4

执行:rename ‘s/\]\[/./’

[舌尖上的中国.01][高清版][HR-HDTV].mp4

 

SSH攻击的检测与预防

经朋友提醒,意识到自己的服务器可能被SSH攻击,于是赶紧查了日志。

结果是:

10409 91.234.184.21
  3412 Failed
  1771 43.229.53.67
  1125 182.100.67.59
    270 218.87.109.253
    250 158.85.76.188
    233 27.191.209.88
    153 120.26.71.98
    148 218.65.30.92
    107 115.238.81.90
      70 222.186.21.100
      31 202.38.193.142
      27 218.98.39.43
      20 121.40.158.23
      18 218.5.9.226
      17 218.28.152.162
      15 222.186.21.71
      14 123.59.55.83
      13 119.167.156.38
      12 27.254.67.157
      12 103.6.223.61
      11 201.166.63.25
      11 119.163.120.202
      10 193.189.117.120
      10 107.150.19.184
        9 210.107.37.81
        9 202.99.207.123
        8 203.94.70.125
        8 180.210.201.106
        6 31.184.195.111
        6 187.62.210.26

这是要死的节奏啊,果然被试密码,仔细检查了日志,好在还没被破解,但是这样的事情很让人心烦!于是决定做一些预防措施。

换端口号,并禁止root登陆

测试不会冲突后修改

找到

Port 22

修改为自己想要的端口,找到

PermitRootLogin yes

改为 no 。

WordPress无法发送邮件问题的解决过程

前两天忘记了wordpress的后台密码,找回的过程中给出如下提示:

无法发送电子邮件。

可能原因:您的主机禁用了mail()函数。

后来发现注册的时候密码邮件发送也是不成功的,就寻思找个时间解决这个问题。

国庆假期刚好抽空研究,结果让我很惊讶,于是记录下来。

 

首先是wp提示禁用了mail()函数,但是之前在配置wecenter的时候已经把邮件发送调通了,一切正常。

但是毕竟提示了,那就测试一下吧。网上搜索,用个探针进行测试。

测试完全没有问题。然后又研究半天还是没找到头绪,决定彻底测试一下,确认不是mail()函数的问题,于是用了第二个探针。

这次发现个问题,网页显示发送完成,但是邮箱却收不到,看来是mail()函数运行中出了问题。

于是去找日志,结果发现根本没有日志,既找不到日志文件,又无法在系统日志中找到。不会是没装邮件程序吧,不应该啊,毕竟wecenter邮件好好的啊!还是检查下比较好。

返回

果然是没装!!!

So,直接安装好了。

 

树莓派更换软件源

1. 对原sources.list文件做备份

2. 修改sources.list

3. 更新软件列表

在R6300v2上安装Tomato固件并配置python环境

安装Optware
初始化JFFS分区:
192.168.1.1 > 系统管理 > JFFS > 启用 > 格式化
挂载/opt:

设定开机自动挂载
运行安装脚本:

安装软件包

终端不支持xterm-256color

在R6300v2的Tomato固件中使用nano和screen时出现不支持xterm-256color的情况,错误提示如下:
nano error: Error opening terminal: xterm-256color
screen error: Cannot find termcap entry for ‘xterm-256color’.
解决方案:
Quick fix: run TERM=xterm screen instead of screen.
参考资料:

WordPress因权限不足无法创建目录导致的一系列问题解决方案

wordpress有时候会出现以下错误提示:
无法建立目录wp-content/uploads/***。有没有上级目录的写权限?

错误原因:
wordpress目录属主错误

解决方法:
将整个wordpress目录属主改为www-data

代码: