上一次记录了nextcloud的安装过程,登入到系统后,后台记录了一些设置上的错误和警告,现在我们来优化它;
安全与设置警告
您的每项配置对于实例的安全性和性能都至关重要。 为了帮助您,我们正在做一些自动检查。 有关详细信息,请参阅文档链接。
关于您的设置有一些错误。
- PHP 内存限制低于建议值 512 MB。
- 您正在通过不安全的 HTTP 访问网站。我们强烈建议您在服务器上启用 HTTPS,更多资讯请参见安全贴士 ↗。如果不这样设置,某些重要网页功能,如“复制到剪贴板”和“Service Workers”将无法工作。
- 4 errors in the logs since January 10, 2024
- 此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。
- 当前正在使用数据库处理事务性文件锁定。若有内存缓存可用,请进行配置以提升性能。 更多细节,请参见文档 ↗。
- 未配置内存缓存。若有内存缓存可用,请进行配置以提升性能。 更多细节,请参见文档 ↗。
- 该实例缺少一些推荐的PHP模块。强烈建议您安装以下模块以提升性能和兼容性:bz2 更多细节,请参见文档 ↗。
- 您在安装过程中未设置默认的国际区号。缺失国际区号的电话号码时将使用默认的国际区号进行验证。要允许无国际区号的电话,请在您的配置文件中添加 “default_phone_region” 设置选项并依照 ISO 3166-1 进行设置。 更多细节,请参见文档 ↗。
- 您尚未配置电子邮件服务器或尚未验证配置。请在“基本设置”中进行配置。配置完毕后,请点击表单下方的“发送电子邮件”按钮来验证您的设置。 更多细节,请参见文档 ↗。
通过我们的安全检查 ↗检查您 Nextcloud 的安全
版本
Nextcloud Hub 7 (28.0.1)
1 、PHP 内存限制低于建议值 512 MB。
/etc/php/*/apache2/php.ini #PHP版本号,安装的版本不同而不同;
这里将memory_limit改为2048M。
更改完后需要重新启动apache2
sudo systemctl restart apache2
2、您正在通过不安全的 HTTP 访问网站。我们强烈建议您在服务器上启用 HTTPS,更多资讯请参见安全贴士 ↗。如果不这样设置,某些重要网页功能,如“复制到剪贴板”和“Service Workers”将无法工作。
启用域名,申请证书,并上传;
sudo vim /etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile /etc/ssl/certs/*.pem
SSLCertificateKeyFile /etc/ssl/private/*.key
同时加入 以下代码,解决、”Strict-Transport-Security” HTTP 头未设为至少 “15552000” 秒。为了提高安全性,建议启用 HSTS,参考步骤见 安全小贴士 ↗ 的错误;
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
参考全部代码:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName test.nextcloud.com
#增加
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
<IfModule mod_dav.c>
Dav off
</IfModule>
#增加结束
DocumentRoot /var/www/nextcloud/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
#修改自己的ssl文件目录及名称;
SSLCertificateFile /etc/ssl/certs/netiii.com.pem
SSLCertificateKeyFile /etc/ssl/private/netiii.com.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
启用默认的default-ssl.conf
a2ensite default-ssl.conf
3、 errors in the logs since January 10, 2024
Nextcloud的日志文件位于数据目录中 nextcloud/data/nextcloud.log
data目录需要管理员 su,否则可能登入不进去;
查看下如果没有致命错误,可执行以下命令:
echo "" > nextcloud.log
4、此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。
sudo apt install libmagickcore-6.q16-6-extra
sudo systemctl restart apache2
5、该实例缺少一些推荐的PHP模块。强烈建议您安装以下模块以提升性能和兼容性:bz2 更多细节,请参见文档 ↗。
sudo apt install php-bz2
sudo systemctl restart apache2
6、您在安装过程中未设置默认的国际区号。缺失国际区号的电话号码时将使用默认的国际区号进行验证。要允许无国际区号的电话,请在您的配置文件中添加 “default_phone_region” 设置选项并依照 ISO 3166-1 进行设置。 更多细节,请参见文档 ↗。
编辑//var/www/nextcloud/config/config.php
增加
sudo vim /var/www/nextcloud/config/config.php
增加
'default_phone_region' => 'CN',
7、您尚未配置电子邮件服务器或尚未验证配置。请在“基本设置”中进行配置。配置完毕后,请点击表单下方的“发送电子邮件”按钮来验证您的设置。 更多细节,请参见文档 ↗。
系统管理员登入后台->管理设置->基本设置
设置SMTP邮箱即可;
8、以下错误
PHP 设置选项 output_buffering 必须被禁用
- 您的数据目录和文件似乎可以从互联网访问。这是因为 .htaccess 文件无效。强烈建议您配置您的 web 服务器,使数据目录不再可访问,或将数据目录移到 web 服务器文档根目录之外。
- 您的网页服务器没有正确配置以解析“/ocm-provider/”。这很可能与 web 服务器配置没有更新以发布这个文件夹有关。请将您的配置与 Apache 的“.htaccess”文件中的默认重写规则或与这个文档页面↗中提供的 Nginx 配置进行比较。在 Nginx 配置中通常需要修改以“location ~”开头的行。
- 您的网页服务器未正确设置以解析“/.well-known/webfinger”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.well-known/nodeinfo”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档↗。
- 修改/etc/apache2/apache2.conf
sudo vim /etc/apache2/apache2.conf
<Directory /var/www/nextcloud/>
Options Indexes FollowSymLinks
AllowOverride None #None 改成all
Require all granted
9 、当前正在使用数据库处理事务性文件锁定。若有内存缓存可用,请进行配置以提升性能。 更多细节,请参见文档 ↗。
- 未配置内存缓存。若有内存缓存可用,请进行配置以提升性能。 更多细节,请参见文档 ↗。关于内存缓存的一些配置,下边是官方文档;
https://docs.nextcloud.com/server/28/admin_manual/configuration_server/caching_configuration.html
关于内存缓存的优化官方给出了一些建议:
个人家庭服务器:APCu
单服务器组织:Redis 用于除本地内存缓存之外的所有内容
拥有集群的组织:使用 APCu 进行本地缓存和 Redis 集群或 Memcached 集群
按照单服务器组织优化,我们需要确保安装了apcu和Redis模块;
apt-get install redis-server php-redis php-apcu
查看redis运行状况
sudo systemctl status redis
如果正常启动修改 /var/www/nextcloud/config/config.php
加入一下代码:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
重新启动:
sudo systemctl restart apache2
至此所有检查已通过。
主题测试文章,只做测试使用。发布者:hobo,转转请注明出处:https://www.netiii.com/4105/