Nginx上手

安装方式

一开始使用Docker来安装,参考的是 http://www.ruanyifeng.com/blog/2018/02/nginx-docker.html 这篇教程的文章,后来发现Nginx作为子容器访问宿主机端口非常的麻烦,尝试了好几个网上的教程都不理想,而Nginx用来做反向代理对我来说是刚需,索性外部独立安装吧。

Yum安装尝试

看教程里别人安装都很顺利,步骤是:

1
2
3
// 安装EPEL软件仓库
yum install epel-release
// 输出:No package epel-release available.

找了各种方式终于安装epel-release成功后,执行命令:

1
2
yum install nginx
// 输出:No package nginx available.

参考官方的教程:https://www.nginx.com/resources/wiki/start/topics/tutorials/install/。
查看下系统的版本:

1
2
cat /etc/redhat-release
// 输出: CentOS Linux release 7.7.1908 (Core)

安装easyswoole

每次重新部署一台服务器的时候都累到吐血,特别是最近有个很早的服务器到期了,需要把服务搬到另外一个服务器上。
开始吧!

安装php7.1

1
2
3
4
5
6
7
8
9
10
11
// 卸载旧的php
yum remove php* php-common
// 安装源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
//查看php源
yum list php*
//开始安装
yum install php71w php71w-opoache php71--cli php71w-devel php71w-mysqli
//查看php版本
php -v

layabox使用node_modules

用习惯了egret、layabox这类游戏引擎的人,很少有关注node_modules类库,或者用到的时候不得不用各种曲折的方法,比如在egret中如果要引用一个类库,必须把这个类库放到指定的目录中去,如果默认没有.min.js文件,还要拷贝一个命名成.min.js文件,再然后把对应的type文件放到目中去,最终的结构就像这样:

1
2
3
libs/thirdLib/thirdLib.js
libs/thirdLib/thirdLib.min.js
libs/thirdLib/thirdLib.d.ts

Laya也一样,需要再index.js中把类库引用进去,然后再把.d.ts文件放到libs的声明文件中。

对于很多nodejs开发者来说,就非常需要node_modules包来管理了。庆幸的是Laya其实没有对编译做各种绑定和预处理,我们完全可以修改下编译脚本就能实现引用打包node_modules类库了。

这里使用Moment.js来举个🌰。

修改nodejs的默认目录

新手安装nodejs经常会遇到一些权限问题,要是能有一份nodejs的最佳实践就好了。就好比修改nodejs的默认库安装目录,这样可以避免很多权限问题,特别是Mac系统对一些权限是限制的,导致无法正常安装nodejs类库,修改了安装目录就能解决这里问题。

创建目标目录~/.npm-global

1
mkdir ~/.npm-global

设置npm的默认类库目录

1
npm config set prefix '~/.npm-global'

添加PATH到~/.profile文件中,如果没有这个文件,就创建一个,然后添加这行:

1
export PATH=~/.npm-global/bin:$PATH

执行命令

1
source ~/.profile

尝试安装一个类库吧~

1
npm install -g jshint

参考

resolving-eacces-permissions-errors-when-installing-packages-globally

jenkins配置

启动

  1. 强烈建议使用jenkins.war文件,并用命令行启动jenkins,这样可以自定义端口号,访问路径后缀,和自定义workspace的目录
  2. 可能会提示说java的版本过高,启动时加入参数 --enable-future-java来解决
  3. 我的启动脚本:

mac:

1
2
export JENKINS_HOME=/Users/xin/workspace/jenkins
java -jar jenkins.war --enable-future-java --httpPort=8080 --prefix=/jenkins

win:

1
2
set JENKINS_HOME=C:\jenkins
java -jar jenkins.war --enable-future-java --httpPort=8080 --prefix=/jenkins

py2与py3共用

编译

同时安装python2与python3后,使用python2运行:

1
py -2 hello.py

使用python3运行:

1
py -3 hello.py

如果不想每次运行都加入参数-2-3,可以把启动类型写入py文件中,python2文件在代码开头加入:

1
#! python2

python3则是在代码开头加入:

1
#! python3

手机h5复制功能

一定要加上readonly=true,否则在ios手机上会出现输入法跳出来。

1
2
3
4
5
6
7
8
let input = document.createElement("input");
input.readOnly = true;
input.value = text;
document.body.appendChild(input);
input.select();
input.setSelectionRange(0, input.value.length);
document.execCommand("Copy");
document.body.removeChild(input);

egret在Android4.x下黑屏

主要是webGL不支持导致,在index.html中判断如果安卓版本过低则使用canvas替代:

1
2
3
4
5
6
7
8
9
var renderMode = "webgl";
var index = navigator.userAgent.indexOf("Android 4.")
if (index >= 0) {
renderMode = "canvas";
}
egret.runEgret({
renderMode: renderMode,
audioType: 0
});