nextcloud 係由 owncloud 滋生出嚟,事源有份參與開發 owncloud 的工程師不滿 owncloud 嘅原碼開放政策,一同離隊,另外成立公司再搞過,由於開源所以很快就聚集咗一群有心有力人士,搞得有聲有色,特別係 WebDAV API 方面做得比較好,仲有 C# 嘅 library 可以用,可以上 Xamarin 添,於是,我又學人跳槽。😀
首先,準備一隻 Ubuntu LAMP +SSH,我用 Ubuntu 16.0.4 :
用 apt-get update && apt-get upgrade 一下,然後安裝 php modules:
sudo apt-get install php-gd php-json php-mysql php-curl php-intl php-mcrypt php-imagick php-zip php-dom php-xml php-mbstring
去官網下載最新嘅 nextcloud:
wget https://download.nextcloud.com/server/releases/latest-12.tar.bz2
解壓,同時放喺 apache 之內:
sudo tar -C /var/www -xvjf latest-12.tar.bz2
同 own cloud 一樣,你要手動改一下啲 files 嘅 access rights,同時要加番啲未有嘅檔案夾。因為比較多句子,可以做一個 bash script,唔使打得咁麻煩:
sudo vi permission.sh
抄哩段 script:
#!/bin/bash ocpath='/var/www/nextcloud' htuser='www-data' htgroup='www-data' rootuser='root' printf “Creating possible missing Directories\n” mkdir -p $ocpath/data mkdir -p $ocpath/updater printf “chmod Files and Directories\n” find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf “chown Directories\n” chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/updater/ chmod +x ${ocpath}/occ printf “chmod/chown .htaccess\n” if [ -f ${ocpath}/.htaccess ] then chmod 0644 ${ocpath}/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/.htaccess fi if [ -f ${ocpath}/data/.htaccess ] then chmod 0644 ${ocpath}/data/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fi
執行:
sudo bash permisssion.sh
Output 大概跟這個相同:
Creating possible missing Directories chmod Files and Directories chown Directories chmod/chown .htaccess
加個 website 嘅 config file,或者:
<VirtualHost *:80> DocumentRoot “/var/www/nextcloud” ServerName yours.domain.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud Satisfy Any </Directory> </VirtualHost>
我想用 root,於是就照用 default website,不過改咗少少:
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/nextcloud ServerName yours.doamin.com # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
要 enable module rewrite:
sudo a2enmod rewrite
可以 reload 隻 apache,或者 restart:
sudo systemctl reload apache2 or sudo service apache2 restart
最後就係去訪問你隻 nextcloud:
照答問題,完成最後步驟,create 第一個 user (admin user),同時 create 你個 nextcloud database!哩度係要答你安裝 LAMP 嘅時候你俾 MySQL 嘅 user name 同密碼:
唔好話俾我知你當時冇抄低。😜
*** 完 ***
P.S. mass copy 之後 rescan 啲檔案:
個 command 要喺你安裝咗 nextcloud 嘅 root 執行先有效,即係要先 cd 一下。