测试用的域名

新申请的域名,webexample.win,看名字就知道是做例子使用的,目前还没有什么内容,暂时就是把 SSL 设置成最严的那种。

ssllab-rating-100.jpg

将来,可能这个域名就是持续在做各种测试使用。

因为这个域名的价格是非常低的,也就 $1,89 每年,续费也是这个价格,转入也是。既然这么低廉,用来做测试当然是最好了。

阅读全文

MariaDB 连不上的问题

在前文介绍 MariaDB 数据库的安装中,有用了 mysql_secure_installation 命令,给 root 用户加上密码,看上去一切都很正常,在 Webmin 控制面板中也能很正常的操作。
但是在安装 phpBB 3 的论坛程序时,发现始终连不上 MariaDB 服务器,也没有找到错误信息的地方,不过我记得在我第一次在虚拟机里试装 Ubuntu 18.04 RC 版本的时候,曾经有过数据库 root 密码设置不生效的情况,当时是有错误信息的,也是连不上。

具体解决办法就是重新设置 root 用户密码。


sudo service mariadb stop
mysqld_safe --skip-grant-tables &
mysql -uroot

上面的步骤是关掉 MariaDB,忽略用户认证,并用 root 用户连上。 然后在 mysql 终端里,选择使用 mysql 管理库:

use mysql;

重置 root 密码为 mypassword (用真实密码代替)。

update user set password=PASSWORD("mypassword") where User='root';

下面一步是重写用户认证方式,如果是 unix_socket 方式也好,都会被普通的用户名密码方式所代替。

update user set plugin="mysql_native_password";

最后退出 mysql 控制台。

quit;

以上都做好之后,就需要关掉重启 mysql 服务器。


sudo service mariadb stop
sudo service mariadb start
阅读全文

MovableType 7 安装错误: Specified key was too long

在尝试安装 MovableType 7 的时候,一路顺利,到最后初始化数据库的时候,出现了一个错误。

Error during installation: failed to execute statement ALTER TABLE mt_ts_funcmap ADD CONSTRAINT mt_ts_funcmap_funcname UNIQUE (ts_funcmap_funcname): Specified key was too long; max key length is 767 bytes at lib/MT/Upgrade.pm line 839, line 1662.

mt7-install-error.jpg

如何修复这个错误?

简单而言就是修改数据库的 collection 参数。

MariaDB 10.1 的默认安装后,其数据库的默认 collection 是 utf8mb4_general_ci,偶尔在某些系统安装时会出现上面的错误情况。

最方便的办法,就是在安装 MovableType 7 之前,在添加数据库后,先把数据库的 collection 修改成 utf8_general_ci,修改的方法,有手工的,有使用 phpmyadmin,都可以。

如果你在网上搜索,Specified key was too long; max key length is 767 bytes,有很多种解释和所谓解决方法。比如 innodb_file_format,innodb_file_per_table,row_format, innodb_large_prefix 各种参数修改。对于 MovableType 7 的安装来说,都没有效果,唯有上面修改 collection 才是真正解决的方法。

阅读全文

安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS.

第五部分

在修改 nginx 配置文件使其满足证书使用之前,先执行下面的命令,生成一个 4096 位的 dhparam 文件。

cd /etc/nginx/ssl
sudo openssl dhparam -out dhparam.pem 4096

这个命令会执行很长时间,耐心一点,喝口茶。

配置 https 主机

先来确认一下版本信息,因为下面要用到。


davidyin@localhost:/etc/nginx/ssl$ cd
davidyin@localhost:~$ nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
davidyin@localhost:~$ openssl version
OpenSSL 1.1.0g  2 Nov 2017
davidyin@localhost:~$

配置参数的来源根据 Mozilla SSL Configuration Generator 这个生成器来产生。

mozilla-ssl-generator.jpg

我会建议使用 Modern 方式的配置。

主机配置文件做相应的修改,http 网站重定向到 https。采用 http2,还有就是 HSTS 预载入配置。最后完整的 webexample.conf 配置文件可以到 gist 查看,也可以本地下载 webexample.conf.txt

修改完毕,重启 nginx 服务器。并且到 HSTS Preload 检查。

hsts-repload.jpg网站只要没有特殊的原因无法对所有子域名设置 https,一般都是会加入这个 HSTS 预载入计划。加入此 预载入计划的域名,哪怕是用户头一次访问该网站,都会直接使用 https 访问。

到 SSL Labs 检测 SSL 评分。得分是达到了 A+。

ssllab-rating-a.jpg

阅读全文

安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS。

第四部分

前面介绍了 VPS 的选择,Ubuntu 18.04 LTS 的安装,Webmin 控制面板的安装,以及 Nginx Web 服务器,MariaDB数据库服务器的安装。下面我们来进一步的介绍对于 php 和 perl 语言的支持。

安装 php 7.2-fpm

Ubuntu 18.04 的官方仓库内置了 php 7.2.5,所以直接安装就是了,无需再添加 php 的官方库。

sudo apt install -y php7.2 php7.2-fpm php7.2-cli php7.2-common php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-mysql php7.2-zip php7.2-json php7.2-curl

同之前的 php 7.1 版相比,mcrypt 被移除了。

为什么 mcrypt 被废弃了?

根据官方文档,mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。

而有些旧的加密解密算法,OpenSSL 不支持,那就需要安装 PECL 中的 mcrypt了。

安装完成后,执行 php -v 命令,看到的版本信息如下。

php-version.jpg

可以执行以下命令,查看 php7.2-fpm 是否已经运行。

sudo service php7.2-fpm status

php7.2-fpm-status.jpg

阅读全文

安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS。

第三部分

之前介绍了 Ubuntu 的安装,Webmin 的安装,以及简单的 SSH 安全设置。很多人会用证书登入,禁止 root 登入等等,都很好,选择你自己合适的就好。 接下来先以之前新添加的用户来以SSH方式登入 VPS 服务器终端。

安装 Nginx Web 服务器

Ubuntu 18.04 已经内置了最新的 Nginx 稳定版的仓库。所以无需再用之前的添加 Nginx 官方仓库的方式来安装了。当前最新的版本是 1.14.0。

直接输入下面的命令。

sudo apt install nginx

此时,在浏览器中直接输入 IP 地址,就可以看到下面的默认网页了。

nginx-welcome.jpg安装 MariaDB 数据库服务器

接下来安装 MariaDB 关系数据库服务器,它是 MySQL 的一个替代产品,两年前,一直用的是 MySQL 服务器的,最近的几年,用 MariaDB 多了。

为什么选择 MariaDB,而不是 MySQL?

算是我个人的喜好吧,也因为 MySQL 在甲骨文手中,并不是太过放心,担心其闭源。

而 MariaDB 是由原 MySQL 创始人和社区从 MySQL 分支而来,命令和 API 同 MySQL 保持一致,实际使用上并没有不便。

MariaDB 是免费,开源的软件。


Ubuntu 18.04 软件仓库内置的 MariaDB 版本是10.1 版。是 MariaDB 的多个稳定版之一。

sudo apt install mariadb-server

安装过程没有什么提示,完成后,输入

sudo mysql_secure_installation

mysql-secure-pass.jpg

阅读全文

安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS上。

第二部分

上一篇,已经在 Linode 后台创建了新的 VPS,并完成了最基本的 Ubuntu 18.04 LTS系统安装,接下来 DavidYin来介绍一下安装 Webmin 以及 SSH 的安全设置。

为什么要用 Webmin?

有几个简单的解释,当然也是对于图形界面的依赖,第一在 Webmin 管理面板,可以很方便的更新系统,安装 perl 包,添加 MySQL 数据库;第二,在出现错误的时候,查看 log 日志,还有很多很多其它功能。

putty 是我用的最多的 SSH 工具。先用 putty 连上 VPS,IP地址可以在 Linode后台看到,用户名就是 root,密码就是之前设置的那个。

putty-vps.jpg乍一看,是最新的,没有软件包需要更新,实际上,执行 sudo apt update 命令后,会显示还有23个软件包需要更新,输入 sudo apt upgrade 完成升级更新。

安装 Webmin

参考 Webmin 官网的安装步骤。

三个步骤,先安装必要的开发所用软件包,然后下载 webmin 安装包,最后执行安装命令。在我安装的时候,最新的 webmin 版本是 1.881。

apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python 
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.881_all.deb 
dpkg --install webmin_1.881_all.deb

webmin1881-install.jpg 这样就安装完成了,在桌面浏览器中输入下面的样子的网址来访问我的 VPS 的 Webmin 控制面板了。

https://45.33.52.122:10000

这个IP地址只是用来举例方便,并无实际使用。

会出现 "Your connection is not private" 的警告提示,因为这是自签的证书所出现的正常现象。点击继续就可以了。
webmin-proceed.jpg

阅读全文

安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS上。因为目前本站就放在了 Linode 上。

第一部分

自三年前写了《安装Nginx, MySQL, PHP-FPM, Perl-Fastcgi到Ubuntu 14.04 LTS》,去年写了 《安装 Ubuntu 16.04, Webmin, Nginx, MariaDB, PHP7.1-FPM,Perl-Fastcgi 到 Vultr.com 的 VPS》,现在最新的 Ubuntu 18.04 也已经发布一个多月了。所以,DavidYin来介绍一下新的服务器安装过程。
包含的软件如下:

Ubuntu 18.04 LTS
Webmin 1.881
Mariadb 10.1
Nginx 1.14.0
php7.2-FPM
Perl Fastcgi
SSL
HTTP2
Let's Encrypt

安装的整过过程只是体现了我个人的经验,不含任何保证,用者自己负责。

首先,我这里使用的是 Linode 的 VPS,最新的价格计划中的 Nanode ,25GB SSD, 1CPU,1GB 内存,1TB 月流量,每月只要 5美元,可以算是最低的价格之一了,但是稳定性是目前相当好的。

Linode VPS 的选择与安装

登录 Linode 后台,选择 Nanode 1GB 计划并且选择机房位置,点击 "Add this Linode!"按钮。

select-linode-datacenter.jpg之后就可以看到刚刚生成的 VPS。

机房的选择:

通常认为位于美国西岸的 Fremont 机房对于大陆用户会比较友好,可也有用户觉得在东京的机房 Tokyo2 更好,网上也有很多测试的文章,有的测了延迟测试,有的是丢包率,各有高低。我想这里可能不同时间的测试结果都会不同,但选这两个之一总是可以的。

我这里选择了 Fremont 机房。

linode-just-created.jpg点击这个刚生成的 linode8192377,后者后面的 Dashboard链接,进入管理台面,做进一步的设置。

created-dashboard.jpg可以看到是空空的,什么都没有,接下来我是先到 Settings 里面,把Linode Label 改了,比如我会用一个水果名字来命名。

change-name.jpg我改成了 orange,然后保存设置。接下来是 Rebuild,就是安装系统了。之前的步骤只是选择了资源,现在才是要选择 Ubuntu 系统的地方。点击 Rebuild 链接。在Image下拉菜单中有十几种系统可以选择,包括 Debian 9,CentOs,Ubuntu等等,当然我这里选择的是 Ubuntu 18.04 LTS,Swap Disk 选择最大的 512MB,磁盘空间不需要改,它默认是使用 25GB 减掉 Swap Disk 所占用的空间大小。再输入用户 Root 的密码,建议选择一个复杂程度高的密码,比如至少10位,包括大小写和数字以及至少一个特殊字符。都输入完成后,点击 Rebuild按钮。

rebuild-ubuntu-18.04.jpg接下来要等待几分钟,通常也就是不到两分钟,就完成了。目前还是关机状态,我在开机前,还建议做一个小调整。

rebuild-finished.jpg

阅读全文

MovableType 7 发布

之前已经介绍过了,MovableType 7 的 Beta 版本和 RC 版本,那么正式版怎样呢?其实在五月十六日就已经发布了,在其日文官网上可以看到。

MovableType 7 的授权方式

普通授权

这是给任何非个人 Blog 的用户使用的。其中有几个小的版本差别。

MovableType Cloud version,通常按月收费,每月日元五千,相当于美元四十五。这是包括主机等,一整套方案的计划。

MovableType Software version,就是只购买软件授权,相当于九万日元一年。

还有 workflow pack 以及维护收费,如果用户需要,也是可以选购的。

还有一种是在 Amazon 的 AWS 上,可以直接使用 AMI 版本,在 AWS 市场中购买,并且用于 EC2 服务器上,按小时收费的。

提供的解决方案有 MovableType advanced,用于大型商业数据库,比如 Oracle, Microsoft SQL server。

教育折扣

这个折扣是给学校和教育组织的。包括幼儿园,小学,初中,高中,大专院校,或者教育局之类的教育管理部门。

价格大约是普通授权的八折。

开发者授权

用于开发插件,模版,操作验证等等的开发者,必须有授权码。

个人免费授权

这当然是对于个人 Blogger 来说最重要的,必须是个人使用,写个人日志类的内容。

阅读全文

Google Maps 到 Google Maps Platform 的变化

Google 发布的一个新的产品通知,故事梗概就是说,他们宣布一个重要的改变,包括产品名字,也改为了 Google Maps Platform,一个简化的产品架构,按用量付费的方式。从六月十一日开始,新价格生效,并对所有的用户提供支持,当然还是有免费额度,所有的开发者获得每月相当于200美元的核心产品使用额度。
开发者需要做的有一点,就是要启用账单并连接到你的 Google Maps Platform 项目。
google-maps-platform-email.jpg现在输入 https://cloud.google.com/maps-platform/,看到的首页是这个样子的。

google-maps-platform-frontpage.jpg挺漂亮的。因为是现有用户,可以使用他的Transition tool 来合并或者迁移,也就是连接账户。

transition-tool.jpg选择工具,并同意之后,会出现把现有项目加入到账单中的按钮。

add-billing.jpg

阅读全文
全部文章归档