标题 鉴于UNAS4.0中的NEXTCLOUD 版本过旧,升级也无法升级到最新版本,新手小白,不会了。想了想测试下DEBIAN10中安装nextcloud 。记录下安装内容。
硬件:虚拟机,CPU4核,内存2GB,硬盘40GB。
系统:debian-10.3.0-amd64-netinst.iso ,
增加SSH server服务,(后期增加竟然没有成功……。)
默认的,root是没有远程权限的,远程登录可以用普通用户登录后su切换到管理员模式。
安装好后,系统自带的XTerm, 中文是方框乱码,先解决它。
在root下
vi /etc/X11/app-defaults/XTerm
最后面增加:
*faceName:DejaVu sans Mono:pixelsize=18
*faceNameDoublesize:Microsoft YaHei:pixelsize=18
重启后生效。
--------------
没有ifconfig命令,安装它。
先用普通用户登录,然后:
切换到root
su
密码:
apt update
apt upgrade -y
apt install net-tools #(注意:net-tool不对,需要是net-tools)
apt install sudo
apt install snapd *wqy* zhcon #(安装需要的软件,参考了用户“挪不动
”中的信息。)
安装nextcloud 前先安装环境:
1、安装MariaDB。
apt install mariadb-server php-mysql -y
运行数据库安全向导。
mysql_secure_installation
回答以下问题,用强密码替换示例密码。
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: example-password
Re-enter new password: example-password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
为NextCloud创建一个数据库。
用你设置的密码登录到MySQL数据库:
mysql -u root -p
注:不分大小写,最后加分号。
MariaDB> CREATE DATABASE nextclouddb;
创建NextCloud用户并授予本地访问权,密码自己设置复杂些
MariaDB> GRANT ALL ON nextclouddb.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'example-password';
MariaDB> FLUSH PRIVILEGES;
MariaDB> EXIT;
2、安装PHP
安装PHP和必要的扩展。
apt install php php-gd php-mbstring php-dom php-curl php-zip php-simplexml php-xml -y
3、安装Apache
安装Apache和PHP模块。
apt install apache2 libapache2-mod-php -y
启动Apache并启用它在引导时运行
systemctl start apache2
systemctl enable apache2
4、安装NextCloud
下载最新版本的NextCloud,这里以20.0.4版为例。
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.tar.bz2
将发行版解压缩到/var/www/html目录中
tar -xjf nextcloud-20.0.4.tar.bz2 -C /var/www/html
发现它会在html中新建个文件夹nextcloud ,在访问该IP时会出现IP/nextcloud,不喜欢这样
把/var/www/html/nextcloud下面的文件移动到/var/www/html中。
cd /var/www/html
mv /var/www/html/nextcloud/* /var/www/html
然后发现,mv 无法移动文件名前面带点的 比如:.user.ini .htaccess
哎。
用笨方法,先复制一下再删除旧的目录:
cp -a /var/www/html/nextcloud/. /var/www/html #这里要带上 点 。
rm -rf /var/www/html/nextcloud/ #这里最后加不加 / 都会把nextcloud目录删除了,我记错了?
让Apache成为NextCloud文件的所有者。
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
安全与设置警告
接下来在浏览器中打开IP 。
出现在设置管理员和数据库用户及密码的地方。根据上面的设置好。
进到设置中先看看安全问题
好多的警告,开始修补吧。
提示:.htaccess文件不起作用。
解决.htaccess文件不起作用。
确认NextCloud用户数据文件存储位置,一般在/var/www/html/nextcloud/data下。
若要更换存储位置到/home/han/data,先复制(我的是)/var/www/html/data到/home/han/。
找到config.php,编辑文件
vi /var/www/html/config/config.php
这个目录应该是第一次登录网站时填写的数据保存目录。
‘datadirectory’ => ‘/var/www/html/data/’
改为 datadirectory’ => '/home/han/data 保存即可。
同样,用cp -a /var/www/html/data/. /home/han
rm -rf /var/www/html/data
再次进网站检测,没有这个提示了。
在查资料的时候发现有个selinux功能,不过debian 是默认不带的,就先不管了。
把nextcloud映射到外网,用官网工具扫描漏洞时发现,通过外网无法打开网站。
需要修改文件,把外网IP加上。
vi /var/www/html/config/config.php
找到以下位置增加上
array (
0 => '192.168.0.11'
1 => 'aa.bb.cc.dd' # 新增加内容
)
安全及设置警告
解决PHP内存限制低于建议值512MB。
找到PHP.INI文件位置修改。
root@bogon:/etc/php/7.3/apache2# vi php.ini
把memory_limit = 128M 改成512M,保存退出
再重启apache2服务
systemctl restart apache2
有个参数:
目录位置里面有参数:
/etc/apache2/apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
注:后来我把这个配置文件中所有的AllowOverride None 改成了AllowOverride ALL 。
查找命令,/ 表示根目录,查找所有目录,可替换为指定目录。
sudo find / -name 'php.ini'
解决 PHP configuration option output_buffering must be disabled
修改位置:
vi /etc/php/7.3/cli/php.ini
vi /etc/php/7.3/apache2/php.ini
systemctl restart apache2 #重启服务
output_buffering=4096 前面加分号,注释掉。
我改的是2个文件,改第二个文件的时候报错才消失。
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。
修改了/var/www/html/config/config.php (最后增加一行)导致无法打开网站,估计是没有安装apcu拓展。
'memcache.local' => '\OC\Memcache\APCu',
Nextcloud 性能优化-后台任务
过了几天发现“后台任务”提示有东西。可看文档推荐用cron。
看不明白文档,查BAIDU。
ssh连接服务器,用root登录
su #切换 root
crontab -e -u www-data # 使用apache2的www-data用户建立定时任务
*/15 * * * * php -f /var/www/html/cron.php #添加一条任务,每15分钟执行一次后台任务,目录要是自己的真实目录。保存后退出。我也不明白4个*的意思。
sudo -u www-data php -f /var/www/html/cron.php #执行一下,看看有没有错误。
service cron restart # 重启cron服务,使其生效。
数据库丢失了一些索引。
在数据表 “oc_cards” 中无法找到索引 “cards_abiduri”。
sudo -u www-data php occ db:add-missing-indices
内存缓存未配置
查了好多资料还是按NEXTCLOUD的20版本说明操作才成功了。
在 Red Hat/CentOS/Fedora 上安装:php-pecl-apcu.
在 Debian/Ubuntu/Mint 上安装 php-apcu.
apt install php-apcu
然后修改nextcloud目录下的config.php文件
把注释的内容去掉,使其生效
'memcache.local' => '\OC\Memcache\APCu',
你的网页服务器未正确设置以解析“/.well-known/caldav”
先修改:AllowOverride ALL 参数,前面说过我已经修改了。
文件位置: /etc/apache2/apache2.conf
开启rewrite,并重启apache2服务。
sudo a2enmod rewrite
systemctl restart apache2 # 我的debian10会提示执行该命令重启
该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。****
apt update # 这个文章断断续续写了好久,先更新下。
apt upgrade -y
apt install php-intl php-imagick php-bcmath php-gmp
systemctl restart apache2
安装完后重启,看网上的 php72.-fpm restart 这儿不管用,没有fpm啊。通过度娘才知道:
没有php进程说明是通过动态链接库解析的php,就是libphp.so,在apache配置文件里能找到相关的配置,
修改php配置后重启apache就能使php配置生效,使用php-fpm的话需要重新编译php,
在configure的时候加上–enable-fpm参数,并且需要重新配置apache,参考从apache mod_php到php-fpm
最到这一步,就只剩下:https的问题了。因为是同网固定IP访问,还没有想好怎么弄它。
再另记一篇吧。这个文章太长了。
升级nextcloud
建议通过命令行进行升级
1、进入nextcloud的目录,执行如下命令
cd /var/www/html # 我的目录是这个位置
sudo -u www-data php updater/updater.phar #我的用户名
sudo -u www-data php occ maintenance:mode --off #关闭维护模式
参考:
https://blog.youkuaiyun.com/qq_38461724/article/details/107178564
https://blog.youkuaiyun.com/unmobile/article/details/100148070
https://zhidao.baidu.com/question/369927030189308004.html
http://www.youceba.com/136/
https://www.cnblogs.com/liujizhou/p/13179821.html
https://blog.youkuaiyun.com/qq_36735409/article/details/78032144
https://blog.youkuaiyun.com/g313105910/article/details/106381380
https://blog.youkuaiyun.com/xinew4712/article/details/106138941/ (改成HTTPS访问)
https://blog.youkuaiyun.com/gui66497/article/details/79289047?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2&spm=1001.2101.3001.4242 (IP地址开启https)
https://www.himstudy.net/nextcloud%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96-%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1cron/ (后台任务cron)
https://zimohan.com/it/ncwarning.html (消除NextCloud后台的警告信息)
https://www.orgleaf.com/2203.html