centos7 install nginx+fastdfs
說明:centos7單機部署 nginx fastdfs
## 創建一下目錄作為存儲數據圖片的路徑 可以自己定義
mkdir -pv /data/application/{storage,tracker,client}
cd /data/application/
yum install lrzsz wget git gcc gcc-c++ zlib-devel cmake make
git clone [email protected]:happyfish100/libfastcommon.git
git clone [email protected]:happyfish100/fastdfs.git
git clone [email protected]:happyfish100/fastdfs-nginx-module.git
wget http://nginx.org/download/nginx-1.9.4.tar.gz
tar xf nginx-1.9.4.tar.gz -c /usr/local
cd /usr/local/nginx-1.9.4
### 編譯nginx 檢查編譯過程 出現缺少的包 及時進行安裝 保證編譯的順利進行
./configure --prefix=/usr/local/nginx --add-module=/data/application/fastdfs-nginx-module && make && make install
cd ..;rm -rf nginx-1.9.4
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf;cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
### 說明:下面2行替換 是對之前創建的目錄 進行保存數據使用 -->可以按照自己的需求進行自定義
sed -i ‘s@^base_path.*@base_path=/data/application/tracker@g‘ /etc/fdfs/tracker.conf
sed -i ‘s@store_path0=.*@store_path0=/data/application/storage@g‘ /etc/fdfs/storage.conf
### 說明:執行下面的時候 需要把ip地址改成自己的主機地址 才不會出錯
sed -i ‘s$^tracker_server=.*$tracker_server=172.17.0.2:22122$g‘ storage.conf
### 啟動 tracker server 後期重啟直接後面跟 restart 就可以
### 啟動之後記得查看 22122 端口
`which fdfs_trackerd` /etc/fdfs/tracker.conf
### 啟動 storage server 後期重啟直接後面跟 restart 就可以
`which fdfs_storaged` /etc/fdfs/storage.conf
### 啟動之後記得查看 23000 端口
################# nginx start
/usr/local/nginx/sbin/nginx -t;/usr/local/nginx/sbin/nginx
### check nginx process 發現沒有 woker 進程 只有master
ps -elf | grep nginx
### 查看 nginx 錯誤日誌
#### 發現下面的錯誤
[2018-10-12 07:11:48] ERROR - file: shared_func.c, line: 1067, file /etc/fdfs/mod_fastdfs.conf not exist
[2018-10-12 07:11:48] ERROR - file: /data/application/fastdfs-nginx-module/src/common.c, line: 163, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
2018/10/12 07:11:48 [alert] 4447#0: worker process 4448 exited with fatal code 2 and cannot be respawned
### 解決方法 找到這個文件 復制到 /etc/fdfs/ 目錄下
cp `find / -name mod_fastdfs.conf` /etc/fdfs/
### 重載 nginx 查看錯誤
/usr/local/nginx/sbin/nginx -s reload
#### 發現以下錯誤
[2018-10-12 08:39:59] ERROR - file: ini_file_reader.c, line: 1029, include file "http.conf" not exists, line: "#include http.conf"
[2018-10-12 08:39:59] ERROR - file: /data/application/fastdfs-nginx-module/src/common.c, line: 163, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
2018/10/12 08:39:59 [alert] 4447#0: worker process 4600 exited with fatal code 2 and cannot be respawned
### 解決方法 找到這個錯誤提示的文件 http.conf 復制到 /etc/fdfs/ 目錄下
cp `find / -name http.conf` /etc/fdfs/
### 重啟nginx 繼續查看錯誤日誌
/usr/local/nginx/sbin/nginx -s reload
#### 發現以下的錯誤
2018/10/12 08:44:48 [notice] 4609#0: signal process started
ngx_http_fastdfs_process_init pid=4610
[2018-10-12 08:44:48] ERROR - file: shared_func.c, line: 1067, file /etc/fdfs/mime.types not exist
2018/10/12 08:44:48 [alert] 4447#0: worker process 4610 exited with fatal code 2 and cannot be respawned
### 直接在/data目錄查找這個文件 復制到 /etc/fdfs/目錄下
cp `find /data -name mime.types` /etc/fdfs/
### 修改/etc/fdfs/mod_fastdfs.conf配置文件配合nginx
sed -i ‘s@^tracker_server=.*@tracker_server=172.17.0.2:22122@g‘ /etc/fdfs/mod_fastdfs.conf
sed -i ‘s@^url_have_group_name.*@url_have_group_name = true@‘ /etc/fdfs/mod_fastdfs.conf
sed -i ‘s@^store_path0=.*@store_path0=/data/application/storege@g‘ /etc/fdfs/mod_fastdfs.conf
sed -i ‘$a\#include http.conf‘ /etc/fdfs/mod_fastdfs.conf
### 這一步看自己愛好執行 刪除多余行
sed -i ‘/^ *#/d‘ /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload
#### 這會兒發現錯誤日誌 沒有報錯了 worker 進程也啟動了
### 進行上傳圖片測試 修改/etc/fdfs/client.conf文件 ip替換成自己的主機地址
sed -i ‘s@base_path=.*@base_path=/data/application/client@g‘ /etc/fdfs/client.conf
sed -i ‘s@tracker_server=.*@tracker_server=172.17.0.2:22122@g‘ /etc/fdfs/client.conf
centos7 install nginx+fastdfs