这里是在Mac本地上安装软件遇到的坑,先总结一下

在装完mysql的时候,安装wget,这个时候遇到的问题是openssl软件包找不到,我已经不记得是什么时候安装的openssl了,所以用命令查一下

brew install openssl

如果已经安装会提示你,如果没安装就直接装了,我的显示已安装,但是系统还是找不到这个包,所以我根据提示重新安装了,

brew reinstall openssl

然后建立软连接

ln -s /usr/local/Cellar/openssl/1.0.2p /usr/local/bin/openssl

然后再把环境变量改一下,环境变量文件用命令查一下

echo $SHELL

如果显示.zsh,就在~/.zshrc文件中,如果显示.bash,就在~/.bash_profile中

把下面的环境变量加进去即可。

export PATH=$PATH:/usr/local/Cellar/openssl/1.0.2p

再输入openssl version就是你重新安装的版本号了。

注意:苹果系统为了安全考虑把openssl替换成了LibreSSL 2.2.7,如非必要,还是不要用openssl。

我后来把openssl的环境变量给改过来了,发现wget也能正常使用。

直接用brew reinstall wget就行了。

还有一件事,我在修改完 ~/.zshrc文件时,执行了一条命令  source ~/.bash_profile,然后发现常用命令都不能用了,找到一个解决方案

命令行输入这个即可:

PATH=/bin:/usr/bin:/usr/local/bin:${PATH}

然后就能用了。

在命令行输入

source ~/.bash_profile

然后重启电脑,即可。否则,每一次打开item都会需要你输入上面的PATH命令。

需要解释的一点是我自己安装了item,所以路径文件名为zshrc,当我的item不能使用那些常用命令的时候,我的系统自带的终端是可以正常用的。

Mac上安装mongodb数据库

我是下载软件包安装的,还可以用brew装。

# 进入 /usr/local
cd /usr/local # 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz # 解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-3.6.3.tgz # 重命名为 mongodb 目录 sudo mv mongodb-osx-x86_64-3.6.3 mongodb # 添加环境变量
echo $SHELL
如果是base就打开 ~/.base——profile文件,如果是zsh,就打开 ~/.zshrc
把下面这句加入到上面打开的文件中,找到对应的加进去。PS:如果你安装了item,那么就建议你把这两个文件都加上下面这句话,这样你在苹果内置的终端和item里面都能进行同样的操作
export PATH=/usr/local/mongodb/bin:$PATH # 查看环境变量
echo $PATH # 建立文件夹,存放数据库,和存放日志,和配置文件
sudo mkdir /usr/local/mongodb/data/db/ /usr/local/mongodb/logs/ /usr/local/mongodb/etc
# 然后分别进入到刚刚创建的日志文件夹和etc文件夹中创建文件
cd /usr/local/mongodb/data/log/
sudo touch mongo.log

cd
/usr/local/mongodb/etc
sudo touch mongodb.conf

配置文件参数:

dbpath=/usr/local/mongodb/data/db/
logpath=/usr/local/mongodb/logs/mongod.log
logappend=true
journal=true
quiet=false
port=27017
fork=true
auth=true
httpinterface=true
# 启动服务
cd /usr/local/mongodb/bin/
./mongod

服务启动后在URL中输入:

localhost:27017

看到

It looks like you are trying to access MongoDB over HTTP on the native driver port.

说明mongodb服务已经启动,如果要停止服务,就杀进程即可

ps aux |grep mongo

这里显示进程信息,


dream-mac (这个是我电脑的名字)        3379 (这里显示的就是进程号)  0.3  0.3  4419124  27152 s000  S+   11:39上午   0:00.78 mongod


dream-mac         3418 (进程号)  0.0  0.0  4276968    788 s003  R+   11:41上午   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mongo

# 直接这样敲就是杀进程
kill 3379

服务启动之后,我们进入到mongo中,因为配置了环境变量,所以我们直接在命令行敲mongo即可。如下:

mongo

一般都会显示报警信息:

MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.2
Server has startup warnings:
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten]
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten]
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten]
2018-11-20T11:39:52.030+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

我们来解决一下报警信息,

先创建用户信息

在mongo中输入如下命令

use admin
db.createUser({user:"myUserAdmin",pwd:"",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) # 这里是用户信息创建成功
Successfully added user: {
"user" : "myUserAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}

use test
db.createUser({user:"myTest",pwd:"test123",roles:[{role:"readWrite",db:"test"},{role:"read",db:"reporting"}]})
# 创建成功
Successfully added user: {
"user" : "myTest",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
},
{
"role" : "read",
"db" : "reporting"
}
]
}

control + c推出mongo

然后先杀进程,如上操作。

再重新启动服务,这样就是需要认证登陆mongo:

mongod --auth --dbpath /data/db

进入mongo指令:

mongo --port 27017 -u "myUserAdmin" -p "" --authenticationDatabase "admin"

显示:

MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.2
>

报警信息解除。

不过这样启动需要敲的命令就太长了,不是很方便,所以我们要进一步解决这个问题,写入到shell脚本中。。。。。。

还有一种报警信息会出现:

** WARNING: You are running this process as the root user, which is not recommended.

不建议用root用户启动mongo服务,所以我们需要把权限以及用户都做一下更改。

我们先找到自己的用户名,这个用户名不是root,用命令可以查看

whoami

>>>dream-mac    
这就是我自己本机的用户名

然后把用户名的权限加到数据库文件中

sudo chown -R dream-mac /usr/local/mongodb/data/db/

启动服务

>>>cd  /usr/local/mongodb/bin/

>>>./mongod


2019-04-08T19:49:59.534+0800 I CONTROL  [initandlisten] MongoDB starting : pid=7448 port=27017 dbpath=/data/db 64-bit host=dream-macdeMBP.lan
2019-04-08T19:49:59.534+0800 I CONTROL [initandlisten] db version v3.4.2
2019-04-08T19:49:59.534+0800 I CONTROL [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2019-04-08T19:49:59.534+0800 I CONTROL [initandlisten] allocator: system
2019-04-08T19:49:59.535+0800 I CONTROL [initandlisten] modules: none
2019-04-08T19:49:59.535+0800 I CONTROL [initandlisten] build environment:
2019-04-08T19:49:59.535+0800 I CONTROL [initandlisten] distarch: x86_64
2019-04-08T19:49:59.535+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-04-08T19:49:59.535+0800 I CONTROL [initandlisten] options: {}
2019-04-08T19:49:59.535+0800 W - [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2019-04-08T19:49:59.536+0800 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2019-04-08T19:49:59.536+0800 W STORAGE [initandlisten] Recovering data from the last clean checkpoint.
2019-04-08T19:49:59.536+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten]
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten]
2019-04-08T19:49:59.809+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2019-04-08T19:49:59.809+0800 I NETWORK [thread1] waiting for connections on port 27017

另起一个窗口进入mongo数据库

➜  cd /usr/local/mongodb/bin
➜ ./mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2
Server has startup warnings:
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten]
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-04-08T19:49:59.799+0800 I CONTROL [initandlisten]
> showdabases
2019-04-08T19:51:45.909+0800 E QUERY [thread1] ReferenceError: showdabases is not defined :
@(shell):1:1
> show databases
admin 0.000GB
local 0.000GB

我们拿到一个项目的时候如果它没有requirement文件的话,在本地环境或者是服务器环境中安装pipreqs包,然后用它可以获取到项目所需要的软件包

pip install pipreqs

进入到项目所在的目录中,如果项目在本地就在本地运行环境中装这个包,如果是在服务器中安装了这个包,那么项目也要放到服务器上,然后进入到项目的目录中

pipreqs .

如下这个提示就是成功生成了requirements文件.

INFO: Successfully saved requirements file in ./requirements.txt

后面的"."就是当前目录的意思,也可以把项目目录贴在pipreqs后面

后来在服务器部署的时候遇到一个问题,同样是上面的操作,但是无法顺利执行,一直报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 133: ordinal not in range(128)

一直提示是编码问题,我用命令“pipreqs --encoding'utf8' ./”然后就报出另一种错,说我没有执行命令

提示:

<option><path>

反复试过很多次都是这样,后来就发现我的编辑器,不能显示中文,都是乱码出现的,我用的是Mac iTerm软件,就先去解决了iTerm不能显示中文的问题,再回过头来解决pipreqs,居然就好了,

原来不是人家pipreqs包的问题,是我自己的编辑器中文解码出错,跟人家没关系。pipreqs的包就是那么用的,两行命令就解决,逻辑没有错,查过大量的博客都是这样的,我的报错提示编码问题就是我自己的其他地方有编码问题,要去其他地方找原因,找到原因之后分分钟就解决,找到病因的过程才是最耗费时间的环节。

如下附上iTerm编辑器中文乱码解决方案:

mac 上iterm终端显示中文为乱码解决方案

1.首先需要去设置下iterm,的终端编码方式为utf-8
检查方案为:iterm - > perferences - > Terminal ->Character Encoding 为:UTF-8
2.打开/etc/ssh_config文件SendEnv LANG LC_*为SendEnv LANG LC_ALL=en.US.UFT-8
3.关闭iterm再次打开后查看中文是否还显示为乱码,如果还显示乱码,再次修改下linux字符集为utf-8,终端直接输入命令:LANG=“en_US.UTF-8"

服务器centos安装redis

https://www.cnblogs.com/renzhicai/p/7773080.html

cd /usr/local/  # 安装到这个路径下
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
make
make test
make install 去/usr/local/bin/目录下可以找到redis相关的6个配置文件就是安装成功

启动redis服务

# 任何路径下运行此命令即可启动服务
redis-server  

开始处理各种文件就能完成redis配置。

在redis安装文件中有utils文件,找到reids_init_script,把它拷贝到/etc/init.d/中,文件名为 redis_端口号,其中端口号表示要让Redis监听的端口号,客户端通过该端口连接Redis。然后修改脚本第6行的REDISPORT变量的值为同样的端口号。这里我们设置的端口号是6379,如下

cd /usr/local/redis-5.0.4/utils/

cp reids_init_script /etc/init.d/redis_6379

建立以下需要的文件夹。

# 存放redis的配置文件
mkdir /etc/redis/ # 存放redis的持久化文件,后面的6379是端口号,该文件名根据端口号决定
mkdir /var/redis/6379

把redis配置文件复制到指定路径并改名,文件名跟端口号保持一致*****一定要跟端口号保持一致,否则会报错“启动服务会无法打开配置文件“

cp /usr/local/redis-5.0.4/redis.conf  /etc/redis/6379.conf

接下来就是编辑配置文件的参数(重要参数就下面这几个)

# 使Redis以守护进程模式运行

daemonize    yes   
# 设置pid文件路径
pidfile /var/run/redis_6379.pid
# 监听端口号
port 6379
# 持久化文件路径
dir /var/redis/6379

然后保存退出,就可以启动服务了,用如下命令

/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop

【重中之重】让Redis随系统自动启动,这还需要对Redis初始化脚本进行简单修改,执行命令:

vim /etc/init.d/redis_6379

在打开的redis初始化脚本文件头部第四行的位置,追加下面两句

# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database

追加后效果如下:


设置开机执行redis脚本
chkconfig redis_6379 on
如下所示

通过上面的操作后,以后也可以直接用下面的命令对Redis进行启动和关闭了,如下

service redis_6379 start
service redis_6379 stop

要停止redis服务正确操作,执行如下命令

redis-cli shutdown

或者杀进程也可以。

ps -ef | grep redis

kill redis 进程号
Mac本地安装redis
cd /usr/local/  # 安装到这个路径下
sudo wget http://download.redis.io/releases/redis-5.0.4.tar.gz
sudo tar xzf redis-5.0.4.tar.gz
cd
redis-5.0.4
make
sudo make test # 测试编译 sudo make install

安装成功

建立相关文件夹

sudo mkdir /usr/local/redis
sudo mkdir /usr/local/redis/bin sudo mkdir /usr/local/redis/etc sudo mkdir /usr/local/redis/db

拷贝文件

sudo cp /usr/local/redis-5.0.4/src/mkreleasehdr.sh /usr/local/redis/mkreleasehdr.sh

sudo cp /usr/local/redis-3.2.0/redis.conf /usr/local/redis/etc 

把/usr/local/bin/  下面的跟redis有关的几个文件都copy到/usr/local/redis/bin/下面

例如

sudo cp /usr/local/bin/redis-benchmark /usr/local/redis/bin

共有6个文件:
redis-benchmark
redis-check-aof
redis-check-rdb
redis-cli
redis-sentinel
redis-server

设置配置文件

sudo vim redis.conf

配置文件部分参数修改

#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis/log-redis.log
#设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 8
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save <seconds> <changes>
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec

设置权限:

这里需要解释一下,我们的Mac和Linux系统是有差异的,Linux上面是有/etc/init.d/这个文件夹,所以redis的相关文件都可以放到这里面,但是Mac没有这个文件夹,
所以需要我们使用sudo这个命令来创建一系列的文件夹,在配置文件里面的log文件路径和pid文件路径以及最重要的db数据库文件路径,都需要另外加上权限,否则在启动redis服务的时候,这些配置文件里面配置好的路径参数是
无法生成相应的文件的,
chown -R 744 /usr/local/redis/db/ # 给数据库文件路径增加权限,它才能在服务启动时根据配置文件在里面读写数据
chown -R 777 /usr/local/redis/ # 我们的Mac里面redis相关文件都是在这个路径下,就把它的权限提到最高,便于读写以及其他各项操作。
chown -R root /usr/local/redis # root用户可以换成其他用户,凭自己设置

启动redis服务

 cd /usr/local/redis

 ./bin/redis-server ./etc/redis.conf

访问服务

redis-cli  # 在任何路径下输入这个命令,即进入redis服务,如下显示
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

contrl + c 推出服务

 

Macbook pro从购买服务器到搭建服务器环境(2)的更多相关文章

  1. 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?

    写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...

  2. 在CentOS 8服务器上搭建FastDFS环境

    什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...

  3. Macbook pro从购买服务器到搭建服务器环境(1)

    查看进程命令:ps -ef |grep *** ps -ef | grep nginx ps -ef | grep mysql ps -ef | grep mongops -ef | grep uws ...

  4. 在linux服务器上搭建nvidia-docker环境

    docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要的环境,各个环境之间彼此隔离开,好像一个 ...

  5. 在服务器上搭建node环境

    一般公司的发布是后台人员完成的,但是作为开发不会发布项目还是有点不高级的感觉 因为没有搭建虚拟机于是就直接在我阿里云的服务器上搭建了node环境, 第一步,前往node官网下载linux下的阿里云的镜 ...

  6. Linux服务器上搭建测试环境(war包+tomcat)

    悟空CRM项目环境部署(Java war项目) 在/root目录下创建一个文件夹(名字自取). ls命令查看一下是否创建成功,看到了新建的文件夹说明创建成功. tomcat和war包的准备:可以使用X ...

  7. 服务器上搭建web环境

    一.安装tomcat [root@localhost ~]# mkdir tomcat-src      --新建文件夹 [root@localhost ~]# cd tomcat-src       ...

  8. 使用腾讯云服务器CentOS搭建JavaWeb环境

    yum list java* yum install java-1.7.0-openjdk* -y java -version cd /usr/local wget https://mc.qcloud ...

  9. 服务器搭建node环境

    最近由于工作原因开始学习服务器的搭建和环境配置.记录一下我在服务器搭建node环境的步骤.中间踩了很多坑. 首先,确定自己的服务器可以连接到外网,如果连接不上的话,会出现ETIMEOUT的报错,但这只 ...

随机推荐

  1. C# activex开发中 axwebbrowser控件及 IE浏览器设置

    <object type='application/x-vlc-plugin' id='vlc' events='True' codebase='../cab/axvlc.cab' classi ...

  2. 序列化 反序列化 MessagePack for C#

    阅读目录 快速序列化组件MessagePack介绍 简介 使用 快速开始 分析器 内置的支持类型 对象序列化 DataContract兼容性 序列化不可变对象(序列化构造器) 序列化回调 Union ...

  3. 布隆过滤器(Bloom Filter) 未完待续

    布隆过滤器雏形 未完待续..... 计算错误率 现在有一个空额布隆过滤器, 过滤器里的bit array的大小是m. 咱来插入一个元素. 这次插入过程中的第一个hash函数会算出一个位置, 然后把这个 ...

  4. js 遍历集合删除元素

    js 遍历集合删除元素 /** * 有效的方式 - 改变下标,控制遍历 */ for (var i = 0; i < arr.length; i++) { if (...) { arr.spli ...

  5. 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)

    一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并 ...

  6. 【ShaderToy】基本操作——旋转

    *继续:ShaderToy基础学习中d(`・∀・)b 对每个像素点进行旋转,其实加个公式就ok了啊. 对网格进行旋转: 代码如下: #define TUTORIAL 2 #define PI 3.14 ...

  7. c语言编译四大步

    -o: 指定生成后的文件名,后面跟指定的名称 四步:-E 预处理 > -S 编译 > -c 汇编 > 链接 -E: 表示预处理,生成文件为.i,会做宏(define)定义的展开.头文 ...

  8. Redis的集群搭建

    一.集群的搭建 1.准备工作 (1)安装ruby环境 redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境: yum -y install ruby yum -y ...

  9. 简单文本悬浮div提示效果

    <html> <head> <script src="jquery-1.9.1.min.js" type="text/javascript& ...

  10. IIS7二级域名添加同一证书

    IIS7二级域名添加同一证书, 先绑定第一个域名到443 ,之后的用以下命令行绑定 cd C:\Windows\System32\Inetsrv\appcmd set site /site.name: ...