强迫症的服务器笔记
昨日为了彻底解决 pip, Pyhton2, Python3, yum 等之间的兼容性问题, 便将 CentOS 6 升级成了 CentOS 7. 之后兼容性问题便不再困扰过我. 这某种程度又印证了那句话:
重启能解决大部分问题, 若不行则重装系统.
说得更准确点, 重装系统成了我解决问题的一种方法. 相对于折腾不同版本间的兼容性问题, 或许重装系统要更简单些, 特别是在服务器配置本身就不多的前提下.
以下是我的服务器笔记. 虽然这些问题都不算什么大问题, 但在我这个强迫症重度患者看来, 这些问题是难以忍受的.
环境
装了 lnmp
的 Centos 7 x86_64
, 服务器的地理位置是纽约.
rc.local
的命令不完全执行的问题
之前在树莓派初次用 Ubuntu 时就遇过加在 rc.local
的命令不执行的问题, 严格来说是命令不完全执行. 现在将服务器从 CentOS 6 x86
换成 Centos 7 x86_64
后又遇到了同样的问题. 尝试了很多网上的方法, 包括使用命令
chmod +x /etc/rc.d/rc.local
问题也得不到解决. 最后偶然发现, 只要把 rc.local
的第一行改成 !/bin/sh -x
, 问题即可完美解决.
这是什么原理?
http
自动跳转到 https
首先你的网站得支持 https
访问, 这点很关键.
把文件
/usr/local/nginx/conf/vhost/grassyiyi.com.conf
中的 listen 80
部分注释掉并改成
server
{
listen 80;
server_name grassyiyi.com www.grassyiyi.com;
rewrite ^(.*) https://grassyiyi.com$1 permanent;
}
域名从带 www
跳转到不带 www
这种方法包含了 https
自动跳转.
把文件
/usr/local/nginx/conf/vhost/grassyiyi.com.conf
中相应部分的改成如下.
server
{
listen 80;
server_name grassyiyi.com www.grassyiyi.com;
rewrite ^(.*) https://grassyiyi.com$1 permanent;
}
server
{
listen 443 ssl http2;
server_name grassyiyi.com www.grassyiyi.com;
if ($http_host !~ "^grassyiyi.com")
{
rewrite /.* https://grassyiyi.com$uri permanent;
}
...
}
将语言环境设置成 UTF-8
若不做这步设置终端的某些中文字符可能无法正常显示. 若只是暂时设置, 只需运行以下命令.
export LC_ALL=en_US.UTF-8;
export LANG=en_US.UTF-8;
输入 locale
回车可见语言环境已改成 en_US.UTF-8
. 若想永久修则将以上两句命令添加到文件 /etc/profile
的最后.
注意, 不推荐把 en_US.UTF-8
换成 zh_CN.UTF-8
, 这会使某些习惯英文变成中文. 在我这种强迫症看来, 夹在命令中的中文很丑.
给网站添加目录浏览功能
在网站根目录下创建名为Folder
目录, 然后在/usr/local/nginx/conf/vhost/grassyiyi.com.conf
中添加
location /Folded {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8
}
这样Folder
目录就能直接以grassyiyi.com/Folder
的形式访问了. 其中charset utf-8
是为了保证中文正常显示.
将 MathJax
安装在服务器
其实这步某种程度上也是多余的, 因为本来可以直接引用 cdn.mathjax.org
的 MathJax
. 可见将 MathJax
安装在服务器唯一的好处是, 在 cdn.mathjax.org
挂了而服务器却没挂时, MathJax
的数学公式能正常显示. 显然这种事发生的概率几乎为零. 同时, 其中的缺点不是没有, 除了折腾, 还占用了 186M 的服务器空间.
我之所以选择将 MathJax
安装在服务器, 应该纯粹是因为强迫症吧.
先将 MathJax
下载到网站根目录, 并将其解压, 重命名.
cd /home/wwwroot/grassyiyi.com/
wget https://github.com/mathjax/MathJax/archive/master.zip
unzip master.zip
mv MathJax-master/ MathJax
然后再将下面这段添加到主题文件 header.php
的最后.
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": { linebreaks: { automatic: true, width: "container" } }, availableFonts: ["TeX"]
});
</script>
<script type="text/javascript" src="https://grassyiyi.com/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
以上代码包括了 equation
环境的自动编号和公式自动断行. 不明白为什么默认情况下是没这两个功能的.
youtube-dl
和 bypy
将 youtube-dl
和 bypy
配合起来真的很好用. youtube-dl
可以 50M/s 的平均速度将 Youtube 的视频(列表)下载到服务器, bypy
则可用来上传到百度云. 这上传速度相对比较慢, 并且很不稳定. 上传 1G 大约需要一个小时.
youtube-dl
配置(分别代表下载路径及文件名格式, 下载全部字幕, 最佳画质):
-o ~/download_ChJ/%(title)s.%(ext)s
--all-subs
-f 'best'
并将其保存为 /etc/youtube-dl.conf
.
更多配置见 youtube-dl 和 bypy 的 github 网页1.
- 值得一提的是, 有 github 个名字类似的 Youtube 视频下载软件 youtube-dl-gui, 这跟
youtube-dl
的作者应该不是同一个人.youtube-dl-gui
由于有界面, 用在 Windows 系统还是挺方便的.另外, 这段脚注应该顶格写, 不然无法正常显示.↩
评论已关闭