zoukankan      html  css  js  c++  java
  • 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:"123",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 "123" --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 推出服务

     
     
  • 相关阅读:
    【转】Selenium模拟JQuery滑动解锁
    【转】nose-parameterized是Python单元测试框架实现参数化的扩展
    【转】Chrome headless 模式
    RobotFramework:App九宫格滑动解锁
    appium九宫格解锁错误提示:The coordinates provided to an interactions operation are invalid解决办法
    RobotFramework:App滑动屏幕
    robotframework:appium切换webview后,在webview里滑动屏幕
    robotframework:appium切换webview后,在第一个页面操作成功,跳转到第二个页面后,执行命令失败
    robotframework之APP混合H5自动化测试
    Allure生成测试报告
  • 原文地址:https://www.cnblogs.com/2012-dream/p/9983308.html
Copyright © 2011-2022 走看看