Write the Code. Change the World.

8月 30

在nodejs中使用express来搭建框架可以说是非常的简单方便,但是一般默认创建的都是http服务器,也就是只能通过http协议进行访问。如今https已经是发展趋势,我们应该顺应时代的潮流。这里,将记录下这个的配置过程。

生成证书文件

先进入到项目的目录。

cd /alidata/service/node.js/server/im/

1. 生成私钥key文件

openssl genrsa 1024 > private.pem  

继续阅读

8月 29

Node.js 官网下载地址:https://nodejs.org/en/download/

注意,这里分两种版本,LTS(长期支持,成熟可靠)和Current(稳定版,最新特性)。选择合适的版本安装。

下载好Mac对应的版本。然后安装。安装完成后,会出现下边提示。

Node.js was installed at

   /usr/local/bin/node

npm was installed at

   /usr/local/bin/npm

Make sure that /usr/local/bin is in your $PATH.

确定,安装完成。

使用

安装完成后,可以在终端中查看版本。

node -v
npm -v

使用国内的淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org
8月 29

node.js的mysql模块比较多,有mysql,mysqli,还有mariasql以及node-mariadb。针对服务器的环境,使用对应的模块。因此,踩过不少坑。

环境差异

服务器装的mysql环境,php7或php7以下

安装对应模块:

npm install mysql  // php7以下
npm install mysqli // php7

继续阅读

8月 13

安装redis

brew install redis

安装成功后,有如下提示

zhoulindeMacBook-Pro:~ zhoulin$ brew install redis
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/redis-4.0.1.sierra.bottle.tar.gz 

######################################################################## 100.0%
==> Pouring redis-4.0.1.sierra.bottle.tar.gz
==> Caveats
To have launchd start redis now and restart at login:
  brew services start redis
Or, if you don't want/need a background service you can just run:
  redis-server /usr/local/etc/redis.conf
==> Summary
  /usr/local/Cellar/redis/4.0.1: 13 files, 2.8MB
zhoulindeMacBook-Pro:~ zhoulin$ brew services start redis
==> Successfully started `redis` (label: homebrew.mxcl.redis)

然后按照提示,启动redis

开机自启动

sudo cp /usr/local/opt/redis/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
sudo launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist 
sudo launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist #停止使用
8月 13

直接进入主题。

brew install mariadb

安装成功后,会有下边的提示。

A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

MySQL is configured to only allow connections from localhost by default

To connect:
    mysql -uroot

To have launchd start mariadb now and restart at login:
  brew services start mariadb
Or, if you don't want/need a background service you can just run:
  mysql.server start
==> Summary
  /usr/local/Cellar/mariadb/10.2.7_1: 623 files, 162.2MB

进入安装目录,进行配置。

cd /usr/local/cellar/mariadb/10.2.7_1
mysql_install_db 

经过了上面的若干命令,已经安装好了mariadb数据库,但是mariadb数据库服务并没有启动,你可以通过这个命令来启动mariadb数据库服务:

mysql.server start 

通过上面的启动mariadb数据库服务,你已经可以连接mariadb的数据库了,但是还不够安全,通过如下步骤可以完成更全面的设置,如:重设root用户的密码、移除匿名用户、移除默认的test数据库等等。

zhoulindeMacBook-Pro:10.2.7_1 zhoulin$ mysql_secure_installation

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.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


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] y
 ... Success!

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] n
 ... skipping.

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!

连接mariadb数据:

mysql -u root -p 

这个时候,输入上一步设置的密码,回车,就可以连接到mariadb了。

验证mariadb版本:

MariaDB [(none)]> select @@version;
+----------------+
| @@version      |
+----------------+
| 10.2.7-MariaDB |
+----------------+
1 row in set (0.00 sec)

mariadb基础命令:

下面是mariadb的一些基础使用命令:

显示数据库列表
show databases;

切换到名为mysql的数据库,显示该库中的数据表
use mysql;
show tables;

显示数据表table的结构
desc table;

建数据库A与删数据库A
create database database_A;
drop database database_A;

建表:
use database_A;
create table table_A(字段列表);
drop table table_A;

显示表中的记录:
select * from table_A;

清空表中记录:
delete from table_A;

mariadb 自启动

sudo cp /usr/local/cellar/mariadb/10.2.7_1/homebrew.mxcl.mariadb.plist ~/Library/LaunchAgents/
sudo launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist #启动
sudo launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist #关闭

参考文章

http://blog.csdn.net/zmzwll1314/article/details/52926885

8月 13

通常,域名访问的网站都是外网的。有时候为了方便,使用域名访问本地文件也有必要。要实现这个,做到以下两步即可。

  1. 写host。
  2. 修改服务器配置。这里用的是 nginx

  3. 如果想要使用 https 访问,还需要制作 ssl 证书。

但在 mac 下,要实现这个,必须先实现端口的转发。也就是mac限制root权限才可以访问1024以下端口。所以,你想访问80端口,443端口是不现实的。这个时候,就需要用到 pfctl 转发。

https://blog.vini123.com/166

实现了转发,就继续下边的过程了。
继续阅读