搭建自己私人网盘-Nextcloud

    技术2022-07-13  97

    前期需要软件

    远程SSH控制台软件(本教程使用 Remote Terminal 此为win10商店软件)[点我下载(此软件为Xshell)]支持Sftp的FTP软件(本教程使用 FileZilla)[点我下载]Centos或Ubuntu主机一台 (教程使用 centos7.7)

    注意事项

    推荐Ubuntu系统(由于个人偏向,本教程使用Centos)未标注哪个系统指令则两者都可适用若标题注释了哪个系统那只能适用那个系统或另一个系统不需要输此指令

    环境部署

    系统更新

    首先你要确保你的系统是最新的 yum update # (Centos) //Ubuntu需要两条指令来升级 apt-get update -y # (Ubuntu) apt-get upgrade -y # (Ubuntu)

    宝塔安装

    使用指令安装 //Centos指令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh //Ubuntu指令 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 安装所需环境 首次进入会让你安装基础程序【这里选LAMP个人喜欢这个,并且不需要自己添加伪静态】 这里选择版本为:Apache 2.4MySQL 5.7Pure-Ftpd 1.0.49PHP 7.3(并安装扩展名: fileinfo)phpMyAdmin 4.7 这里最好选编译安装,极速安装虽说快,但他不稳定,很不推荐.下载速度日常很慢(根据服务器性能,我这里就是晚上弄然后睡觉去了)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjBH144y-1593660792416)(https://i.loli.net/2020/02/27/W9fzhGstylQD12g.png)]

    删除PHP中的禁用函数(现在的PHP和以前相比已经不需要禁用函数了,反而导致程序错误) 按下键盘Ctrl+F开启搜索功能搜索disable_functions,并删除后面的禁用函数,随后重启PHP。

    新建网站+数据库,并将数据库账户密码记录,在下文会使用到

    在SSH部署时需手动cd到网站目录并保证目录为空。(都面板化了,手动删除4个文件应该不费事吧)

    安装Nextcloud

    克隆Nextcloud文件到本地 对于网盘系统有seafile、可道云,国外NextCloud,在自我衡量之后发现NextCloud更适合做网盘系统[前往Nextcloud下载页]下载NextCloud安装包,并上传至服务器或cd到你要部署的文件夹自行下方命令注意! 链接非统一性,在官方随时更新版本链接随时变更,链接最好前往官方获取链接 wget -c https://download.nextcloud.com/server/releases/nextcloud-18.0.1.zip

    解压压缩包nextcloud-18.0.1.zip

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eT7qI87P-1593660792423)(https://i.loli.net/2020/02/27/JvSYgMG3Do8Cy9Q.png)]

    移动nextcloud内安装文件,迁移至网站目录

    删除无用文件的nextcloud``nextcloud-18.0.1.zip,不删除容易出错 rm -rf nextcloud rm -rf nextcloud-18.0.1.zip 变更权限组合权限,权限选择「755」+用户组选择「www」,最后确定即可

    直接打开自己绑定的域名,将上面用记下来的数据库用户名和密码写入相应的位置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvtt604v-1593660792426)(https://i.loli.net/2020/02/27/5nyZKpmsxw4jiCb.png)]

    点击安装后就安装好啦

    维护模式指令

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

    解决后续问题

    在「设置」中「管理栏」的选项中有「安全与设置警告」,实际上没多大事,如果有强迫症,下方可以解决

    PHP 内存限制低于建议值 512MB

    宝塔php点击配置修改,编辑脚本内存限制,给512M即可

    PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。

    按照提示在php配置文件中搜索Zend ZendGuard Loader,添加:

    zend_extension=opcache.so

    PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置:

    按照提示在php配置文件中搜索opcache.enable=1,对应修改成:

    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

    该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。imagick

    宝塔php点击安装imagemagick。

    内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

    宝塔php点击安装redis ,编辑/config下的config.php在);前加入以下代码:

    'memcache.local' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ), ### 数据库中的一些列由于进行长整型转换而缺失。 > cd到nextcloud目录,执行 ```sh sudo -u www php occ db:convert-filecache-bigint

    数据库丢失了一些索引。

    cd到nextcloud目录,执行

    sudo -u www php occ db:add-missing-indices

    美化URL,去除入口文件index.php

    使用config.php+OCC命令生成.htaccess。编辑/config/config.php添加规则:

    'htaccess.RewriteBase' => '/',

    然后使用occ命令生成.htaccess文件:

    sudo -u www php occ maintenance:update:htaccess

    通过 HTTP 访问网站不安全。强烈建议您将服务器设置成要求使用HTTPS 协议

    去证书网站申请证书即可。

    HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒。为了提高安全性,建议参照security tips 中的说明启用HSTS。

    在站点配置文件里面添加如下代码,然后重启Apache即可。

    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

    安装后无法挂载外部共享目录

    安装PHP smbclient模块在php.ini里面启用smb模块 vim /usr/local/php/etc/php.ini //文件最后添加如下内容: [smb] extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/smbclient.so

    性能优化

    定时任务配置为 ‘Cron’

    sudo -u www crontab -e # 添加 */5 * * * * php -f /站点的绝对路径/cron.php # 这是我添加的,你们可以进行参考 */5 * * * * php -f /www/wwwroot/cloud.vlssu.com/cron.php lnmp restart
    Processed: 0.011, SQL: 10