Macbook pro从购买服务器到搭建服务器环境(2)
这里是在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 进程号
- 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
cdredis-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)的更多相关文章
- 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?
写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...
- 在CentOS 8服务器上搭建FastDFS环境
什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...
- Macbook pro从购买服务器到搭建服务器环境(1)
查看进程命令:ps -ef |grep *** ps -ef | grep nginx ps -ef | grep mysql ps -ef | grep mongops -ef | grep uws ...
- 在linux服务器上搭建nvidia-docker环境
docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要的环境,各个环境之间彼此隔离开,好像一个 ...
- 在服务器上搭建node环境
一般公司的发布是后台人员完成的,但是作为开发不会发布项目还是有点不高级的感觉 因为没有搭建虚拟机于是就直接在我阿里云的服务器上搭建了node环境, 第一步,前往node官网下载linux下的阿里云的镜 ...
- Linux服务器上搭建测试环境(war包+tomcat)
悟空CRM项目环境部署(Java war项目) 在/root目录下创建一个文件夹(名字自取). ls命令查看一下是否创建成功,看到了新建的文件夹说明创建成功. tomcat和war包的准备:可以使用X ...
- 服务器上搭建web环境
一.安装tomcat [root@localhost ~]# mkdir tomcat-src --新建文件夹 [root@localhost ~]# cd tomcat-src ...
- 使用腾讯云服务器CentOS搭建JavaWeb环境
yum list java* yum install java-1.7.0-openjdk* -y java -version cd /usr/local wget https://mc.qcloud ...
- 服务器搭建node环境
最近由于工作原因开始学习服务器的搭建和环境配置.记录一下我在服务器搭建node环境的步骤.中间踩了很多坑. 首先,确定自己的服务器可以连接到外网,如果连接不上的话,会出现ETIMEOUT的报错,但这只 ...
随机推荐
- 前端安全类——CSRF/XSS
CSRF 概念:跨站请求伪造 全称:Cross-site request forgery 攻击原理:网站中某一个接口存在漏洞,用户在注册网站登录过 防御措施: 1.Token验证:引诱链接只会自动携带 ...
- 微信小程序 开发文档
官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...
- Java虚拟机—Java8内存模型(整理版)
1.概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要手动释放内存,不容易出现内存泄露和内存溢出问题.一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查错误 ...
- Debian Security Advisory DSA-4421-1 chromium security update
Debian Security Advisory DSA-4421-1 chromium security update Package : chromiumCVE ID ...
- centos 7.2 安装mongodb 3.4.4免编译
/根目录下: 获取命令: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz 解压命令: tar zvxf mon ...
- git 解决每次更新代码都要输入用户名密码的解决方案
使用git pull或者git push每次都需要输入用户名和密码很繁琐,耽误时间,现在教大家一条命令实现保存用户名和密码不用再输入 git config --global credential.he ...
- MongoDB代码——Python篇
需要安装的库:pymongo 一.添加文档 from pymongo import MongoClient # 连接服务器 conn = MongoClient("localhost&quo ...
- ubuntu 下开机启动项修复(进不去windows系统)
1.终端输入: sudo gedit /etc/default/grub 2.更改: GRUB_DEFAULT=0 改为 GRUB_DEFAULT=4 GRUB_TIMEOUT=10 改为 ...
- Charles+iPhone配置ssl证书
Charles+iPhone配置ssl证书 一.手机 1. 配置代理 设置->无线局域网->选和电脑同一网络的无线->配置代理->手动 服务器配置电脑的IP,端口设置为8888 ...
- 【转】一文掌握 Linux 性能分析之内存篇
[转]一文掌握 Linux 性能分析之内存篇 前面我们已经学习了 CPU 篇,这篇来看下内存篇. 01 内存信息 同样在分析内存之前,我们得知到怎么查看系统内存信息,有以下几种方法. 1.1 /pro ...