ubuntu 16.04 安装 nextcloud 12

安装必备包和软件

sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0
sudo apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
sudo apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

sudo unzip nextcloud-x.y.z.zip

将其复制到/var/www/nextcloud中

设置apache2

修改/etc/apache2/ports.conf,其中9000和11443分别为nextcloud的http和https端口

Listen 80 Listen 9000 <IfModule ssl_module>         Listen 11443 </IfModule>   <IfModule mod_gnutls.c>         Listen 11443 </IfModule>

添加apache2中nextcloud的配置文件,/etc/apache2/sites-available/next.ssl.conf

<IfModule mod_ssl.c>         <VirtualHost _default_:11443>                 ServerAdmin webmaster@localhost                 ServerName nextcloud.dormanthink.cc                 DocumentRoot /var/www/nextcloud

然后将其enable

sudo a2ensite next.ssl.conf

设置mysql

进入phpmyadmin,增加nextcloud用户及同名数据库。

 

设置nextcloud

编辑/var/www/nextcloud/config/config.php如下,

<?php $CONFIG = array (   ‘instanceid’ => ‘ocdfzz5o09rc’,   ‘passwordsalt’ => ‘D4L1bzi7AnDRslBjpN88eAz1shUpdC’,   ‘secret’ => ‘+s2H8A5OpqK8Paxnq+36paoczFLuqbYvQVG2CaV3yXsX2j2N’,   ‘trusted_domains’ =>   array (     0 => ‘nextcloud.dormanthink.cc:9000’,     1 => ‘nextcloud.dormanthink.cc:11443’,   ),   ‘datadirectory’ => ‘/media/disk1_A/Nextcloud/data/’,   ‘overwrite.cli.url’ => ‘https://nextcloud.dormanthink.cc:11443‘,   ‘dbtype’ => ‘mysql’,   ‘version’ => ‘13.0.1.1’,   ‘dbname’ => ‘nextcloud’,   ‘dbhost’ => ‘localhost’,   ‘dbport’ => ”,   ‘dbtableprefix’ => ‘oc_’,   ‘mysql.utf8mb4’ => true,   ‘dbuser’ => ‘oc_richard’,   ‘dbpassword’ => ‘or9vgUg935jbu7WjNwTsr5jY7wMMnK’,   ‘installed’ => true, );

 

重启apache2服务

sudo service apache2 reload

sudo service apache2 stop

sudo service apache2 start

 

sudo a2ensite nextcloud.conf

sudo service apache2 reload

 

配置内存缓存

由于客户端在同步时,存在server lock的问题,只能用redis来解决。

参考: https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html

sudo apt install redis-server php-redis

查看是否已经启动服务

ps ax | grep redis

激活redis mod

sudo phpenmod redis

php –ri redis

编辑/var/www/nextcloud/config/config.php,添加如下行

‘memcache.local’ => ‘\OC\Memcache\Redis’,   ‘memcache.locking’ => ‘\OC\Memcache\Redis’,   ‘redis’ =>   array (     ‘host’ => ‘localhost’,     ‘port’ => 6379,     ),

 

配置cron执行计划任务

sudo crontab -u www-data -e

*/15  *  *  *  * php -f /var/www/nextcloud/cron.php

 

Over~~

https://nextcloud.dormanthink.cc:11443

 

常见问题

mariadb的问题

清除mariadb-server的安装问题

sudo apt-get purge mysql* mariadb*
sudo apt-get autoremove

sudo rm /var/cache/apt/archives/mariadb* mysql*

sudo rm /etc/systemd/system/mysqld.service
sudo rm /etc/systemd/system/mysql.service

sudo apt install mariadb-server

记得进mysql需要用到命令为”sudo mysql”,初始密码为空。

参考: https://mariadb.com/kb/en/mariadb/set-password/

设置一个root密码12345678

新的mysql必须要用sudo登录,所以phpmyadmin不能用root登录了。

只能先新建一个用户

sudo mysql –user=root mysql

CREATE USER ‘phpmyadmin’@’localhost’ IDENTIFIED BY ‘some_pass’;
GRANT ALL PRIVILEGES ON *.* TO ‘phpmyadmin’@’localhost’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

HSTS安全问题

The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.

启用mod_headers

sudo a2enmod headers

在apache2的owncloud.conf中<VirtualHost *:443>入口中加入如下代码:

<IfModule mod_headers.c>   Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains” </IfModule>

重启apache2服务。

 

PHP OPCache配置

sudo vi /etc/php/7.0/apache2/php.ini

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

升级出现无法copy config的问题

1.查看config.php文件,去掉最后data后面的斜杠,

‘datadirectory’ => ‘/media/disk1_A/Nextcloud/data’

2.查看/var/www/nextcloud/config目录下,是否有root用户的config备份文件,删除之。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注