1. 程式人生 > >centos7 install nginx+fastdfs

centos7 install nginx+fastdfs

alert 端口 conf -a 路徑 process c-c++ 配置文件 amp

說明: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