ubuntu nginx配合fastDFS的安装与配置及配置过程中遇到的问题

  1. 把 fastdfs-nginx-module-master.zip 拷贝到 /usr/local 目录下解压
  2. 在 /usr/local 下新建一个nginx目录,把 nginx-1.8.1.tar.gz拷贝到 /usr/local/nginx 目录下解压
  3. 进入nginx-1.8.1的目录下执行以下命令:为Nginx编译环境添加fastdfs-nginx-module模块
sudo ./configure --prefix=/usr/local/nginx/ --add-module=../../fastdfs-nginx-module-master/src
# /usr/local/nginx/表示nginx安装在该目录下

此时遇到报错:

./configure: error: the HTTP rewrite module requires the PCRE library.

是因为缺少依赖包
安装依赖包

sudo apt-get install libpcre3 libpcre3-dev 
sudo apt-get install openssl libssl-dev

安装时遇到报错

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

主要是因为apt还在运行,此时的解决方案是

#找到并且杀掉所有的apt-get 和apt进程
ps -A | grep apt
sudo kill -9 查看到的进程号

#删除锁定文件
#一旦你运行了 apt-get 或者 apt 命令,锁定文件将会创建于 /var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中。
#这有助于运行中的 apt-get 或者 apt 进程能够避免被其它需要使用相同文件的用户或者系统进程所打断。当该进程执行完毕后,锁定文件将会删除。
#当你没有看到 apt-get 或者 apt 进程的情况下在上面两个不同的文件夹中看到了锁定文件,这是因为进程由于某个原因被杀掉了,因此你需要删除锁定文件来避免该错误。
#移除 /var/lib/dpkg/ 文件夹下的锁定文件
sudo rm /var/lib/dpkg/lock
#强制重新配置软件包
sudo dpkg --configure -a
#更新你的软件包源列表
sudo apt update

然后重新安装依赖包就行了

最后在nginx-1.8.1目录中编译和安装nginx

sudo make 
sudo make install
#此时nginx就被安装在了/usr/local/nginx下方
  1. 拷贝fastdfs-nginx-module-master模块的mod_fastdfs.conf文件
sudo cp fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
  1. 修改该配置文件内容
sudo vim /etc/fdfs/mod_fastdfs.conf
#修改内容:
connect_timeout=10
tracker_server=tracker_server所在服务器的ip地址:22122
url_have_group_name=true	#设置访问fastdfs文件时带不带组的信息
store_path0=/home/python/fastdfs/storage
  1. sudo cp 解压缩的fastdfs-master目录conf目录中的http.conf /etc/fdfs/http.conf
  2. sudo cp 解压缩的fastdfs-master目录conf目录中的mime.types /etc/fdfs/mime.types
  3. 编辑nginx的配置文件
sudo vim /usr/local/nginx/nginx-1.8.1/conf/nginx.conf
#在http部分中添加配置信息如下:
server {
  	listen     8888;	#监听端口号
        server_name  服务器ip;	#指定服务器的域名
        location ~/group[0-9]/ {
                ngx_fastdfs_module;	#只要你访问nginx服务器的时候,你访问的地址里面如果出现: ~/group[0-9],nginx就会去fastdfs中把文件ngx_fastdfs_module(即fastdfs)返回给你
	  }
	 error_page   500 502 503 504  /50x.html;
	 location = /50x.html {
         root   html;
            }
        }
#这里括号和修改的内容需要注意别出错或遗漏,否则之后执行命令时因为配置文件的问题容易报错        
  1. 查看nginx进程是否存在:ps aux |grep nginx
  2. 如果存在则先退出nginx
#cd 到nginx启动文件目录下
cd /usr/local/nginx/sbin
#停止
sudo ./nginx -s stop

此时遇到报错

[error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)

解决方法:

#指定nginx.conf文件的位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

此时再停止nginx就没问题了

  1. nginx的启动
sudo /usr/local/nginx/sbin/nginx
#或者在nginx启动文件目录下
sudo ./nginx
  1. 测试
    用fastDFS上传个图片试试是否配置成功
#终端
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件路径
#返回类似以下的结果
group1/M00/00/00/rBUABl5M5NeAezN8ABpRFe7X8s4486.jpg

然后在浏览器中输入:nginx配置文件中配置的ip:端口/fastdfs上传后返回的结果:
ip:port/group1/M00/00/00/rBUABl5M5NeAezN8ABpRFe7X8s4486.jpg
能取出图片即说明成功

你可能感兴趣的:(fastDFS,nginx)