使用lnmp安装Nextcloud出现404问题解决方法

最新消息

特大消息特大消息,由于答主解决不了后续出现的WEBDAV接口错误问题,因此更改了安装方式=====》DOCKER!
装完之后感慨一下,docker大法真好。

参考教程
1、烂泥:个人网盘nextcloud的docker化搭建
2、wonderfall/nextcloud 据说比官网好用的环境,可惜不带Collabora Online,还需要手动安装

安装过程

安装好LNMP安装包后,测试可用,然后将nextcloud文件夹放到 /home/wwwroot/下,并通过lnmp vhost add 添加了新的虚拟主机。/usr/local/nginx/conf/vhost 中是刚设定好的虚拟主机配置文件,设定好端口以后以为万事大吉,谁知一堆404和403拦住了我的脚步。

尝试过程

输入网址,自动跳转到http://MyAddress/index.php中,这个时候弹出了系统配置页面,可是配置完成后直接跳转到404页面http://MyAddress/index.php/apps/files,我这个PHP小白还很纳闷,不一般路径都不带index.php么,到底什么情况。
查了很多钟解决方法,先后解决了文件夹的组和用户问题,PHP配置问题,添加了伪静态规则……
可是输入网址,还是熟悉的404。

其中有一次,使用了隐藏index.php大法

location / {
     if (!-e $request_filename){
          rewrite ^/(.*)$ /index.php/$1 last;
     }
}

直接访问http://MyAddress/login.php可以展示出页面,但是点击却没反应。发现是js之类的路径中间带那个万恶的index.php,卒。

最终解决(暂时)

后来终于综合几篇,找到了一种勉强可用的解决思路(因为强迫症想去掉路径中的index.php)。

下面的方法可以使带有index.php的路径正常访问

主要修改两个文件,pathinfo.conf enable-php.conf,当然,也可以修改vhost的配置文件,去掉引用enable-php.conf,并且将下面两段话放到yourwebsite.conf中。

1、enable-php.conf
删除原来location中的 (/|$) 注释掉try_files,添加include pathinfo.conf

location ~ [^/]\.php
{
#    try_files $uri =404;
   fastcgi_pass  unix:/tmp/php-cgi.sock;
   fastcgi_index index.php;
   include fastcgi.conf;
   include pathinfo.conf;
}

2、pathinfo.conf
修改try_files

fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO       $path_info;
#try_files $fastcgi_script_name =404;
try_files $uri $uri/ /index.php$args;

发表出来,一是做个记录,二是如果有路过大神能解答我为什么去不掉index.php也行,谢谢各位观看啦。

你可能感兴趣的:(php,docker,nextcloud)