欧盟N26申卡

前言

谈及数字货币,会往往说起例如 Depay 或者 Nobepay 之类的。但是说实话这类信用卡基本都有一大堆硬伤:

  • 是国区人开的
  • 和 DeFi 交易密切相关
  • 开卡手续费高昂

上面任何一条单独拿出来就足够打消注册的必要,更何况 KYC 认证?在目前这个时间点(最好在疫情的时候就办妥)谨慎觉得对于开发者最好的选择可能确实就是 N26 银行的虚拟卡了。

N26 银行简介

以下由 ChatGPT3.5 书写:

N26 是一家德国数字银行,成立于 2013 年,总部位于柏林。N26 的核心业务是提供移动银行服务,为客户提供个人账户、支票账户和借记卡,支持移动支付和在线交易,并提供免费提现和汇款服务。该银行的应用程序支持多种语言和货币,允许客户在世界各地使用。截至 2021 年,N26 已经拥有超过 1000 万用户。N26 旨在通过数字化银行服务来改变传统银行业,为客户提供更加方便、快捷和安全的金融服务。

  • N26 Standard: 是最基本的产品,它提供了一张免费的 N26 借记卡。该账户的优点是没有月费和 ATM 取款费用,并且支持国际转账和汇款等功能。
  • N26 You: 是高级版本,每月收取 9.9 欧元的月费。它提供更多的保险和额外的特权,例如免费提供 5 次 ATM 取款,以及更多的免费提款机覆盖区域。
  • N26 Metal: 是最高级的版本,每月收取 16.9 欧元的月费。它提供了更高限额的取款和更多的额外特权,例如旅行保险和 24 小时优先客服等。

总体来说,N26 银行的产品注重简单易用、灵活、高效,并且提供了良好的数字化体验,旨在满足年轻用户和数字化客户的需求。

申请前准备

  • 护照
  • 一张美国的手机卡,可以是 Google Voice
  • 关于如何申请 Google Voice 号码:GV 申请全攻略
  • 可以听懂土耳其口音英语的能力和正常英语口语交流能力
  • 尽可能全程保持欧洲或者北美网络环境

申请流程

本章节内容大量参考了 YouhuiMa 先生所写的 N26 银行常见问题 2022 年版,但是由于时间有过去了大半年,有些内容有些许差异。

1. 首先打开 N26 官方网站

网站地址:N26.com。点击右上角的 Login,然后点击 Create a Account。

2. 开始填写基本注册信息

Nationality 这一栏强烈推荐选择德国 Germany。因为德国在认证的时候不需要你的手机开 GPS 定位,只要你会一点英语或者德语,他们的简单问题你都可以完成。申请德国账户通过率高,而且因为 N26 银行总部就在德国,德国的账户服务和各种功能都是最全最新的。

自 2022 年开始,申请者如果使用中国大陆的手机号注册,往往会不成功或者接受不到验证码。而美国和香港的手机号包括虚拟号都可以顺利接受验证码。

3.填写个人信息

所有信息必须真实有效。尤其是姓名一定要和你护照上一致(包括英文名)。

笔者因为疏忽第一次注册的时候填错了姓名,直接导致浪费了一个邮箱和一个手机。因为一旦完成注册,在做完所有的认证之前,是无法登入账号管理页面的,也因为无法通过人工以外的方式删除错误的账号,会导致手机号码直接被废掉。而一个手机只能绑定一个账号,这里一定要小心再小心。

4. 填写申请 N26 银行账户的个人住址信息

如果要申请西班牙或者意大利的 N26 账户,你需要在当地有一个居住地址,方便接受邮寄给你的银行卡。如果你仅申请普通免费账户,N26 是不会给你寄实体卡片的,所有操作都在手机 app 上完成。因此,申请人是否真的有一个所在国家的地址就不那么重要了。在网上找一个看起来像居民住宅的地址填入就可以。比较推荐 Random German Addr

5. 填写申请人的国籍和出生/性别信息

这部分同样一定要和你的护照内容一致,如果你是中国护照或者其他国家护照,请如实填写,因为之后的视频认证需要核对的。

6. 你的工作状态相关问题

简单如实选择就可以,并不是很重要。一般来说有需要的人都填 Employment。老板们自然有合法获取全球各国信用卡的方法。主要会咨询目前雇主是哪个行业的,这个问题不重要,简单选择一个就可以,一般的码农都是 Media, technology & consulting。以及最后会询问以下你申请 N26 的用途,一般都是个人项目开发,如实选择即可。

7. 美国相关的问题

这里回答是否申请人有美国身份或者绿卡,以及询问是否有美国纳税义务。如果没有持有绿卡或者美国国籍,第一个问题选择 NO。同时也没有美国纳税的义务,第二个问题选 NO。

8. 申请人税务地相关的问题

此时会询问申请人在哪个国家纳税,可以选填自己的税务号码 Tax ID,或者 Tax ID 留空也可以。不影响后续申请。

9. 设置账号的密码

密码设定推荐使用比较复杂的,至少 11 位含有数字、字母和特殊字符。如果你有推荐人,可以填写推荐号码。然后点击去下一步

10. 确认所有注册信息

确认一下所有的申请信息是否正确,然后点击同意合同条款。到这里其实网上申请就基本结束了,N26 银行会立刻发 Email 给你,请打开你的邮箱,点击绿色确认按钮进行确认。点击开户后您的账户就完成了。


认证流程

完成申请账号只是 N26 申请过程中比较简单的一环,相对恶心的步骤是认证阶段。不过毕竟是欧盟最大的网络银行,严格一点也是情有可原。我们在完成注册后,首次登陆会提示你选择一些必要信息,以及信用卡套餐。这里我们应该选择没有任何费用的 N26 Standard 方案。之后页面中会出现以下提示,意味着之后的步骤都应该在手机 App 上完成。

在 App store 下载 N26 App 后,登录你的账户,然后需要绑定你的手机,然后选择使用 Germany Resident VISA (只是一个选项,实际并不需要看)验证身份,一直点击继续直到开启视频验证。
验证的时候,你要找一个安静的地方并且网络畅通。目前 Verify Your Identity 稍微有些问题的更新,需要着重讲一下。
在 Verify Your Identity 视频认证的时候,可以选择德语或者英语,工作时间是德国时间早 9 晚 5,认证专家会询问你以下几个问题:

  1. 确认姓名
  2. 确认是否本人申请(回答 Yes)
  3. 确认是否在一个安静的,没有任何其他人的环境(回答 Yes)
  4. 确认是否有任何人告诉你申请 N26 后会有报酬(回答 No)
  5. 确认并拍摄你的照片
  6. 确认并拍摄你用手张开五指从面前上下移动的片段
  7. 确认护照号码及把护照的首页在摄像头前给客服看一看
  8. 确认并拍摄护照上下移动的片段
  9. 确认并拍摄护照被手指部分遮住的片段
  10. 确认并拍摄护照号码区域的详细内容
  11. 确认并拍摄申请人念出护照号码的片段
  12. 再次发送短信到你的手机,通过 App 内进行输入确认

整个过程大约 10 分钟不到,之后便会提交你的认证信息到 N26 审核部门。如果在周末,你可能需要等到工作日后才会收到审核通过的状态信息;如果是工作日,应该会比较快就审核完毕。一旦视频认证成功,N26 银行账户马上就打开使用了,如果申请了实体银行卡,就会在 3 天内收到邮局寄来的银行卡。(如果本人不在欧洲,建议不要申请实体卡)。
即使开户人不在德国,通过 Email 你也会知道你的 N26 银行帐号 IBAN 和 BIC 等关键信息。之后打开你的 App 已经可以操作了。

浅谈Meta Keywords

前言

Meta Keywords 是一个 HTML 页面中的元素,它包含了关于页面内容的关键字。它帮助搜索引擎了解页面的内容,并对搜索结果进行分类。Meta Keywords 在网页的 head 部分,可以通过的方式添加,关键字的内容通常为页面的主题或内容相关的词语。然而,许多搜索引擎已经忽略了 Meta Keywords 元素,因为其内容可以被滥用。
因此,通过 Meta Keywords 实现非常大的 SEO 作用,显然是假象,应该落在重点关注其他搜索引擎优化技巧,注意不要被骗了。

百度 - 非关键衡量指标

作为中文地区一言堂的百度,显然通过广告躺着赚钱不香吗?个人觉得百度仍是将 Meta Keywords 作为评定标准之一,不过 2018 年,一名来自中国的中文 SEO 专家写了一篇博客,援引 2013 年时一名百度搜索工程师公开发表的观点。

Meta Keywords 早就进了历史的垃圾堆了,我们会直接忽略。
Why You shouldn’t Use Meta Keywords Tag for Baidu SEO Anymore - Jinray China SEO Diary, 2018 年 7 月 4 日

Google - 完全忽略

谷歌公司自 2009 年以来就不再使用 Meta Keywords 标签作为衡量 Ranking 的因素;Google 还会对滥用 Meta Keywords 的网站进行降权惩罚。

Our web search (the well-known search at Google.com that hundreds of millions of people use each day) disregards keyword metatags completely. They simply don’t have any effect in our search ranking at present.
Google does not use the keywords meta tag in web ranking - Google Search Central Blog, 2009 年 9 月 21 日
Unsupported tags and attributes - Google Search Central Documentation

Bing - 完全忽略

Microsoft Bing 于 2014 年正式公开宣布,Meta Keywords 对于 Bing SEO 来说毫无价值:

Today, it’s pretty clear the meta keyword tag is dead in terms of SEO value. Sure, it might have value for contextual ad systems or serve as a signal to ‘bots plying the web looking for topics to target, but as far as search goes, that tag flat lined years ago as a booster.
2020 年,Microsoft Bing 时任 CEO 在 Twitter 上回推时再次表示,Bing 会无视、忽略、排除 Meta Keywords。
Blame The Meta Keyword Tag - Microsoft Bing Blog, 2014 年 10 月 4 日
The meta keyword tag is dead in terms of SEO value for @BingWMC. We exclude it and ignore it - ChristiJOlson, Head of Paid Search at Microsoft, 2020 年 5 月 29 日

Yahoo - 几乎不用

在 2009 年 Search Marketing Expo 大会上,Yahoo 时任搜索部门负责人 Cris Pierry 在问答环节上表示,Yahoo 其实早就不再将 Meta Keywords 作为一个指标。Search Engine Land 于是进行了一项测试,发现 Yahoo 仍然会索引 Meta Keywords 的信息。
Yahoo 官方对此的回复是,当 Yahoo 无法从网页的标题、description、链接、媒体文件等获取有关网页的信息时,Yahoo 仍然会使用 Meta Keywords 作为最后的稻草。

Yahoo Search No Longer Uses Meta Keywords Tag, 2009 年 10 月 6 日 The news came during the Ask The Search Engines session atSMX East in New York today. The search engines were all asked about their support of the tag. Moderator Danny Sullivan noted that only Yahoo provided support of the tag — prompting Cris Pierry, senior director of search at Yahoo, to announce that support actually had been ended unannounced “several” months ago.
Sorry, Yahoo, You DO Index The Meta Keywords Tag, 2009 年 10 月 14 日 What changed with Yahoo’s ranking algorithms is that while we still index the meta keyword tag, the ranking importance given to meta keyword tags receives the lowest ranking signal in our system.
Words that appear in any other part of documents, including the body, title, description, anchor text etc., will take priority in ranking the document – the re-occurrence of these words in the meta keyword tag will not help in boosting the signal for these words. Therefore, keyword stuffing in the keyword tag will not help a page’s recall or ranking, it will actually have less effect than introducing those same words in the body of the document, or any other section.

Yandex - 非关键衡量指标

俄罗斯最大的搜索引擎 Yandex 也是为数不多仍然使用 Meta Keywords 作为衡量指标之一的搜索引擎,但是许多来自俄罗斯的 SEO 专家都曾表示过 Meta Keywords 对改善 Yandex SEO 收效甚微。

Meta tags that Yandex takes into account > “Officially” they say they still do, but I think this is a very low weight factor, even for яндекс. This is the consensus among most of us who have done SEO in Russian :) - orun bhuiyan on Twitter, 2020 年 5 月 30 日

各云厂商密钥配置教程

阿里云密钥获取

打开阿里云官网 获取密钥页面 获取密钥信息 :

云账号 AccessKey 是您访问阿里云 API 的密钥,具有该账户完全的权限,请您务必妥善保管!不要通过任何方式(e.g. Github)将 AccessKey 公开到外部渠道,以避免被他人利用而造成 [安全威胁](https://help.aliyun.com/knowledge_detail/54059.html?spm=5176.2020520153.0.0.57f1336a8PQ1KR) 。 强烈建议您遵循 [阿里云安全最佳实践](https://help.aliyun.com/document_detail/102600.html?spm=5176.2020520153.0.0.57f1336a8PQ1KR) ,使用 RAM 子用户 AccessKey 来进行 API 调用。

百度云密钥获取

打开 百度云官网 进行登录,登录后选择右上角安全认证 :
点击 Access Key ID 右侧的“显示”,可查看其对应的 Secret Access Key,点击“隐藏”可隐藏对应的 Secret Access Key:

亚马逊 AWS 密钥获取

打开 AWS 官网 进行登录,登录后选择右上角【我的凭证】:
点击【访问密钥】,并且【创建新的访问密钥】:
完成之后即可看到密钥详情:

微软 Azure 密钥获取

通过 微软 Azure 进入所创建的 Azure Web App 的管理界面之后进入 Identity 管理界面
在 Azure 网站最上方的搜索栏里搜索 Key Vault 关键字并进入 Key Vault 管理总界面
点击进入创建好的 Azure Key Vault 实例之后进入 Access Policies 管理界面
击添加访问策略按钮,为需要授权的 principal 添加权限后点击保存按钮即可

Google Cloud 密钥获取

打开 Google Cloud 官网 进行登录,选择对应项目,进入到项目中:
点击左侧的【服务账号】:
再点击上面的【创建服务账号】:
创建完成会下载对应文件】:
将该文件存储到本地,并将存储的绝对路径配置到 s 工具所需的 PrivateKeyData 中

当您在应用中使用 API 密钥时,请确保其在存储和传输期间均安全无虞。公开泄露凭据可能会导致您的帐号遭盗用,这可能会使您的帐号产生预料之外的费用。为帮助确保 API 密钥的安全,请遵循以下最佳做法:
不要直接在代码中嵌入 API 密钥。嵌入代码中的 API 密钥可能会被意外泄露给公众。例如,您可能忘记从共享的代码中移除密钥。您可以将 API 密钥存储在环境变量或应用的源代码树之外的文件中,而不是将 API 密钥嵌入应用中。
不要将 API 密钥存储在应用的源代码树内的文件中。如果将 API 密钥存储在文件中,请将文件保留在应用的源代码树之外,这有助于确保密钥最终不会进入源代码控制系统。 如果您使用公共源代码管理系统(如 GitHub),这种做法尤为重要。
设置应用和 。 通过添加限制,您可以降低 API 密钥被盗用时造成的影响。
删除不需要的 API 密钥以最大限度地减少遭到攻击的风险。
定期重新生成 API 密钥。您可以在“凭据”页面 中,针对每个密钥点击重新生成密钥,从而重新生成 API 密钥。然后,更新您的应用以使用新生成的密钥。生成替换密钥后,旧密钥将在 24 小时后失效。
公开发布代码前,先检查您的代码,确保您的代码不包含 API 密钥或任何其他私密信息,然后再公开代码。

华为云密钥获取

打开 华为云官网 进行登录,登录后选择右上角【我的凭证】再选择左侧的 【访问密钥】:
点击新增访问密钥,会弹出提示框进行相关安全验证,通过之后可以看到:
下载之后可以看到自己的密钥信息:

如果访问密钥泄露,会带来数据泄露风险,且每个访问密钥仅能下载一次,为了账号安全性,建议您定期更换并妥善保存访问密钥。

腾讯云密钥获取

打开腾讯云官网 获取密钥页面 获取密钥 :

使用主账号密钥可以无限制地访问您的腾讯云资源,主账号密钥泄露可能造成您的云上资产损失!强烈建议您参照 [最佳实践](https://cloud.tencent.com/document/product/598/10592) 停止使用主账号登录控制台或者使用主账号密钥访问云API,请使用子账号进行相关资源操作。 [如何创建子用户](https://cloud.tencent.com/document/product/598/13674)

nginx报错问题汇总

Q:No input file specified. nginx 报错解决

“No input file specified.”原因在于使用的 PHP5.6 是 fast_cgi 模式,而在某些情况下,不能正确识别 path_info 所造成的错误。

Q:在 nginx 上启用 http2,开启 ssl,开启 HSTS

1.1 检查 OpenSSL

如果系统的 openssl 版本较低,比如低于 1.0.2 ,先升级下
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zxvf openssl-1.0.2k.tar.gz
进入目录编译安装 ./config
make && make install
移除旧版本 OpenSSL
mv /usr/bin/openssl /tmp/
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
检查是否为新版本了 openssl version
OpenSSL 1.0.2k  25 May 2017

1.2 检查 nginx

这里使用的是 v1.22.0 通过 yum 安装的 nginx 版本虽然支持 http2 了,但由于使用的 openssl 版本还是低版本,所以要重新编译安装下,准备必要工具
yum -y install libxml2 libxml2-devel libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data gperftools-devel
下载解压
wget https://nginx.org/download/nginx-1.22.0.tar.gz
tar zxvf nginx-1.22.0.tar.gz

1.3 配置编译 nginx

1
./configure --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-openssl=../openssl-1.0.2k

编译安装 make && make install
查看下是否是新版本了nginx -V
关键配置文件如下,注意替换下相应的参数

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
#开启HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
listen 443 ssl http2 default_server;
server_name xiaoxiaoguo.cn www.xiaoxiaoguo.cn; #这里替换成实际的域名
ssl on;
ssl_certificate cert/214212024460825.pem; #注意证书名称
ssl_certificate_key cert/214212024460825.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;
}

启用新配置,并验证systemctl reload nginx即可

Q:如何把 Apache htaccess 伪静态规则转换成 nginx

可以使用工具进行转换

Q:缺少 lua-nginx-module

安装 LuaJIT2,为 Nginx 添加 Lua 模块的前提需要安装 LuaJIT,这里使用的是 openresty 的 luajit2

1
2
3
4
git clone https://github.com/openresty/luajit2
cd luajit2
make
make install PREFIX=/usr/local/src/LuaJIT

看到 Successfully built LuaJIT 即成功部署,开始配置环境

1
2
3
4
5
export LUAJIT_LIB=/usr/local/LuaJIT/lib
export LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.1

source /etc/profile
ln -s /usr/local/LuaJIT/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

nginx: [alert] detected a LuaJIT version which is not OpenResty’s; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty’s LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html))

部分查阅 nginx error 信息反馈 luajit 问题的一般都是安装错了过期版本,并不是 luajit2
现在开始安装 2 个 Nginx Module,分别是ngx_devel_kit: NDK(nginx development kit)模块和lua-nginx-module模块。
编译 Nginx

1
2
3
cd /home/nginx-1.22.0
./configure --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_v2_module --with-pcre --with-ld-opt=-Wl,-rpath,/usr/local/src/LuaJIT/lib --add-module=../ngx_devel_kit-0.3.1 --add-module=../lua-nginx-module-0.10.21
make && make install

参考:
1、Nginx 官方说明文档
2、Nginx_dynamic_module
3、Nginx 添加 Lua 模块
4、Nginx 安装 lua-nginx-module
5、Nginx 编译安装 lua-nginx-module

善用PicHome管理你的百宝袋

何为 PicHome

欧奥 PicHome 是用于欧奥图文档系统的图片展示门户,图片搜索引擎。也能够用于 Eagle 和 Billfish 等其他图库软件的图片展示门户。


综上所述,这是一个颇为强大的图库系统,我们可以很好的拓展全终端管理查看我们的素材库。

安装与部署

Pichome 部署程序

wget时显示无法建立SSL连接

前言

由于众所周知的原因,许多域名解析已被污染或者高墙,无法访问。

解决 1

进入IPAddress这个网站,在搜索框内输入 wget 地址即可查询真实 IP 地址。
这里以 Github 为例

1
2
3
[root@master ~]# vim /etc/hosts
192.30.253.112 github.com
199.232.28.133 raw.githubusercontent.com

解决 2

在 wget 请求前加上代理
wget https://ghproxy.com/https://raw.githubusercontent.com/xxx

解决 3

尝试在原命令后补上--no-check-certificate

OpenLiteSpeed安装使用与部署Web网站

前言

OpenLiteSpeed 是 LiteSpeed EnterPrise 的社区版本,相较 Nginx 很多扩展如 Brotli、nginx*-_cache*-_purge 等扩展,会因为更新的不及时导致对最新 Stable 版本的不支持,同时也没有企业级的保障。 而 OpenLiteSpeed 的组件有官方进行主要维护和更新,提供商用企业级的体验。
在性能上,LiteSpeed Tech 提供的 BenchMark 中,在 WordPress、Joomla、OpenCart、ModSecurity、小型静态文件、HTTP/2、HTTP/3 的测试上都比 Apache HTTPD 和 Nginx 有这更好的表现,这不仅仅是跑个 Hello World 而是进行一个完整的测试。

根据其官网介绍,OpenLiteSpeed 是一个轻量级 Web 服务,非常适合部署一些中小型网站,其特点反应迅速,自带的 Cache 高性能缓存功能可以大大提升 PHP 的执行效率(特别是 WordPress 系统)

准备

根据官方的安装文档说明,服务器系统仅支持 CentOS、Debian 以及 Ubuntu
还需要一个域名和 SSL 证书对后续 Web 网页进行部署

安装

OpenLiteSpeed 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
###CentOS:
CentOS 5:
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el5.noarch.rpm
CentOS 6:
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el6.noarch.rpm
CentOS 7:
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm
CentOS 8:
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm

yum install openlitespeed

###Debian & Ubuntu:
Debian 7, 8 & Ubuntu 12,14,16,18 :
wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | bash

apt-get install openlitespeed

PHP 安装

默认安装的 PHP 版本目前为 PHP7.4,无须自己再手动安装
如果需要自己安装高版本(不建议,因为可以出现不兼容等未知错误)可以参考以下操作进行

1
2
3
4
5
6
7
8
###CentOS:
yum install epel-release
yum install lsphp81 lsphp81-common lsphp81-mysql lsphp81-gd lsphp81-process lsphp81-mbstring lsphp81-xml lsphp81-mcrypt lsphp81-pdo lsphp81-imap lsphp81-soap lsphp81-bcmath
ln -sf /usr/local/lsws/lsphp81/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

###Debian & Ubuntu:
apt-get install lsphp81
ln -sf /usr/local/lsws/lsphp81/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

启动 OpenLiteSpeed

键入/usr/local/lsws/bin/lswsctrl start打开浏览器,打开 IP:8088 如果看到

测试页面,即表示安装成功。
尔后通过之前的安装过程创建的账密登录 IP:7080 后台系统即可。倘若忘记账密可以通过键入sudo /usr/local/lsws/admin/misc/admpass.sh强制修改账号密码,再进入系统。

进入系统,右上角可以切换成中文显示

监听器配置

点击监听器,开始端口的设置,默认 Default 其实便是 8088 便是刚刚的测试页面。

点击右上角,添加端口,我们可以按图所示,添加 80 以及 443 端口。
假如你手上有 HTTPS 的证书,请在 80 和 443 端口编辑,勾上加密链接为是,然后在 SSL 子选项填入 KEY 和 CRT 文件,证书链选择否即可(同理如果是 PEM 的证书,证书链请勾选是)
如果使用的是 acme.sh 的证书,则需要注意定时任务续期的问题,这里提供简单操作如下:

1
2
wget -O -  https://get.acme.sh | sh
acme.sh --issue -d morefish.cc -w /usr/local/lsws/morefish.cc/html

签发成功则会生成 Key 的路径,然后填入刚刚 SSL 子模块/usr/local/lsws/binol.net/ssl/morefish.cc.key 和/usr/local/lsws/binol.net/ssl/fullchain.cer 然后选择证书链为是即可。

新建虚拟主机

新建虚拟主机前,请先准备下目录的创建,默认 Web 网站的路径为/usr/local/lsws 下新建 html 和 logs,这里我们假设我们的域名为 morefish.cc

设置完毕,以后便可以使用$VH_ROOT 变量指代/usr/local/lsws/morefish.cc/*
这里简单说明下变量的使用:

变量名 路径 说明
$SERVER_ROOT /usr/local/lsws/ OpenLiteSpeed 默认部署 Web 网站根目录
$VH_ROOT /usr/local/lsws/$VH_ROOT 虚拟主机的根目录,也可以说是 Web 网站的根目录。

注意第一次配置文件会报异常,那是提示目录没有那个文件,是正常错误,点击 CLICK TO CREATE 就能帮你创建配置文件,之后再保存即可。

常规设置

在常规子选项设置下,我们继续设置 HTML 的文档根为$VH_ROOT/html/,域名便填写 morefish.cc,开启 GZIP 压缩,不启用 IP 地理位置定位。索引文件设置里,我们不使用服务器索
引文件,索引文件设置填写为 index.php, index.html,最后自动索引选择否。

日志设置

在日志的子选项设置下,我们按图设置即可,当然可以根据自己所需实际需要设置,这里不做累述。

安全设置

在安全子选项设置下,访问控制里,我们允许列表填写*即可,代表允许所有 IP 访问,当然这里也可以添加拒绝访问的 IP 或者 IP 段。

重写设置

在重写子选项设置下,我们开启重启和自动加载 .htaccess,这样你的网站就可以像 Apache 一样开启伪静态了。

SSL 设置

在 SSL 子选项设置下,因为我们在监听器配置下已经完成,所以在虚拟主机这就无需另外设置,只需要配置映射就可以了。除非是多重映射,我们再另外设置。

端口映射设置

虚拟主机就创建好了,接下来我们需要把这个虚拟主机映射给相应的监听器。点击监听器 → 查看 → 虚拟主机映射 → 添加 → 选择好域名即可。

同理 443 监听器设置一样。

数据库部署

这里我们选择 MySQL 普通安装,键入sudo apt-get install mariadb-server mariadb-client即可完成安装,安装执行下列语句mysql_secure_installation按提示进行安全设置,最后systemctl restart mariadb重启 MySQL 即可。
注意安装 MySQL 要创建好子账户,和配置好开放权限,否则外网无法访问数据库。

OpenLiteSpeed 调优

开启缓存

OpenLiteSpeed 默认已经安装了 LiteSpeed Cache 缓存,在服务器模块那就能看到,结合自身需要开启即可。

按如图所示完成配置即可开启 Cache 缓存,加快 Web 网站访问速度。

调整上传文件大小限制

在虚拟主机 → 域名 → 常规下修改 php.ini 结合自身需要调整即可。

同样的也可以去 OpenLiteSpeed 目录下更改,具体地址为/usr/local/lsws/lsphp74/etc/php/7.4/litespeed/php.ini注意修改完毕,最后记得键入touch /usr/local/lsws/admin/tmp/.lsphp_restart.txtsudo systemctl restart lsws完成服务重启。

调整 GZIP 压缩

我们在前面部署虚拟主机的时候已经开启了 GZIP 压缩,我们可以进一步调优,具体操作在服务器 → 调节下修改 GZIP/Brotli 压缩

如图所示完成配置即可。

安装 PHP 扩展

OpenLiteSpeed 并未提供可视化一键安装 PHP 扩展的功能,但是一些诸如 redis 和 curl 等 php 扩展的必要性也是不能忽视的。

1
2
3
4
5
###CentOS
sudo yum install lsphpXX-pecl-PECL_NAME

###Debian & Ubuntu:
sudo apt install lsphpXX-PECL_NAME

值得一提的是,XX 为特定的 PHP 版本,PECL_NAME 为您希望安装的 PHP 扩展。这是官方的库,如果是一些偏冷门的扩展,则可能需要查阅官方文档才行。最后记得键入touch /usr/local/lsws/admin/tmp/.lsphp_restart.txtsudo systemctl restart lsws完成服务重启。

写在最后

这是继 OneinStack 和宝塔另类的轻量 Web 服务,建议用在小型网站上。

说明引用:
OpenLiteSpeed 安装与使用-开源轻量高性能的建站面板-免费 SSL,多 PHP,LSCache
安装 OpenLiteSpeed+Redis 并部署一个 WordPress,以及配置 SSL 和性能调优
LiteSpeed Documentation

解决Debian下启动MySQL报61 Connection refused

1.问题说明

Debian-9.12.1-AMDx64
使用sudo apt-get install mariadb-server mariadb-client在线非编译安装方式
简述:该问题出现一般是没有开放账号权限给外 IP 访问

2.解决思路

在伺服器键入设置mysql_secure_installation重设规则,前提是确认好是否安装到位 MySQLdpkg -l | grep mysql,重设规则这里跳过不需设置 root 密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

重启服务systemctl restart mariadb观察是否正常。

若不正常继续键入netstat -tap | grep mysql确认 MySQL 是否在 listen 状态
正常继续键入mysql -u root -p在本地登陆 MySQL,若忘记密码可以去sudo cat /etc/mysql/debian.cnf查看,以下完成设置远程访问的权限

1
2
3
4
5
6
use mysql;
select user,Host from user;
update user set Host='%' where user='root';
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
flush privileges;
exit;

重启服务,观察是否正常。

若还是不正常,继续键入cd /etc/mysql/mysql.conf.d查看配置文件是不是正常对外 IP 访问vim 50-server.cnf

发现 bind-address 配置项错误,理应改成 0.0.0.0
保存后,重启服务,再观察是否正常。

SVN/Git报错问题汇总

Q: Please execute the ‘Cleanup’ command

下载sqlite3工具,解压缩 sqlite3.exe 程序至仓库根目录,然后 cmd 命令行工具,键入

1
2
sqlite3.exe .svn/wc.db "select * from work_queue" #该命令可以查看当前挂起的svn操作
sqlite3.exe .svn/wc.db "delete from work_queue" #该命令可以删除当前挂起的svn操作

最后重新 cleanup 即可修复

Q: clone 项目的时候git@github.com: Permission denied (publickey)

这个错误通常是因为你没有在本地机器上与 GitHub 账户关联的有效 SSH 密钥,因此无法连接到 GitHub 账户,你需要创建个凭证链接至 Github

有需要提醒你,GitHub 在境内接近 block 状态,你需要些加速手段,如环境变量 http_proxy[ghproxy.com/gitclone.com]或者自有加速$ git config –global http.https://github.com.proxy socks5://127.0.0.1:17890

下面以 Windows 做事例,键入 cmd
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按顺序分别输入文件保存路径(默认是 C:\Users.ssh\id_rsa.pub)、密码和确认密码,完成后将 id_rsa.pub 打开,复制所有内容至自己的 GitHub 账户,打开”Settings”页面,选择”SSH and GPG keys”内。

键入 git bash 打开,将生成的密钥添加到 ssh-agent
ssh-add ~/.ssh/id_rsa
最后,检查是否已关联了正确的 SSH 密钥
ssh-add -l

Ubuntu食用相关

Q:执行 yarn install 出错 Yarn install command error No such file or directory: ‘install’

1
2
3
4
5
6
sudo apt remove cmdtest
sudo apt remove yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn

Q:Debian11 服务器系统默认不存在 sudo 命令的解决办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apt-get install vim
vim /etc/apt/sources.list

#!编辑注释所有,添加以下
deb http://mirrors.aliyun.com/debian/ bullseye main contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye main contrib
deb http://mirrors.aliyun.com/debian/ bullseye-updates main contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main contrib
deb http://mirrors.aliyun.com/debian/ bullseye-backports main contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main contrib
deb http://mirrors.aliyun.com/debian/ bullseye-proposed-updates main contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-proposed-updates main contrib

apt-get update
apt-get install sudo

Q:安装 Nodejs

1
2
3
4
5
6
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v

#!卸载如下
sudo apt-get remove nodejs

Q:食用 yum 出现 except KeyboardInterrupt, e:或 except OSError,

1
2
3
4
5
6
7
8
whereis python
#修改yum配置文件,将python版本指向以前的旧版本
# vi /usr/bin/yum
#!/usr/bin/python2.7

#修改urlgrabber-ext-down文件,更改python版本
# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7