NextCloud升級日誌php
1,準備工做html
須要安裝一臺Ubuntu 20.4 LST長期版本的系統,準備一個nextcloud 15.02的版本。mysql
導出原來舊服務器上的/var/www/nextcloud目錄下的data數據,這裏包含全部的用戶數據,同時須要刪除裏面的index.html nextcloud.log。web
導出原來舊服務器上數據庫文件,這個使用的mysql數據庫,看了一下數據庫比較小,導出很方便(mysqldunp -uroot -p -B nextcloud > /soft/nextcloud.sql)。sql
將老的服務器設置爲維護模式( maintenance => true ),或者時間容許你也能夠停機維護。數據庫
<?php $CONFIG = array ( 'instanceid' => 'ocb3hud7w2rm', 'passwordsalt' => '5vCxOAIbTkS8igbAhv0+uZkOAACAVD', 'secret' => '1cf2NjrkevHSGl4ZR+0LOaZROokhtIKeTR2/8a50+JbBAky4', 'trusted_domains' => array ( 0 => '10.93.58.209', ), 'datadirectory' => '/var/www/nextcloud/data', 'dbtype' => 'mysql', 'version' => '20.0.8.1', 'overwrite.cli.url' => 'http://10.93.58.209', 'dbname' => 'nextcloud', 'dbhost' => 'localhost', 'dbport' => '', 'dbtableprefix' => 'oc_', 'mysql.utf8mb4' => true, 'dbuser' => 'admin', 'dbpassword' => 'Android', 'installed' => true, 'maintenance' => true, 'loglevel' => 2, 'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory', );
2,整理一下咱們須要升級的步驟是須要注意的狀況。apache
軟件類型 | 升級前 | 升級後 | 備註 |
系統版本 | Ubuntu 16.04 | Ubuntu20.04 | |
軟件版本 |
nextcloud 15.02 | nextcloud 20.08 | |
PHP版本 | 7.0 | 7.2 | 這個須要從15.02升級到20.08PHP版本不能>=7.3,不然會報錯 |
MariaDB | 10.0.38 | 10.3.25 | |
apache | Apache/2.4.18 | Apache/2.4.41 |
3,安裝系統,設置短域名,具體步驟以下:
json
安裝Apache、MariaDB、PHP構建LAMP環境。vim
apt-get update #配置一下源安裝php7.2版本能夠安裝上nextcloud 15.02 sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt install php7.2 apache2 mariadb-server libapache2-mod-php7.2 -y sudo apt install php7.2 php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring -y sudo apt install php7.2 php7.2-intl php7.2-mcrypt php7.2-imagick php7.2-xml php7.2-zip php7.2-ldap -y
啓動mariadb和apache瀏覽器
systemctl start apache2 systemctl start mysqld
進入數據庫,建立數據庫並受權數據庫的使用權限。
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'Android'; CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON nextcloud.* TO 'admin'@'localhost'; FLUSH PRIVILEGES;
上傳nextcloud 15.02安裝包,此步驟省略。
解壓nextcloud,將數據放在/var/www/下面。
tar xf nextcloud-15.0.12.tar.bz2 mv nextcloud /var/www/
而後給文件夾受權
chown -R www-data.www-data /var/www/nextcloud
設置Apache主目錄,主要設置12-17行。
vim /etc/apache2/sites-available/000-default.conf 1 <VirtualHost *:80> 2 # The ServerName directive sets the request scheme, hostname and port that 3 # the server uses to identify itself. This is used when creating 4 # redirection URLs. In the context of virtual hosts, the ServerName 5 # specifies what hostname must appear in the request's Host: header to 6 # match this virtual host. For the default virtual host (this file) this 7 # value is not decisive as it is used as a last resort host regardless. 8 # However, you must set it for any further virtual host explicitly. 9 #ServerName www.example.com 10 11 ServerAdmin webmaster@localhost 12 DocumentRoot /var/www/nextcloud 13 <Directory /var/www/nextcloud/> 14 Require all granted 15 AllowOverride All 16 Options FollowSymLinks MultiViews 17 </Directory> 18 # error, crit, alert, emerg. 19 # It is also possible to configure the loglevel for particular 20 # modules, e.g. 21 #LogLevel info ssl:warn 22 23 ErrorLog ${APACHE_LOG_DIR}/error.log 24 CustomLog ${APACHE_LOG_DIR}/access.log combined 25 26 # For most configuration files from conf-available/, which are 27 # enabled or disabled at a global level, it is possible to 28 # include a line for only one particular virtual host. For example the 29 # following line enables the CGI configuration for this host only 30 # after it has been globally disabled with "a2disconf". 31 #Include conf-available/serve-cgi-bin.conf 32 </VirtualHost> 33 34 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
而後在瀏覽器安裝初始化nextcloud,這個跟上面一片步驟同樣,這裏省略了。須要到前面看。
初始化完成,就去nextcloud主配置文件加上一條,'htaccess.RewriteBase' => '/',主要功能是隱藏index.php。
vim /var/www/nextcloud/config/config.php 'htaccess.RewriteBase' => '/'
隨後開啓Apache的功能模塊,加載htaccess隱藏功能,重啓Apache服務。
sudo a2enmod env sudo a2enmod rewrite cd /var/www/nextcloud/ sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess systemctl restart apache2
瀏覽器訪問已經隱藏index.php。
導入數據庫文件測試,不過前提你須要導出你的數據庫文件。
mysql -uroot -p -B nextcloud >/soft/nextcloud.sql #舊數據庫上導出 mysql -uroot -p nextcloud < ./nextcloud.sql #重新的數據庫上導入
而後導入/var/www/nextcloud/data 數據導入到新的服務器/var/www/nextcloud/data下面,我先到了2個用戶測試一下,結果能夠。
scp -r ./abe.li root@10.93.58.209:/var/www/nextcloud/data/ scp -r ./felick.wang root@10.93.58.209:/var/www/nextcloud/data/
最關鍵一步就是升級nextcloud的版本。由於不能跨版本升級只能是15>16>17>18>19>20,感受有點坑呀!升級以前還要走一下代理,否則就會報錯,基本上會卡在一直Downloading狀態,後臺有錯誤顯示網絡什麼的錯誤,這個問題搞了好幾天。
export http_proxy=172.16.0.254:7070 #設置代理 cd /var/www/nextcloud/updater/ #進入目錄 sudo -u www-data php updater.phar #升級命令 sudo -u www-data php occ upgrade -v #查看當前版本
這樣重複一直下去,知道完成到20.08時候會提示爲最新版本不能升級,至此升級完成。
root@nextcloud:/var/www/nextcloud# sudo -u www-data php occ upgrade -v Nextcloud is already latest version
最後,不要忘記關閉原來老的服務器,完全的使用新服務器提供應用。