[教程]宝塔+命令行方式安装nextcloud

写在前面

为什么会有这个教程,因为之前买了个IKOULA月付€4.5的便宜杜甫

博主一上来就给安装了宝塔,然后一套流程操作下来,web方式安装nextcloud,总是失败

后来记得nextcloud提供了命令行方式安装的办法,姑且一试,成功了

记录下来,以备将来可能需要用到

博主喜好用debian9

很简单,合计四步,完成。

第一步:安装宝塔7.1.1

Centos安装命令:

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

试验性Centos/Ubuntu/Debian安装命令支持ipv6,注意使用root权限执行此命令 (支持Centos8)

curl -sSO http://download.bt.cn/install/new_install.sh && bash new_install.sh


Ubuntu/Deepin安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

Debian安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

Fedora安装命令:

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

Linux面板7.1.0升级命令:
curl http://download.bt.cn/install/update6.sh|bash

博主使用debian的,用debian的代码,如上debian安装命令

首次登录宝塔管理面板,会提示让你安装lnmp或者lamp,博主喜好lnmp,注意php选择7.2及以上,nextcloud 18.0.2必须7.2以上版本。

第二步:新建站点,数据库,都是用默认的配置即可,然后获取一下ssl

在如上图,3的位置,写上你自己的域名

ssl中签个https,就这么完事了。

第三步:从nextcloud官网远程下载代码包到机器上

https://download.nextcloud.com/server/releases/nextcloud-18.0.2.zip

解压到新建站点的文件夹下即可

注:权限都是默认的就行

第四步:使用命令行方式安装nextcloud

ssh命令行软件xshell或其他的软件中,运行如下:

apt install sudo  #安装sudo,默认debian不带这个命令
cd /www/wwwroot/你的域名文件夹
sudo -u www php occ  maintenance:install --database "mysql" --database-name "宝塔新建的数据库名字"  --database-user "宝塔中新建数据库的用户名" --database-pass "宝塔中新建数据库的密码" --admin-user "你想要的用户名" --admin-pass "你想要的密码"

修改上面代码中你对于的内容,然后,贴入ssh中运行就好。需要耐心等一小会儿。

跑完,应该就好了,但是需要到下图文件中(/www/wwwroot/你的域名/config),进行设置域名

保存即可通过web访问啦

nextcloud后台上做一些设置,不在提示有问题

fileinfo,安装解决fileinfo的提示

消除nextcloud“内存缓存未配置”的警告,用apcu来解决

 'memcache.local' => '\OC\Memcache\APCu', 

opcache,解决

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

所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持。

1.修改MySQL配置文件,这里以MySQL 5.6 为例

在 [mysqld] 配置段里加入

innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

2.修改nextcloud的数据库的字符集和排序规则

ALTER DATABASE nextcloud所在的数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

可以用phpmyadmin执行

保存后重启MySQL

3.修改nextcloud配置文件config.php

4.修复数据库

同样是occ命令,需要在nextcloud的安装根目录下执行


apt install sudo # 如果提示缺少命令sudo的话,那就安装一下
sudo -u www php occ maintenance:repair

重启nginx,php

5.修复其他一下(忘记截图了)

add_header Strict-Transport-Security "max-age=63072000;";
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
}
location = /.well-known/carddav {
  return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
  return 301 $scheme://$host/remote.php/dav;
}
# nextcloud 22 又多了下面两条,需要增加,添加后,使用浏览器无痕模式,再次访问,不再提示!!!!
#您的网页服务器未正确设置以解析“/.well-known/webfinger”。更多信息请参见文档↗。
#您的网页服务器未正确设置以解析“/.well-known/nodeinfo”。更多信息请参见文档↗。
location = /.well-known/webfinger {
  return 301 $scheme://$host/index.php/.well-known/webfinger;
 }
location = /.well-known/nodeinfo {
  return 301 $scheme://$host/index.php/.well-known/nodeinfo;
 }

6.还有一些

# ssh中,cd到你的网站跟目录下
sudo -u www php occ db:add-missing-indices
sudo -u www php occ db:convert-filecache-bigint

7,PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(”PATH”) 测试时仅返回空结果

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

8,需要在线编辑offcie文档的朋友,需要安装 Community Document Server

这个插件太大了,200多M,nextcloud安装的时候,提供了自动安装,但是我没有成功过

1.去nextcloud下载这个app

2.把这个app压缩包放到网站/apps文件夹下面

3.解压它

4.去你nextcloud后台,启用它

注,如果你是用宝塔搭建的环境,还需要去php管理-禁用函数-proc_open,删除它

9,您的网页服务器未正确设置以解析“/.well-known/caldav”及您的网页服务器未正确设置以解析“/.well-known/carddav”

在站点配置的伪静态里添加下面的代码

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

10,Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.

同1,在伪静态中增加下列代码:

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ 
{
deny all;
}

10、宝塔面板无法安装PHP扩展 ImageMagick 的解决方法

先去安装下面这个

# debian系 
apt-get install libmagickwand-dev

# centos系
yum update
yum install ImageMagick-devel

然后再去php中安装该扩展,即可