centos6.5下使用lnmp架构安装nextcloud云盘
最近两年随着各大网盘纷纷关闭,百度云也早早的就开始限速,文件的安全也没有保障。所以还不如自己搭建一个网盘。网上看了下,发现有一个nextcloud比较好用。支持多平台客户端,支持分享,使用操作简单。支持插件扩展,文件预览,在线协作。
安装nginx
wget http://nginx.org/download/nginx-1.10.3.tar.gz tar -zxf nginx-1.10.3.tar.gz && cd nginx-1.10.3 ./configure --prefix=/usr/local/data/nginx --user=nginx --group=nginx --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module make && make install
2.安装配置php
yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum --enablerepo=remi-php56 install php php-fpm php-mysql php-gd php-xml php-redis php-libs php-devel php-zlib php-mbstring
nginx 和php-fpm 的运行用户这里使用nginx
vim /etc/php-fpm.conf user = nginx group = nginx listen = 127.0.0.1:9000 env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
3.安装mysql
yum -y install mysql mysql-server service mysqld start
4.建库,授权
CREATE DATABASE nextcloud_db;GRANT ALL ON nextcloud_db.* TO 'nextcloud'@'%' IDENTIFIED BY 'nextcloud'; //注意一定要加 "%",否则无法让网络让任何人上传文件 FLUSH PRIVILEGES;
5.安装nextcloud
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip --no-check-certificate unzip nextcloud-10.0.2.zip mv nextcloud /usr/local/data/nginx/html /usr/local/data/nginx/html chown -R nginx.nginx
创建数据目录,这里建议数据目录不要和web目录放到一起
/usr/local/data/nginx/html/nextcloud/data
6.申请证书
为了网盘的安全,有必要使用https 证书,这里可以在阿里云后台申请免费的DV证书
7.配置nginx
创建虚拟主机文件
cd /usr/local/data/nginx/conf vim nextcloud.conf upstream php-handler { server 127.0.0.1:9000; }server {listen 80; server_name cloud.nextcloud.com; return 301 https://$server_name$request_uri;}server {listen 443 ssl;server_name cloud.nextcloud.com; ssl_certificate /usr/local/data/nginx/conf/nextcloud.crt; ssl_certificate_key /usr/local/data/nginx/conf/nextcloud.key; #添加如下header主要为了安全 add_header Strict-Transport-Security "max-age=15768000;includeSubDomains; preload;";add_header X-Content-Type-Options nosniff;add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Robots-Tag none;add_header X-Download-Options noopen;add_header X-Permitted-Cross-Domain-Policies none; #nextcloud代码目录 root /usr/local/data/nginx/html/nextcloud/; location = /robots.txt {allow all;log_not_found off;access_log off;} #为了支持user_webfinger app rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; #这儿是为了支持日历和联系人,建议加上 location = /.well-known/carddav {return 301 $scheme://$host/remote.php/dav;}location = /.well-known/caldav {return 301 $scheme://$host/remote.php/dav;} #设置上传文件的最大大小,php也得修改 client_max_body_size 512M;fastcgi_buffers 64 4K;# Disable gzip to avoid the removal of the ETag headergzip off; error_page 403 /core/templates/403.php;error_page 404 /core/templates/404.php; #重要的:将所有请求转发到index.php上 location / {rewrite ^ /index.php$uri; } #安全设置,禁止访问部分敏感内容 location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {deny all;}location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {deny all;}location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {include fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.*)$;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param HTTPS on;#Avoid sending the security headers twicefastcgi_param modHeadersAvailable true;fastcgi_param front_controller_active true;fastcgi_pass php-handler;fastcgi_intercept_errors on;fastcgi_request_buffering off; } #安全设置,禁止访问部分敏感内容 location ~ ^/(?:updater|ocs-provider)(?:$|/) {try_files $uri/ =404;index index.php;} # 添加js和css文件的缓存控制头 location ~* \.(?:css|js)$ {try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; add_header Strict-Transport-Security "max-age=15768000;includeSubDomains; preload;";add_header X-Content-Type-Options nosniff;add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Robots-Tag none;add_header X-Download-Options noopen;add_header X-Permitted-Cross-Domain-Policies none; access_log off;}location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {try_files $uri /index.php$uri$is_args$args; access_log off;}}
vim nginx.conf include nextcloud.conf; service nginx start
8.配置php上传大小
vim /etc/php.ini max_execution_time = 0 post_max_size = 512M upload_max_filesize = 512M service php-fpm start
9.配置nextcloud
10.nextcloud 配置redis缓存
使用Redis做内存缓存可以有效提升程序运行速度。
curl -O http://download.redis.io/releases/redis-3.2.8.tar.gz tar -zxvf redis-3.2.8.tar.gz cd redis-3.2.8/deps/ make geohash-int hiredis jemalloc linenoise lua cd .. make && make install cd utils/ ./install_server.sh
配置redis
vim /etc/redis/6379.conf# requirepass foobared requirepass ExpvUwNOk9XRawC8 bind 192.168.40.200
启动
redis-server /etc/redis/6379.conf
配置nextcloud
cd /usr/local/nginx/html/nextcloud/config vim config.php 'memcache.local' => '\OC\Memcache\Redis', 'redis' => array( 'host' => '192.168.40.200', 'port' => 6379, 'password' => 'ExpvUwNOk9XRawC8', ),
刷新页面
设置定时
*/15 * * * * /usr/bin/php /usr/local/nginx/html/nextcloud/cron.php >/dev/null
参考文档
https://docs.nextcloud.com/server/10/admin_manual/installation/index.html

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
构建DSC 资源的”另类写法”
构建DSC 资源的"另类写法" 今天我们要说的另类写法并不是什么新鲜东西 而且 这篇博客也迟到了一年甚至更多, 虽然我个人采用这个写法的资源很早之前就在 Gallery发布,并且持续更新, (有关我个人发布资源 请在 Gallery 搜索 strike 有任何好的建议或者资源bug或者其他问题也请直接联系我) 却总没想起认真的总结这个写法 这个写法并不是我在2014年发布的那个写法 当然新的PS V5 5.1依然支持那个写法 但是更多的资源 都采用这个新的写法,由于我个人并没有找到这个写法的官方的确切的说明 我姑且称之为 "嵌套类",事实上 就是嵌套 一个CIM类的实例中的属性是另外一个类的实例 说着别扭 但是很好理解 首先我们看看以前的MOF中的定义 下图是以前的类的定义 , 如果你需要多个属性的话你还可以继续添加 当然 你可以硬编码这些 , 你也可以用工具完成 这里不在多说 废话不多说 下面来看这个 另类的写法 这是MOF 中对资源的定义 看起来就是多了一个类而已 当我们用 (Get-DscResource t_Demo).Properties 查看这资源时候你会发现其中的一个属性...
- 下一篇
扫描端口占用情况的python脚本
之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况。由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结。 一、python脚本实现扫描端口: pthon2下代码如下(当时的环境): #!/usr/bin/envpython #-*-coding:utf-8-*- #usedforpthon2.* importsocket,time,thread socket.setdefaulttimeout(3)#设置默认超时时间 defsocket_port(ip,port): """ 输入IP和端口号,扫描判断端口是否占用 """ try: ifport>=65535: printu'端口扫描结束' s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) result=s.connect_ex((ip,port)) ifresult==0: lock.acquire() printip,u':',port,u'端口已占用' lock.release() except: pri...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块