CentOS7系统VPS搭建个人网盘Nextcloud并优化,逃离百度云

百度网盘已经从多年前不限速大容量逐渐变成近年来不给钱不给下的状态了。不过这当然可以理解,毕竟人家服务器都是贵上天的。那么可不可以搭建个人网盘呢?当然可以咯。虽然也要花钱,但会更心安一些。其实最重要的一点,小视频再也不会变成8秒小白教育片啦!


前期准备

  • 一台可以SSH连接的Linux VPS服务器,本文使用CentOS7系统。
  • 一个炫酷的域名。
  • 一双健康的手。

解析域名

(本文以阿里云域名解析示例)

  • 阿里云后台域名解析,添加记录——记录类型默认A记录——主机记录为二级域名,即自己想给自己网盘起的名字,如cloud——记录值为自己服务器的IP。添加完毕如图所示。
    记录解析示例

安装面板

  • SSH连接到VPS,根据宝塔面板官网给出的CentOS安装命令进行安装。代码如下。

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

  • 安装完毕后,根据给出的面板连接、用户名及密码从浏览器打开服务器宝塔面板。如果之后忘记了此三项面板信息,可以在服务器中使用以下命令查出。

    bt default

  • 打开面板后,按照提示修改一下端口,防止服务器被攻击。

安装LNMP环境及缓存器

  • 点击面板左侧软件商店,安装MySQL、PHP7.2和Nginx,均选择快速安装即可。PHP注意版本,不要装7.3噢。
  • 安装完毕后找到PHP7.2,右侧“设置”——“安装扩展”,安装fileinfo、opcache和redis。其中fileinfo酌情安装,如果服务器内存不到1G最好不要安装。

创建网站并下载程序到服务器

  • 点击面板左侧网站,新建网站,输入已经解析到服务器的二级域名,例如cloud.xxx.com。数据库一定要创建,默认utf-8即可,用户名密码自定义。
    添加网站示例
  • 点击面板左侧文件,打开“根目录/www/wwwroot/你的二级域名”,删除里面全部的文件。删除不掉的.ini文件可以忽略。
  • 点击远程下载,复制此Nextcloud官网链接直接下载程序到服务器。解压,将解压后文件夹内的所有文件剪切到网站中,即“根目录/www/wwwroot/你的二级域名”中,如图所示。
    剪切文件位置示例

安装Nextcloud

  • 浏览器打开你的二级域名,即会出现Nextcloud安装界面。这里我懒得截图了,简单说一下:用户名和密码自定义,相当于以后登陆网盘的账号。存储 & 数据库选择MySQL,数据库用户/密码和数据库名三条信息可以在宝塔面板的左侧“数据库中找到”,如下图所示。按照自己的数据库信息填入,最后点击安装完成,即可慢慢等待~
    数据库三条信息
  • 安装完毕后,网页会自动刷新,出现你的网盘界面咯!此时就可以正常使用网盘了。

Nextcloud优化

当然,网盘也是需要优化的,例如缓存优化等等,以达到最佳体验。

  • 点击宝塔面板左侧“网站”,找到自己的网站“设置”,“伪静态”,填入下方代码。

    location / {
        rewrite ^ /index.php$request_uri;
    }
    
    location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
        deny all;
    }
    
    location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
        deny all;
    }
    
    location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
        try_files $uri/ =404;
        index index.php;
    }
    
    location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
        try_files $uri /index.php$request_uri;
        add_header Cache-Control "public, max-age=15778463";
        add_header X-Content-Type-Options nosniff;
        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;
        add_header Referrer-Policy no-referrer;
    
        access_log off;
    }
    
    location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
        try_files $uri /index.php$request_uri;
        access_log off;
    }
  • 继续在“配置文件”处,SSL相关设置上方,添加如下代码。如图所示。

    location = /.well-known/carddav {
      return 301 $scheme://$host/remote.php/dav;
    }
    
    location = /.well-known/caldav {
      return 301 $scheme://$host/remote.php/dav;
    }

配置文件示例

  • 打开面板左侧“文件”,找到“根目录/www/wwwroot/你的二级域名/config/config.php”,点击编辑,在如图位置添加下方缓存器代码。

    'memcache.locking' => '\OC\Memcache\Redis',
    'memcache.distributed' => '\OC\Memcache\Redis',
    'redis' => [
         'host' => '127.0.0.1',
         'port' => 6379,
    ],

缓存代码示例

  • 再次从面板左侧“文件”找到“根目录/www/server/php/72/etc/php-fpm.conf",点击编辑,在最后一行添加下方代码。

    env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

  • 打开面板左侧“软件商店”,找到PHP7.2,点击设置,点击左侧配置文件,拉到最下方,找到如图所示的位置,将zend_extension那行下方的所有代码替换为下方代码,如图所示。

    opcache.enable=1
    opcache.enable_cli=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.memory_consumption=128
    opcache.save_comments=1
    opcache.revalidate_freq=1

opcache修改示例

  • 最后,点击面板左侧“首页”,向下拉找到PHP,点击重启一下,就可以享受优化过的Nextcloud个人网盘服务咯!~
    Nextcloud界面示例图

注意事项

  1. 网盘存储大小取决于你的服务器硬盘大小。
  2. 之所以选择Nextcloud,是因为界面友好,而且支持iOS/Android多平台客户端,可以随时使用手机管理网盘,方便快捷。
我来叭叭一下