今天在做毕业设计时出现一个问题:图片上传到服务器后,保存进数据库里面的URL不能直接用浏览器打开这张图片,该怎么弄呢?
最快的办法就是去阿里云买个图片管理的服务器。而像我们这种小项目一般也不用买,这时候就要我们自己用服务器搭一个。
1、检查linux系统服务器的nginx
使用shell连接服务器,通过进程查看nginx是否启动 :ps aux|grep nginx
效果如图:
2、到nginx的nginx.conf文件配置location
按以下图片步骤进行:
打开nginx.conf配置文件
在server里面加一个管理图片的location
location ~ .*\.(gif|jpg|jpeg|png)$ { expires 24h; root /root/mall/head; #图片日志文件 access_log /usr/local/nginx/logs/images.log;}
配置好之后保存退出,然后进到nginx的sbin目录使用命令:./nginx -s reload 重启nginx
至此,图片服务器已经搭建好了,在浏览器中输入服务器IP或域名+文件名即可打开图片
我的效果图如下:
因为nginx使用的端口号是80,所以不用使用端口,直接域名+文件名
以上是搭建图片服务器没有出错的步骤,下面给出一个搭建过程中出现的一个错误的解决方法。
问题:在使用浏览器打开文件是出现403 forbidden的访问权限不足。
解决方法有两个方面:
1、确认图片文件是否存在,是否有读写权限,若没有则赋权
1.1、进入图片的存储路径:cd mall/head
1.2、查看目录下文件和权限,ll
1.3、有权限跳过,没有赋权chmod 777 -R ./
2、确认nginx启动用户和nginx工作用户是否一致
2.1、查看linux启动用户,ps -ef |grep nginx,如下启动用户是nobody
2.2、将nginx.config的user改为和启动用户一致,改为root
2.3、然后保存重启nginx
问题到此解决。