這裏是在Mac本地上安裝軟件遇到的坑,先總結一下html
在裝完mysql的時候,安裝wget,這個時候遇到的問題是openssl軟件包找不到,我已經不記得是何時安裝的openssl了,因此用命令查一下mysql
brew install openssllinux
若是已經安裝會提示你,若是沒安裝就直接裝了,個人顯示已安裝,可是系統仍是找不到這個包,因此我根據提示從新安裝了,git
brew reinstall opensslredis
而後創建軟鏈接sql
ln -s /usr/local/Cellar/openssl/1.0.2p /usr/local/bin/opensslmongodb
而後再把環境變量改一下,環境變量文件用命令查一下shell
echo $SHELL數據庫
若是顯示.zsh,就在~/.zshrc文件中,若是顯示.bash,就在~/.bash_profile中vim
把下面的環境變量加進去便可。
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服務已經啓動,若是要中止服務,就殺進程便可
這裏顯示進程信息,
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便可。以下:
通常都會顯示報警信息:
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包,而後用它能夠獲取到項目所須要的軟件包
進入到項目所在的目錄中,若是項目在本地就在本地運行環境中裝這個包,若是是在服務器中安裝了這個包,那麼項目也要放到服務器上,而後進入到項目的目錄中
以下這個提示就是成功生成了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
追加後效果以下:
![](http://static.javashuo.com/static/loading.gif)
設置開機執行redis腳本
以下所示
![](http://static.javashuo.com/static/loading.gif)
經過上面的操做後,之後也能夠直接用下面的命令對Redis進行啓動和關閉了,以下
service redis_6379 start service redis_6379 stop
要中止redis服務正確操做,執行以下命令
或者殺進程也能夠。
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
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
設置配置文件
配置文件部分參數修改
#修改成守護模式
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 推出服務