一、正确安装wsl和ubuntu(20.04)
二、配置ubuntu
1、设置ubuntu root用户密码(如无安全需要可省略)
sudo passwd root
2、检查所有可更新的包
sudo apt update
3、更新已安装的软件包
sudo apt upgrade
三、安装apache
四、安装数据库(MySQL)
五、安装php
六、安装nextcloud
下载最新版nextcloud至/tmp目录,下载连接可至官网获取 Install – Nextcloud
wget -P /tmp https://download.nextcloud.com/server/releases/nextcloud-20.0.7.zip
解压下载包至 /var/www/html
sudo unzip /tmp/nextcloud-20.0.4.zip -d /var/www/html
授予www-data用户权限
在debian/ubuntu上,www-data是默认运行web服务的用户/组,一般在通过apt安装web服务程序时生成。提供web服务的文件夹/文件一般所有权要设置成www-data的。
不过,你也可以不用www-data,自己建一个新的用户和组,然后对apache/ngnix等web服务程序进行配置。不过这样比较麻烦。
如果你是编译的,不会生成www-data用户/组,需要自己弄
sudo chown www-data:www-data /var/www/html/nextcloud -R
sudo chmod -R 755 /var/www/html/nextcloud/
创建用于nextcloud的数据库和数据库用户
sudo mysql -u root -p
mysql> create database nextcloud;
mysql> create user 'nextcloud'@'localhost' identified by 'nextcloud用户的密码';
mysql> grant all privileges on nextcloud.* to 'nextcloud'@'localhost';
mysql> flush privileges;
mysql> quit
创建nextcloud的配置文件
cd /etc/apache2/sites-available/
sudo vim nextcloud.conf
输入以下内容保存并退出
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
重启apache
sudo service apache2 reload
激活虚拟主机配置
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime setenvif ssl
sudo service apache2 restart
访问 http://服务器ip/nextcloud,如果出现如下缺少模块提示则安装相应模块
安装缺少的模块
sudo apt install php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp
sudo service apache2 restart
再次访问 http://服务器ip/nextcloud,终于到了安装页
按提示填入管理员账号/密码,数据目录、数据库连接信息后按完成按钮即可。如果希望将数据库目录挂载到ntfs的目录,首先要在此处修改数据目录,wsl里可直接访问win10的系统目录,比如我在win10环境f盘的根目录下创建了一个nextcloud用作数据目录
将/mnt/f/nextcloud填入数据目录即可,点击完成按钮后,数据目录里会自动创建以下文件
七、将nextcloud相关服务设置为开机自启
1、在Ubuntu中的etc目录下创建init.wsl
sudo vim /etc/init.wsl
输入以下内容保存并退出,nextcloud依赖mysql和apache2,下面的脚本即启动这两个服务。
#! /bin/sh
/etc/init.d/mysql start
/etc/init.d/apache2 start
然后执行下面的命令
sudo chmod +x init.wsl
2、在win10中按win+r打开的运行窗口输入“shell:startup”
3、在打开的目录中新建文件"linux-start.vbs",输入以下内容保存并关闭
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d ubuntu -u root /etc/init.wsl", vbhide
4、然后重启电脑后在浏览器输入 “http://localhost/nextcloud”查看是否能访问
八、允许通过不同ip和域名访问
如果不设置则会提示下面的错误
设置方法:进入nextcloud目录下的config目录,比如我的是 /var/www/html/nextcloud/config,然后编辑config.php文件,加入以下代码,然后保存退出
1 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1':$_SERVER['SERVER_NAME']
重启apache
sudo service apache2 restart
至此,安装已完成,后续使用欢迎加微信交流