ubuntu 22.04 LTS的php版本已更新到8.1,底下說明22.04下的安裝。
安裝php及相關模組:
sudo apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline
在apache2上啟動php模組支援:
sudo a2enmod php8.1
重新啟動apache2:
sudo systemctl restart apache2
到此完成php的安裝,接下來就可以準備安裝 nextcloud了。
下載 netcloud,現在最新版的 nectcloud是 24.0.1,執行指令:
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.1.zip
然後解壓縮到 /var/www 目錄下,如果沒有安裝unzip程式會無法解壓縮,要先安裝unzip程式:
sudo apt install unzip
sudo unzip nextcloud-24.0.1.zip -d /var/www/
變更群組及使用者為www-data:
sudo chown www-data:www-data /var/www/nextcloud/ -R
建立一個名為 nextcloud 的mysql 資料庫及使用者:
sudo mysql
create database nextcloud;
create user nextcloud@localhost identified by 'your-password';
紅色部分的密碼記得用你自己的設定。
授權 nextcloud 可以使用 cloud這個資料庫:
grant all privileges on nextcloud.* to nextcloud@localhost identified by 'your-password';
密碼要跟你上面設定的一樣。
登出資料庫:
flush privileges;
exit;
以下apache2的設定有兩種方式,一種是用vhost,也就是虛擬主機的方式,我個人現在偏向用這個方法來安裝,
執行:
sudo nano /etc/apache2/sites-available/nextcloud.conf
這是建立apache2的虛擬主機設定檔,如果有多個主機名稱,需要個別建立。
修改內容為:
<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName nextcloud.bell.idv.tw
ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined
<Directory /var/www/nextcloud/>
Require all granted
Options FollowSymlinks MultiViews
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
</VirtualHost>
藍色文字為網域名稱,適合有自己的網域名稱,有DNS設定可以用虛擬主機的方式連線。
另一種方式適合不想用vhost,只想用IP或是 /主機/nextcloud/ 這種方式連線的人,一樣修改:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
存檔後離開。
啟用這個網站設定:
sudo a2ensite nextcloud
啟用apache2的相關模組:
sudo a2enmod rewrite headers env dir mime setenvif ssl
重啟apache2:
sudo systemctl restart apache2
有一些php模組需要補上去,安裝:
sudo apt install imagemagick php-imagick libapache2-mod-php8.1 php8.1-common php8.1-mysql php8.1-fpm php8.1-gd php-json php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmp
沒裝好的話可能會出現這樣的錯誤畫面:
安裝好php模組之後要重新啟動apache2:
sudo systemctl restart apache2
在電腦上的瀏覽器輸入: http://nextcloud.urhost.com(第一種設定) 或是 http://ip/nextcloud/ (第二種設定)
可以看到nextcloud的設定畫面:
畫面往下拉可以看到設定的按鈕:
設定內容:
最上面是nextcloud的管理員帳號,中間是server上使用者的家目錄,下面是資料庫的相關設定。
重點: 預設的檔案路徑是放在 /var/www/nextcloud/data ,但 /var 這個目錄磁碟空間往往比較小,
所以我個人是把檔案放在 /home/nextcloud 這個目錄下。
所以要先在 /home 目錄下建立 nextcloud目錄並把owner及權限設好,執行:
sudo mkdir /home/nextcloud
sudo chown -R www-data:www-data /home/nextcloud
sudo chmod 755 /home/nextcloud
設定完之後按安裝,等一段時間安裝好會跳出問你要不要安裝推薦的應用程式,我是選安裝,如下圖:
安裝好後進到nextcloud主頁畫面,nextcloud的基本安裝到此結束。