我的确遇到很多坑,第一个坑,就是重启之后,系统不能用了。

原因很简单,我的selinux 没有关闭。

坑2、

升级了之后,不知道如何退出维护模式。

这里附上nextcloud的维护模式关闭和开启。

PS:以下命令,需要进入nextcloud的安装目录内,找到occ命令后,执行,如果是centos环境那么要改成 apache php xxxxx即可

sudo -u nginx php occ maintenance:mode --on
sudo -u nginx php occ maintenance:mode --off

然后的坑就是给nextcloud配置缓存。

这里我好像还有报错,听说用ubuntu问题比较少。

我总结一下其它的。

参考这篇博文https://blog.csdn.net/weixin_41004350/article/details/80479051

里面有一个

opcache 

我找了好久,原来是Centos7里面的位置变了,在/etc/php.d/opcache.ini 去改参数。

 

终于找到隐藏已久的坑,这里要参考nextcloud的官方文档,虽然是全英文,但是看看还是很有价值的。

https://docs.nextcloud.com/server/13/admin_manual/installation/system_requirements.html

这里有很多说明,可以慢慢。

直接说坑吧,就是关于nextcloud里提示X-Frame-Options" 没有配置为 "SAMEORIGIN"

一直报错,

我各种排查,首先检查/usr/share/nginx/html/nextcloud/config/config.php里的配置,里面有SAMEORIGIN这项,一步一步参考官方资料。

官方代码

  1 upstream php-handler {  2     server 127.0.0.1:9000;  3     #server unix:/var/run/php5-fpm.sock;  4 }  5   6 server {  7     listen 80;  8     listen [::]:80;  9     server_name cloud.example.com; 10     # enforce https 11     return 301 https://$server_name$request_uri; 12 } 13  14 server { 15     listen 443 ssl http2; 16     listen [::]:443 ssl http2; 17     server_name cloud.example.com; 18  19     ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; 20     ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; 21  22     # Add headers to serve security related headers 23     # Before enabling Strict-Transport-Security headers please read into this 24     # topic first. 25     #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; 26     add_header X-Content-Type-Options nosniff; 27     add_header X-XSS-Protection "1; mode=block"; 28     add_header X-Robots-Tag none; 29     add_header X-Download-Options noopen; 30     add_header X-Permitted-Cross-Domain-Policies none; 31  32     # Path to the root of your installation 33     root /var/www/; 34  35     location = /robots.txt { 36         allow all; 37         log_not_found off; 38         access_log off; 39     } 40  41     # The following 2 rules are only needed for the user_webfinger app. 42     # Uncomment it if you're planning to use this app. 43     # rewrite ^/.well-known/host-meta /nextcloud/public.php?service=host-meta 44     # last; 45     #rewrite ^/.well-known/host-meta.json 46     # /nextcloud/public.php?service=host-meta-json last; 47  48     location = /.well-known/carddav { 49       return 301 $scheme://$host/nextcloud/remote.php/dav; 50     } 51     location = /.well-known/caldav { 52       return 301 $scheme://$host/nextcloud/remote.php/dav; 53     } 54  55     location /.well-known/acme-challenge { } 56  57     location ^~ /nextcloud { 58  59         # set max upload size 60         client_max_body_size 512M; 61         fastcgi_buffers 64 4K; 62  63         # Enable gzip but do not remove ETag headers 64         gzip on; 65         gzip_vary on; 66         gzip_comp_level 4; 67         gzip_min_length 256; 68         gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; 69         gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 70  71         # Uncomment if your server is build with the ngx_pagespeed module 72         # This module is currently not supported. 73         #pagespeed off; 74  75         location /nextcloud { 76             rewrite ^ /nextcloud/index.php$request_uri; 77         } 78  79         location ~ ^/nextcloud/(?:build|tests|config|lib|3rdparty|templates|data)/ { 80             deny all; 81         } 82         location ~ ^/nextcloud/(?:\.|autotest|occ|issue|indie|db_|console) { 83             deny all; 84         } 85  86         location ~ ^/nextcloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) { 87             fastcgi_split_path_info ^(.+?\.php)(/.*)$; 88             include fastcgi_params; 89             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 90             fastcgi_param PATH_INFO $fastcgi_path_info; 91             fastcgi_param HTTPS on; 92             #Avoid sending the security headers twice 93             fastcgi_param modHeadersAvailable true; 94             fastcgi_param front_controller_active true; 95             fastcgi_pass php-handler; 96             fastcgi_intercept_errors on; 97             fastcgi_request_buffering off; 98         } 99 100         location ~ ^/nextcloud/(?:updater|ocs-provider)(?:$|/) {101             try_files $uri/ =404;102             index index.php;103         }104 105         # Adding the cache control header for js and css files106         # Make sure it is BELOW the PHP block107         location ~ \.(?:css|js|woff|svg|gif)$ {108             try_files $uri /nextcloud/index.php$request_uri;109             add_header Cache-Control "public, max-age=15778463";110             # Add headers to serve security related headers  (It is intended111             # to have those duplicated to the ones above)112             # Before enabling Strict-Transport-Security headers please read113             # into this topic first.114             # add_header Strict-Transport-Security "max-age=15768000;115             # includeSubDomains; preload;";116             add_header X-Content-Type-Options nosniff;117             add_header X-XSS-Protection "1; mode=block";118             add_header X-Robots-Tag none;119             add_header X-Download-Options noopen;120             add_header X-Permitted-Cross-Domain-Policies none;121             # Optional: Don't log access to assets122             access_log off;123         }124 125         location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {126             try_files $uri /nextcloud/index.php$request_uri;127             # Optional: Don't log access to other assets128             access_log off;129         }130     }131 }

View Code

然后去检查nginx的配置,在/etc/nginx/nginx.conf

看到这个代码不要晕,一步一步的对比,里面也有一个SAMEORIGIN这项,注释这项就可以了。附上我的代码

  1 #user  nobody;  2 worker_processes  1;  3   4 #error_log  logs/error.log;  5 #error_log  logs/error.log  notice;  6 #error_log  logs/error.log  info;  7   8 #pid        logs/nginx.pid;  9  10  11 events { 12     worker_connections  1024; 13 } 14  15  16 http { 17     include       mime.types; 18     default_type  application/octet-stream; 19  20     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 21     #                  '$status $body_bytes_sent "$http_referer" ' 22     #                  '"$http_user_agent" "$http_x_forwarded_for"'; 23  24     #access_log  logs/access.log  main; 25  26     sendfile        on; 27     #tcp_nopush     on; 28  29     #keepalive_timeout  0; 30     keepalive_timeout  65; 31  32     #gzip  on; 33  34     server { 35         listen       80; 36         server_name  你的域名; 37  38         #charset koi8-r; 39  40         #access_log  logs/host.access.log  main; 41  42         location / { 43             root   html; 44         proxy_read_timeout 300; 45             index  index.html index.htm; 46         } 47  48         #error_page  404              /404.html; 49  50         # redirect server error pages to the static page /50x.html 51         # 52         error_page   500 502 503 504  /50x.html; 53         location = /50x.html { 54             root   html; 55         } 56  57         # proxy the PHP scripts to Apache listening on 127.0.0.1:80 58         # 59         #location ~ \.php$ { 60         #    proxy_pass   http://127.0.0.1; 61         #} 62  63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 64         # 65         #location ~ \.php$ { 66         #    root           html; 67         #    fastcgi_pass   127.0.0.1:9000; 68         #    fastcgi_index  index.php; 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 70         #    include        fastcgi_params; 71         #} 72  73         # deny access to .htaccess files, if Apache's document root 74         # concurs with nginx's one 75         # 76         #location ~ /\.ht { 77         #    deny  all; 78         #} 79     } 80  81  82     # another virtual host using mix of IP-, name-, and port-based configuration 83     # 84     #server { 85     #    listen       8000; 86     #    listen       somename:8080; 87     #    server_name  somename  alias  another.alias; 88  89     #    location / { 90     #        root   html; 91     #        index  index.html index.htm; 92     #    } 93     #} 94  95  96     # HTTPS server 97     # 98     #server { 99     #    listen       443 ssl;100     #    server_name  localhost;101 102     #    ssl_certificate      cert.pem;103     #    ssl_certificate_key  cert.key;104 105     #    ssl_session_cache    shared:SSL:1m;106     #    ssl_session_timeout  5m;107 108     #    ssl_ciphers  HIGH:!aNULL:!MD5;109     #    ssl_prefer_server_ciphers  on;110 111     #    location / {112     #        root   html;113     #        index  index.html index.htm;114     #    }115     #}116 117 118 upstream  php-handler {119     server 127.0.0.1:9000;120     #server unix:/var/run/php5-fpm.sock;121 }122  123  124 server {125 #    listen 80;126 #    server_name 你的域名;127     # enforce https128     rewrite ^(.*)$ https://$host$1 permanent;129 }130  131  132 server {133     listen 443 ssl;134     server_name 你的域名;135  136     ssl_certificate /etc/nginx/cert/nextcloud.crt;137     ssl_certificate_key /etc/nginx/cert/nextcloud.key;138  139     # Add headers to serve security related headers140     # Before enabling Strict-Transport-Security headers please read into this141     # topic first.142     add_header Strict-Transport-Security "max-age=15768000;143     #  includeSubDomains; preload;";144     add_header X-Content-Type-Options nosniff;145     #add_header X-Frame-Options "SAMEORIGIN"; #这里记得注释,这种没用146     add_header X-XSS-Protection "1; mode=block";147     add_header X-Robots-Tag none;148     add_header X-Download-Options noopen;149     add_header X-Permitted-Cross-Domain-Policies none;150  151     # Path to the root of your installation152     root /usr/share/nginx/html/nextcloud/;153  154  155     location = /robots.txt {156         allow all;157         log_not_found off;158         access_log off;159     }160  161  162     # The following 2 rules are only needed for the user_webfinger app.163     # Uncomment it if you're planning to use this app.164     #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;165     #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json166     # last;167  168  169     location = /.well-known/carddav {170       return 301 $scheme://$host/remote.php/dav;171     }172     location = /.well-known/caldav {173       return 301 $scheme://$host/remote.php/dav;174     }175  176  177     # set max upload size178     client_max_body_size 1024M;    # 上传文件最大限制,php.ini中也要修改,最后优化时会提及。179     fastcgi_buffers 64 4K;180  181     # Disable gzip to avoid the removal of the ETag header182     gzip on;183     gzip_vary on;184     gzip_comp_level 4;185     gzip_min_length 256;186     gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;187     gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;188  189  190     # Uncomment if your server is build with the ngx_pagespeed module191     # This module is currently not supported.192     #pagespeed off;193  194  195     error_page 403 /core/templates/403.php;196     error_page 404 /core/templates/404.php;197  198  199     location / {200         rewrite ^ /index.php$uri;201     }202  203  204     location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {205         deny all;206     }207     location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {208         deny all;209     }210  211     location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {212         include fastcgi_params;213         fastcgi_split_path_info ^(.+\.php)(/.*)$;214         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;215         fastcgi_param PATH_INFO $fastcgi_path_info;216         fastcgi_param HTTPS on;217         #Avoid sending the security headers twice218         fastcgi_param modHeadersAvailable true;219         fastcgi_param front_controller_active true;220         fastcgi_pass php-handler;221         fastcgi_intercept_errors on;222         fastcgi_request_buffering off;223     fastcgi_read_timeout 150;224     }225  226  227     location ~ ^/(?:updater|ocs-provider)(?:$|/) {228         try_files $uri/ =404;229         index index.php;230     }231  232  233     # Adding the cache control header for js and css files234     # Make sure it is BELOW the PHP block235     location ~* \.(?:css|js)$ {236         try_files $uri /index.php$uri$is_args$args;237         add_header Cache-Control "public, max-age=7200";238         # Add headers to serve security related headers (It is intended to239         # have those duplicated to the ones above)240         # Before enabling Strict-Transport-Security headers please read into241         # this topic first.242         add_header Strict-Transport-Security "max-age=15768000;includeSubDomains; preload;";243         add_header X-Content-Type-Options nosniff;244         add_header X-Frame-Options "SAMEORIGIN";245         add_header X-XSS-Protection "1; mode=block";246         add_header X-Robots-Tag none;247         add_header X-Download-Options noopen;248         add_header X-Permitted-Cross-Domain-Policies none;249         # Optional: Don't log access to assets250         access_log off;251     }252  253     location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {254         try_files $uri /index.php$uri$is_args$args;255         # Optional: Don't log access to other assets256         access_log off;257     }258 }259 260 }

View Code

虽然看这个代码有点乱,但是能看懂意思就不会乱了,而且我试过,不报错。

这样之后,基本就解决问题了。

值得提的是里面还有一个文件的代码,要看一下,/etc/nginx/conf.d/nextcloud.conf

这几个文件代码差不多一样。仔细看,这里我就放代码了。

 

©著作权归作者所有:来自51CTO博客作者天天打老虎的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【鸿蒙学院】鸿蒙IDE迎来重大更新,新特性足以让你尖叫
  2. 如何使用自定义镜像快速配置机器环境
  3. 0-10V转0-10V隔离器,信号转换器,信号分配模块
  4. Android平台 | 零代码快速集成AGC云托管服务
  5. maven 仓库地址配置大全
  6. Nacos注册中心 配置启动
  7. Istio Proxy【Envoy扩展】详解
  8. 如何用Python批量修改文件名?
  9. Spark分区器HashPartitioner和RangePartitioner代码详解

随机推荐

  1. Android 中创建avd和sdcard
  2. 图解Android - Android GUI 系统 (5) - A
  3. Android(安卓)Toast工具类大放送
  4. Android Handler消息机制从原理到应用详
  5. 什么是android market?国内三大类android
  6. adb通过TCP/IP来调试Android设备
  7. 分享:Android浏览器,用NDK C++做底层开发
  8. Facebook Home开启Android后应用时代
  9. android多语言切换失效
  10. Android即时消息介绍