Next Cloud Nedir ?

Nextcloud, herhangi bir server üzerinde dosya barındırma/depolama servisi oluşturma imkanı yaratan client-server yazılımıdır.
Fonksiyon özellikleri açısından Dropbox,Sharepoint,we-transfer e benzeyen Nextcloud ücretsiz ve açık kaynak kodlu bir yazılımdır.
Açık kaynak olması sebebiyle İsteyen tüm kullanıcılar Nextcloud’u kendi sunucularına kurarak mobil ve PC platformlarından yönetip senkronlayabilecekleri, kullanıma hazır bir bulut depolama alanına sahip olabilirler.

Nextcloud ;

  • mobil, web ve masaüstünde kolay bir kullanıcı arayüzü ve güçlü entegre belge işbirliği ve iletişim yetenekleriyle mobil durumdaykende dosyalarınıza ulaşarak ekip verimliliğini arttırabilr.
  • Mobil cihazlardan gerçek zamanlı paylaşım veya yorum bildirimleri,
  • Microsoft Office uyumlu dosyaların düzenlemesi,
  • Bir Whatsapp yada muadili uygulamalarda olduğu gibi sohbet ve sesli / görüntülü aramalar yapabilme
  • Outlook ile entere olarak posta, randevular, görevler ve daha fazlası için çok çeşitli üretkenlik araçlarını barındırmaktadır.

Next Cloud kullanıcı dostu arayüzü ile hem son kullanıcnın hemde sistem yöneticilerinin işlerini büyük oranda kolaylaştırıyor diyebiliriz.

Kendi deneyimimden biraz bahsetmek istersem kurumunuzda we-transfer,Google drive gibi public storege alanlar Bilgi güvenliği politikalaırnız sebebiyle kullanılamıyor yada uygun görülmüyor olabilir bu noktada kurumsal bir veriin kurum dışında çıkabilmesi için kendi kontrolünüzde olan güvenli dosya paylaşım platformlarına ihtiyacınız var burada “Fileorbis” gibi ücretli birkaç alternatif bulunuyor fakat bu ihtiyacı tam olarak bu araçlara denk olmasada “Next Cloud” ile sağlayabilirsiniz.

Bu kadar ön bilgiden sonra artık kuruluma geçebilriz.

Linux Makine Ön Yapılandırma

Kurulum sırasında ubuntu versiyonundan dolayı hata almamak için aşağıdaki komutla ubuntu veriyonumuzu kontrol ediyoruz.

lsb_release -a

Bu kılavuzdaki anlatım ubuntu 22.04 versiyonuna göre yapılmıştır Ubuntu 20.04 versiyonunda da kullanabilirsiniz  fakat php kurulum kısımlarında bazı pathler farklılık göstermektedir.
Ubuntu 22.04 Üzerine NextCloud Kurulumu 2

Versiyondan emin olduğumuza göre devam edebiliriz.
Aşağıdaki komutla Ubuntu sunucumuzun güncellemelerini yapıyoruz.

sudo apt-get update ; apt-get upgrade -y

Güncelleme sonrası makinemize bir computer Name veriyoruz. Ben “next01” adını verdim.

Hostnamectl set-hostname next01

Kurulum sırasında Sunucu için İstanbulu seçmiştim ama her ihtimale karşı tekrar sunucu region tanımını giriyorum.

timedatectl set-timezone Europe/Istanbul

Aşağıdaki komutla sunucumun ip bilgilerini kontrol ediyorum eğer bir hata varsa yada değiştirmek isterseniz GUI üzerinden kolayca bu işlemi yapabilirsiniz.

ifconfig
Ubuntu 22.04 Üzerine NextCloud Kurulumu 3

Host dosyası düzenleme

Aşağıdaki komutla host dosyamı açıp public FQDN numaramı girerek makinemin local ip adresini yazıyorum.

nano /etc/hosts
Ubuntu 22.04 Üzerine NextCloud Kurulumu 4

Name serverımı girmek için aşağıdaki komutla “resolv.conf” dosyamı düzenliyorum buraya DNS serverımın adresini giriyorum bu adres local yapınızda Active directory olabilir yada public DNS kullanıyorsanız bunu da girebilirsiniz.

nano /etc/resolv.conf
Ubuntu 22.04 Üzerine NextCloud Kurulumu 5

DNS Yapılandırma

Local DNS Tanımı

Local DNS üzerinde A kaydını aşağıdaki şekilde oluşturuyorum. Ben Localimde Active directory üzerindeki dns i kullanıyorum tanımı aşağıdaki gibi yapılmalı.

Ubuntu 22.04 Üzerine NextCloud Kurulumu 6

Dns kaydımın ubuntu serverımı çözdüğünden emin oluyorum.

Ubuntu 22.04 Üzerine NextCloud Kurulumu 7

Public DNS Tanımı

Public DNS eğer siz bu işlemi kendi localinizdeki serverlarda yapmıyorsanız ya Hosting firmanızda yada servis sağlayıcınızdan alıyorsunuzdur bu hizmeti.

Public DNS üzeirnde tanımlarınızı yaptıktan sonra https://mxtoolbox.com/ adresi üzerinden kontrol ediyoruz.

Ubuntu 22.04 Üzerine NextCloud Kurulumu 8

Tüm ön hazırlıklarımızı tamamladık eğer buraya kadar bir sorun yada aksilik yoksa kurulumumuza sağlıklı bir şekilde başlayabiliriz.

Next Cloud Kurulumu

MariaDB Kurulumu

İlk olarak NextCloud için kullanacağımız Maria DB kurulumunu yapacağız aşağıdaki komutu çalıştırarak Maria DB kurulumunu başlatıyoruz.

apt install mariadb-server
Ubuntu 22.04 Üzerine NextCloud Kurulumu 9

Aşağıdaki komut ile mariadb de parola belirleme, anonim kullanıcıları kaldırma, uzaktan root ile bağlanamama gibi güvenlik adımlarını yapılandırıyorum.

mysql_secure_installation

Burası oldukça dikkat edilmesi gereken bir nokta bura vereceğiniz parola Mysql DB e bağlanırken kullanacağımız root paroladır.

Mevcut root parolam olmadığı için enter ile geçtim ve yeni parola içi Y ile parola belirledim. Ubuntu 22.04 Üzerine NextCloud Kurulumu 10

Diğer Adımlara “Y” diyerek devam ediyoruz.Ubuntu 22.04 Üzerine NextCloud Kurulumu 11

NextCloud DB İşlemleri

NextCloud için veritabanı ve kullanıcı hesabı oluşturmam gerekiyor bunun için MariaDb console bağlanıyorum.

sudo mariadb
Ubuntu 22.04 Üzerine NextCloud Kurulumu 12

DB yapılandırma için aşağıdaki komutları sırasıyla çalıştırıyoruz.

#”nextcloud” adında yeni bir DB oluşturuyorum.

CREATE DATABASE nextcloud;

#”nextcloud” adında bir local db hesabı ve parolası oluşturuyorum.

GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’@’localhost’ IDENTIFIED BY ‘Next123’;

#oluşturduğum hesaba bu DB için tüm yetkileri tanımlıyorum.

FLUSH PRIVILEGES;

QUIT;

Ubuntu 22.04 Üzerine NextCloud Kurulumu 13

DB yapılandırma işlemlerimiz bu kadar

Php Kurulumu

Php Kurulumu için aşağıdaki komut setini çalıştırark gerekli tüm php paketlerinin kurulumunu yapıyorum.

apt install php php-apcu php-bcmath php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-mbstring php-mysql php-zip php-xml
Ubuntu 22.04 Üzerine NextCloud Kurulumu 14

Kurulum sonrası apache servisinin durumunu aşağıdaki komutla kontrol ediyorum.

sudo systemctl status apache2
Ubuntu 22.04 Üzerine NextCloud Kurulumu 15

Servisim Enable ve çalışır durumda görünüyor aşağıdaki komutla yüklediğim modülleri aktif ediyorum.

phpenmod bcmath gmp imagick intl
Ubuntu 22.04 Üzerine NextCloud Kurulumu 16

NextCloud Web Paket Kurulumu

Aşağıdaki komutla nextcloud güncel dosyamızı indiriyoruz.

wget https://download.nextcloud.com/server/releases/nextcloud-25.0.0.zip

Ubuntu 22.04 Üzerine NextCloud Kurulumu 17

Dosyayı indirdiğim dizinde unzip dosyaadi.zip komutu ile dosyayı açıyorum. (Unzip kurulu değilse apt install unzip ile kurulabilir.)

unzip nextcloud-24.0.4.zip

komutumuzu çalıştırdıktan sonra sıkıştırılmış olan “nextcloud-24.0.4.zip” dosyamız “nextcloud” adında bir foldera çıkarıldı.

Ubuntu 22.04 Üzerine NextCloud Kurulumu 18

Bu folderın dosya okuma ve yazma izinlerini aşağıdaki komutlarla düzenliyoruz.

sudo chown -R www-data:www-data nextcloud/
Ubuntu 22.04 Üzerine NextCloud Kurulumu 19

Dosya yetkilendirmesini yaptıktan sonra Apache web serverımızın site dosyalarını okuduğu /var/www dizini çeirsine “nextcloud” klasörümü aşağıdaki komutla taşıyorum.

sudo chown -R www-data:www-data nextcloud/
mv nextcloud /var/www/
Ubuntu 22.04 Üzerine NextCloud Kurulumu 20

Apache Vritual Host Yapılandırılması

Aşağıdaki komutla varsayılan apache sitesini kapatıyorum.

a2dissite 000-default.conf
Ubuntu 22.04 Üzerine NextCloud Kurulumu 21

/var/www içine taşıdığım “nextcloud”dizinimi varsayılan site olarak atayacağım bunun için conf dosyası oluşturuyorum.

nano /etc/apache2/sites-available/nextcloud.conf
Ubuntu 22.04 Üzerine NextCloud Kurulumu 22

<VirtualHost *:80>

DocumentRoot /var/www/nextcloud

ServerName nextcloud.sistemcheck.com

<Directory /var/www/nextcloud/>

Require all granted

Options MultiViews FollowSymlinks

AllowOverride All

</Directory>

</VirtualHost>

Aşağıdaki komutla yeni eklediğim sitemi aktif ediyorum.

a2ensite nextcloud.conf

Ubuntu 22.04 Üzerine NextCloud Kurulumu 23

Apache üzerinde site ve virtual host tanımları bu kadar.

Apache Performance Config yapılandırması

Ubuntu 20.04 için  ;

nano /etc/php/7.4/apache2/php.ini dosyasını açıyorum. Ctrl+w ile memory_limit arıyorum ve değeri 128M den 512M olarak değiştiriyorum.

Ubuntu 22.04 için  ;

(nano /etc/php/8.1/apache2/php.ini ) dosyasını açıyorum. Ctrl+w ile memory_limit arıyorum ve değeri 128M den 512M olarak değiştiriyorum.

Her iki php versiyonu için de aşağıdaki config geçerli sadece yukarıda belirttiğim dosya yolları versiyona göre değişiyor.

Arama yapıyorum ve upload_max satırını arıyorum. 2M olan değeri 200M olarak değiştiriyorum. (Farklı olabilir.)

Tekrar arama yapıyorum ve max_execution_time satırını arıyorum. 30 olan değeri 360 olarak değiştiriyorum.

Tekrar arama yapıyorum ve post_max_size satırını arıyorum. 8M olan değeri 200M olarak değiştiriyorum.

Tekrar arama yapıyorum date.timezone satırını arıyorum. Baştaki ; kaldırıp değer olarak Europe/Istanbul giriyorum.

Tekrar arama yapıyorum opcache.enable satırının başındaki ; kaldırıyorum.

Tekrar arama yapıyorum opcache.interned_strings_buffer satırının başındaki ; kaldırıyorum.

Tekrar arama yapıyorum opcache.max_accelerated_files satırının başındaki ; kaldırıyorum.

Tekrar arama yapıyorum opcache.memory_consumption satırının başındaki ; kaldırıyorum.

Tekrar arama yapıyorum opcache.save_comments satırının başındaki ; kaldırıyorum.

Tekrar arama yapıyorum opcache.revalidate_freq satırının başındaki ; kaldırıyorum. Değeri 1 olarak değiştiriyorum.

Dosyayı “ctrl+o” diyerek kaydedip çıkıyorum.

Alternatif olarak komutla yapmak için aşağıdaki komut setini uygulayabilirsiniz.

sudo sed -i “s/memory_limit = .*/memory_limit = 1024M/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/upload_max_filesize = .*/upload_max_filesize = 200M/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/post_max_size = .*/post_max_size = 200M/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/session.gc_maxlifetime = .*/session.gc_maxlifetime = 7200/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/max_execution_time = .*/max_execution_time = 360/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/;date.timezone.*/date.timezone = Europe/Istanbul/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/;opcache.enable.*/opcache.enable = 1/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/; opcache.interned_strings_buffer.*/ opcache.interned_strings_buffer = 8/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/; opcache.max_accelerated_files.*/ opcache.max_accelerated_files = 10000/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/; opcache.memory_consumption.*/ opcache.memory_consumption = 128/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/; opcache.save_comments.*/ opcache.save_comments = 1/” /etc/php/8.1/apache2/php.ini

sudo sed -i “s/; opcache.revalidate_freq.*/ opcache.revalidate_freq = 1/” /etc/php/8.1/apache2/php.ini

Yaptığım değişiklerin uygulanması için apache servisimi aşağıdaki komutla restart ve durumunu kontrol ediyorum.

Systemctl restart apache2
Systemctl status apache2

Ubuntu22 de aşağıdaki şekilde

service apache2 restart
service apache2 status
Ubuntu 22.04 Üzerine NextCloud Kurulumu 24

Apache üzerinde yapacağımız düzenlemeler bu kadar.

Apache2 versyionu upgrade (opsiyonel)


şu anki  apache versiyonu default olarak zafiyet barındıran verisyonla geliyor aşağıdaki işlemle apache versiyonun güncelleyebilirsiniz.

Add Repostory

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update

Check Apache Version Number

sudo apache2 –v
Ubuntu 22.04 Üzerine NextCloud Kurulumu 25

NextCloud Web Panel ve Yapılandırması

Site üzerinde gerekli yapılandırmayı yapmak için tanımlarda verdiğimiz http://nextcloud.sistemcheck.com/ adresini tarayıcımıza yazıyoruz.

Karşımıza gelen sayfada Admin için bir parola belirliyorum “veri klasörü” alanını olduğu gibi bırakıyorum.

Maria DB üzerinde oluşturduğumuz DB ve hesap bilgilerini aşağıdaki alan giriyoruz.

Ubuntu 22.04 Üzerine NextCloud Kurulumu 27

Kur diyerek işlemin tamamlanmasını bekliyoruz.