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.
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
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
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
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ı.
Dns kaydımın ubuntu serverımı çözdüğünden emin oluyorum.
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.
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
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.
Diğer Adımlara “Y” diyerek devam ediyoruz.
NextCloud DB İşlemleri
NextCloud için veritabanı ve kullanıcı hesabı oluşturmam gerekiyor bunun için MariaDb console bağlanıyorum.
sudo mariadb
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;
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
Kurulum sonrası apache servisinin durumunu aşağıdaki komutla kontrol ediyorum.
sudo systemctl status apache2
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
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
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ı.
Bu folderın dosya okuma ve yazma izinlerini aşağıdaki komutlarla düzenliyoruz.
sudo chown -R www-data:www-data nextcloud/
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/
Apache Vritual Host Yapılandırılması
Aşağıdaki komutla varsayılan apache sitesini kapatıyorum.
a2dissite 000-default.conf
/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
<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
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
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
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.
Kur diyerek işlemin tamamlanmasını bekliyoruz.