安装必备包和软件
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备份文件,删除之。
发表回复