Snipe-IT’nin Ubuntu 16.04 Üzerine Kurulumu Kapsamlı Rehberi
Bu kapsamlı rehber, açık kaynaklı ve web tabanlı bir BT varlık yönetimi sistemi olan Snipe-IT’yi Ubuntu 16.04 sunucunuza nasıl kuracağınızı adım adım anlatmaktadır. Snipe-IT, şirketinizin donanım, yazılım lisansları, aksesuarlar ve sarf malzemeleri gibi tüm BT varlıklarını takip etmenize olanak tanıyan güçlü bir araçtır. Bu rehber, LAMP yığını (Linux, Apache, MySQL, PHP) kurulumundan Snipe-IT’nin yapılandırılmasına kadar tüm adımları içermektedir.
1. Giriş ve Ön Gereksinimler
Snipe-IT, BT varlıklarının yaşam döngüsünü yönetmek için tasarlanmış modern bir çözümdür. Varlıkların kim tarafından kullanıldığı, nerede olduğu, ne zaman satın alındığı ve ne zaman emekli edileceği gibi kritik bilgileri izlemenize yardımcı olur. Ubuntu 16.04, uzun süreli destek (LTS) sunan stabil bir işletim sistemi sürümü olup, bu tür bir uygulama için güvenilir bir temel sağlar.
1.1. Neden Snipe-IT?
* Açık Kaynak: Ücretsizdir ve topluluk desteği geniştir.
* Kullanıcı Dostu Arayüz: Sezgisel bir web arayüzü sayesinde varlık yönetimi kolaylaşır.
* Kapsamlı Varlık Takibi: Donanım, yazılım lisansları, aksesuarlar ve sarf malzemelerini takip edebilir.
* Envanter Yönetimi: Varlıkların durumunu, konumunu ve atanmış kullanıcılarını izler.
* API Desteği: Diğer sistemlerle entegrasyon için RESTful API sunar.
* Esnek Raporlama: Özelleştirilebilir raporlarla varlık verilerine derinlemesine bakış sağlar.
1.2. Ön Gereksinimler
Snipe-IT’yi kurmadan önce sisteminizin belirli gereksinimleri karşıladığından emin olmalısınız:
* İşletim Sistemi: Ubuntu 16.04 (64-bit önerilir).
* Web Sunucusu: Apache 2.x (Nginx de kullanılabilir ancak bu rehber Apache’ye odaklanacaktır).
* Veritabanı: MySQL 5.6+ veya MariaDB 10.x+.
* PHP: PHP 7.0 (Ubuntu 16.04’ün varsayılan PHP sürümü) ve belirli uzantılar.
* Composer: PHP bağımlılık yöneticisi.
* Git: Snipe-IT kaynak kodunu indirmek için.
* Yeterli Kaynaklar: En az 2GB RAM ve 20GB disk alanı önerilir.
Bu rehber boyunca tüm komutlar sudo ayrıcalıklarıyla çalıştırılacaktır. Eğer bir root kullanıcısı olarak oturum açtıysanız sudo komutunu atlayabilirsiniz.
2. Sistem Güncelleme ve LAMP Kurulumu
Kuruluma başlamadan önce sisteminizi güncellemeli ve temel LAMP yığınını kurmalısınız.
2.1. Sistem Güncelleme
İlk adım olarak, paket listelerinizi güncelleyin ve yüklü paketlerinizi en son sürümlerine yükseltin:
sudo apt update
sudo apt upgrade -y
Bu işlem, sunucunuzun güvenliğini ve stabilitesini artıracaktır.
2.2. Apache Kurulumu
Apache web sunucusunu kurmak için aşağıdaki komutu kullanın:
sudo apt install apache2 -y
Kurulum tamamlandıktan sonra Apache’nin çalıştığını kontrol edebilirsiniz:
sudo systemctl status apache2
Tarayıcınızda sunucunuzun IP adresini ziyaret ettiğinizde “Apache2 Ubuntu Default Page” sayfasını görmelisiniz.
2.3. MySQL Kurulumu ve Güvenliği
MySQL veritabanı sunucusunu kurmak için:
sudo apt install mysql-server -y
Kurulum sırasında sizden bir root parolası belirlemeniz istenebilir. Güçlü bir parola seçtiğinizden emin olun. Kurulum bittikten sonra, MySQL’i güvenli hale getirmek için aşağıdaki komutu çalıştırın:
sudo mysql_secure_installation
Bu komut size bir dizi soru soracaktır:
* VALIDATE PASSWORD PLUGIN: Bu eklentiyi etkinleştirmek isteyip istemediğiniz sorulur. Genellikle Y seçeneğiyle etkinleştirmek iyi bir fikirdir.
* Change the root password?: Daha önce bir parola belirlemediyseniz veya değiştirmek istiyorsanız Y seçin.
* Remove anonymous users?: Y seçerek anonim kullanıcıları kaldırın.
* Disallow root login remotely?: Güvenlik için Y seçeneğiyle root kullanıcısının uzaktan girişini devre dışı bırakın.
* Remove test database and access to it?: Y seçerek test veritabanını kaldırın.
* Reload privilege tables now?: Y seçerek ayrıcalık tablolarını yeniden yükleyin.
2.4. PHP Kurulumu ve Gerekli Uzantılar
Ubuntu 16.04 için PHP 7.0 varsayılan sürümdür ve Snipe-IT için uygundur. Snipe-IT’nin düzgün çalışması için bazı PHP uzantıları gereklidir.
sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-dom php7.0-zip php7.0-bcmath php7.0-xml -y
Gereksinimlerinize göre ek uzantılar da ekleyebilirsiniz, örneğin LDAP desteği için php7.0-ldap.
PHP kurulumu tamamlandıktan sonra, Apache’nin PHP modülünü doğru bir şekilde yüklemesi için Apache servisini yeniden başlatın:
sudo systemctl restart apache2
PHP’nin doğru çalıştığını doğrulamak için, /var/www/html/ dizinine info.php adında bir dosya oluşturabilir ve içine aşağıdaki içeriği ekleyebilirsiniz:
sudo nano /var/www/html/info.php
Dosya içeriği:
Kaydedip kapattıktan sonra tarayıcınızda http://sizin_sunucu_ip_adresiniz/info.php adresine gidin. PHP bilgilerini içeren bir sayfa görmelisiniz. İşlem bittikten sonra güvenlik nedeniyle bu dosyayı silmeyi unutmayın: sudo rm /var/www/html/info.php.
3. Veritabanı Oluşturma
Snipe-IT için özel bir veritabanı ve kullanıcı oluşturmak, güvenlik ve yönetim açısından en iyi uygulamadır.
MySQL sunucusuna root kullanıcısı olarak giriş yapın:
sudo mysql -u root -p
Parolanızı girin. Ardından aşağıdaki SQL komutlarını çalıştırın. snipeit_db yerine istediğiniz veritabanı adını, snipeit_user yerine kullanıcı adını ve guclupassword yerine güçlü bir parola kullandığınızdan emin olun.
CREATE DATABASE snipeit_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'snipeit_user'@'localhost' IDENTIFIED BY 'guclupassword';
GRANT ALL PRIVILEGES ON snipeit_db.* TO 'snipeit_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Bu komutlar:
1. snipeit_db adında yeni bir veritabanı oluşturur ve UTF-8 desteği sağlar.
2. snipeit_user adında yeni bir kullanıcı oluşturur ve sadece localhost üzerinden erişime izin verir.
3. snipeit_user kullanıcısına snipeit_db veritabanı üzerindeki tüm ayrıcalıkları verir.
4. Ayrıcalık tablolarını günceller.
5. MySQL istemcisinden çıkar.
4. Composer ve Git Kurulumu
Snipe-IT, PHP bağımlılıklarını yönetmek için Composer’ı ve kaynak kodunu indirmek için Git’i kullanır.
4.1. Git Kurulumu
Git, Ubuntu 16.04’te genellikle önceden yüklü gelir, ancak değilse aşağıdaki komutla kurabilirsiniz:
sudo apt install git -y
4.2. Composer Kurulumu
Composer’ı sistem genelinde erişilebilir olacak şekilde kuracağız.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Kurulumun başarılı olup olmadığını kontrol etmek için:
composer -V
Bu komut, Composer sürümünü göstermelidir.
5. Snipe-IT İndirme ve Yapılandırma
Şimdi Snipe-IT kaynak kodunu indirmenin ve gerekli yapılandırmaları yapmanın zamanı geldi.
5.1. Snipe-IT Deposunu Klonlama
Snipe-IT’yi Apache’nin varsayılan web kök dizini olan /var/www/html/ altına klonlayacağız. Bu dizini değiştirip daha güvenli bir yere de kurabilirsiniz, ancak bu rehberde varsayılanı kullanacağız.
cd /var/www/html/
sudo git clone https://github.com/snipe/snipe-it snipeit
Bu komut, snipeit adında yeni bir dizin oluşturacak ve tüm Snipe-IT dosyalarını buraya indirecektir.
5.2. Dizin İzinlerini Ayarlama
Snipe-IT’nin düzgün çalışması için web sunucusunun (Apache, www-data kullanıcısı) belirli dizinlere yazma iznine sahip olması gerekir.
sudo chown -R www-data:www-data /var/www/html/snipeit
sudo chmod -R 755 /var/www/html/snipeit
sudo chmod -R 775 /var/www/html/snipeit/storage
sudo chmod -R 775 /var/www/html/snipeit/public/uploads
Bu komutlar:
1. snipeit dizininin tüm sahipliğini www-data kullanıcısına ve grubuna verir.
2. snipeit dizini içindeki tüm dosya ve dizinlere 755 (sahip okuma/yazma/çalıştırma, grup okuma/çalıştırma, diğerleri okuma/çalıştırma) izinlerini verir.
3. storage dizinine 775 (sahip okuma/yazma/çalıştırma, grup okuma/yazma/çalıştırma, diğerleri okuma/çalıştırma) izinlerini verir, çünkü bu dizin loglar, cache ve diğer uygulama verilerini depolar.
4. public/uploads dizinine de 775 izinlerini verir, çünkü yüklenen dosyalar burada saklanır.
5.3. .env Dosyasını Yapılandırma
Snipe-IT, yapılandırma ayarlarını .env dosyasında saklar. Örnek dosyayı kopyalayarak başlayın:
cd /var/www/html/snipeit
sudo cp .env.example .env
Şimdi bu dosyayı düzenleyin:
sudo nano .env
Aşağıdaki satırları bulup kendi değerlerinizle güncelleyin:
* APP_URL: Snipe-IT’ye erişeceğiniz URL’yi belirtin. Örneğin: http://sizin_sunucu_ip_adresiniz veya http://snipeit.alanadiniz.com.
* APP_TIMEZONE: Kendi zaman diliminizi ayarlayın. Örneğin, Europe/Istanbul.
* APP_LOCALE: Uygulamanın dilini ayarlayın. Örneğin, tr (Türkçe) veya en (İngilizce).
* DB_DATABASE: Oluşturduğunuz veritabanı adı (snipeit_db).
* DB_USERNAME: Oluşturduğunuz veritabanı kullanıcı adı (snipeit_user).
* DB_PASSWORD: Oluşturduğunuz veritabanı parolası (guclupassword).
APP_URL=http://sizin_sunucu_ip_adresiniz
APP_TIMEZONE='Europe/Istanbul'
APP_LOCALE=tr
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=snipeit_db
DB_USERNAME=snipeit_user
DB_PASSWORD=guclupassword
Dosyayı kaydedin ve kapatın.
5.4. Composer Bağımlılıklarını Yükleme
Şimdi Snipe-IT’nin tüm PHP bağımlılıklarını Composer kullanarak yükleyin:
sudo composer install --no-dev --prefer-dist
Bu işlem biraz zaman alabilir. sudo kullanmak yerine www-data kullanıcısı olarak çalıştırmak daha doğru bir yaklaşım olabilir, ancak bu rehberde basitleştirmek adına sudo kullanılmıştır. Eğer hata alırsanız, sudo -u www-data composer install --no-dev --prefer-dist komutunu deneyebilirsiniz.
5.5. Uygulama Anahtarı Oluşturma
Uygulama güvenliği için benzersiz bir uygulama anahtarı oluşturmanız gerekir:
sudo php artisan key:generate
Bu komut .env dosyasındaki APP_KEY değerini otomatik olarak güncelleyecektir.
5.6. Veritabanı Tablolarını Oluşturma ve Varsayılan Verileri Yükleme
Son olarak, veritabanı tablolarını oluşturun ve varsayılan yönetici hesabını ve diğer başlangıç verilerini yükleyin:
sudo php artisan migrate --force
sudo php artisan db:seed --force
--force bayrağı, üretim ortamında çalıştırıldığını onaylamak için gereklidir.
6. Web Sunucusu Yapılandırması (Apache)
Apache’nin Snipe-IT uygulamasını doğru bir şekilde sunması için bir sanal ana bilgisayar (Virtual Host) yapılandırması oluşturmanız gerekir.
6.1. Sanal Ana Bilgisayar Oluşturma
Yeni bir Apache yapılandırma dosyası oluşturun:
sudo nano /etc/apache2/sites-available/snipeit.conf
Aşağıdaki içeriği dosyaya yapıştırın. ServerName ve ServerAlias değerlerini kendi alan adınızla veya IP adresinizle güncelleyin.
ServerAdmin webmaster@localhost
ServerName sizin_alan_adiniz.com
ServerAlias www.sizin_alan_adiniz.com
DocumentRoot /var/www/html/snipeit/public
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Dosyayı kaydedin ve kapatın.
6.2. Rewrite Modülünü Etkinleştirme
Snipe-IT, URL’leri düzgün bir şekilde yönlendirmek için Apache’nin mod_rewrite modülüne ihtiyaç duyar.
sudo a2enmod rewrite
6.3. Sanal Ana Bilgisayarı Etkinleştirme ve Apache’yi Yeniden Başlatma
Yeni oluşturduğunuz sanal ana bilgisayarı etkinleştirin ve Apache’nin varsayılan yapılandırmasını devre dışı bırakın (çakışmaları önlemek için):
sudo a2dissite 000-default.conf
sudo a2ensite snipeit.conf
sudo systemctl restart apache2
Artık tarayıcınızda http://sizin_alan_adiniz.com (veya sunucunuzun IP adresi) adresine giderek Snipe-IT kurulum sihirbazını görmelisiniz. İlk girişte sizden bir yönetici hesabı oluşturmanız istenecektir.
7. Ek Ayarlar ve Bakım
Snipe-IT kurulumunuzu daha işlevsel ve güvenli hale getirmek için bazı ek ayarlar ve bakım adımları vardır.
7.1. Cron Job Kurulumu
Snipe-IT, arka plan görevlerini (e-posta bildirimleri, yedeklemeler vb.) zamanlamak için bir cron işine ihtiyaç duyar.
sudo crontab -e
Açılan dosyaya aşağıdaki satırı ekleyin ve kaydedin:
* php /var/www/html/snipeit/artisan schedule:run >> /dev/null 2>&1
Bu cron işi, her dakika Snipe-IT’nin zamanlanmış görevlerini çalıştıracaktır.
7.2. SSL Kurulumu (Opsiyonel ama Önerilir)
Üretim ortamında Snipe-IT’ye güvenli bir şekilde erişmek için SSL sertifikası kullanmanız şiddetle tavsiye edilir. Let’s Encrypt, ücretsiz SSL sertifikaları sunar ve Ubuntu 16.04 üzerinde Certbot aracı ile kolayca kurulabilir.
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:certbot/certbot -y
sudo apt update
sudo apt install python-certbot-apache -y
Ardından, sertifikayı almak ve Apache yapılandırmanızı otomatik olarak güncellemek için aşağıdaki komutu çalıştırın:
sudo certbot --apache -d sizin_alan_adiniz.com -d www.sizin_alan_adiniz.com
Certbot size bazı sorular soracak ve süreci tamamlayacaktır. Kurulumdan sonra .env dosyasındaki APP_URL değerini https://sizin_alan_adiniz.com olarak güncellemeyi unutmayın.
7.3. Güncelleme Prosedürü
Snipe-IT’yi gelecekte güncellemek için aşağıdaki adımları izleyebilirsiniz:
cd /var/www/html/snipeit
sudo git pull
sudo composer install --no-dev --prefer-dist
sudo php artisan migrate --force
sudo php artisan cache:clear
sudo php artisan view:clear
sudo systemctl restart apache2
Bu adımlar, en son kodu çeker, bağımlılıkları günceller, veritabanı şemasını günceller ve önbelleği temizler.
7.4. Yedekleme Stratejileri
Veri kaybını önlemek için düzenli yedeklemeler kritik öneme sahiptir.
* Veritabanı Yedeklemesi:
sudo mysqldump -u snipeit_user -p snipeit_db > /path/to/backup/snipeit_db_$(date +%F).sql
* Dosya Yedeklemesi: Snipe-IT uygulama dosyalarını ve özellikle yüklenen dosyaların bulunduğu public/uploads dizinini yedekleyin.
sudo tar -zcvf /path/to/backup/snipeit_files_$(date +%F).tar.gz /var/www/html/snipeit
Bu yedekleme komutlarını bir cron işi olarak zamanlayarak otomatik hale getirebilirsiniz.
8. Sorun Giderme ve Sıkça Sorulan Sorular
Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
* 500 Internal Server Error:
* İzinler: Dizin izinlerinin doğru ayarlandığından emin olun (özellikle storage ve public/uploads dizinleri için 775).
* PHP Uzantıları: Tüm gerekli PHP uzantılarının yüklü olduğundan emin olun. php -m komutuyla yüklü uzantıları kontrol edebilirsiniz.
* .env Dosyası: .env dosyasındaki tüm ayarların (özellikle APP_KEY ve veritabanı bilgileri) doğru olduğundan emin olun. APP_KEY boşsa php artisan key:generate komutunu çalıştırın.
* Apache Hataları: /var/log/apache2/error.log dosyasını kontrol edin.
* Sayfa Bulunamadı (404 Not Found) veya URL Yönlendirme Sorunları:
* mod_rewrite: Apache mod_rewrite modülünün etkin olduğundan emin olun (sudo a2enmod rewrite ve sudo systemctl restart apache2).
* Virtual Host: Sanal ana bilgisayar yapılandırmasındaki DocumentRoot‘un /var/www/html/snipeit/public olarak ayarlandığından ve bloğunda AllowOverride All olduğundan emin olun.
* Composer Hataları:
* Bellek Limiti: Eğer Composer bellek hatası verirse, PHP bellek limitini artırmanız gerekebilir. php.ini dosyasında memory_limit değerini artırın (örneğin, memory_limit = 512M).
* Sudo ile Çalıştırma: Composer komutlarını sudo ile çalıştırırken dikkatli olun veya sudo -u www-data gibi komutları kullanın.
* Veritabanı Bağlantı Hataları:
* .env dosyasındaki DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD bilgilerinin doğru olduğundan emin olun.
* MySQL sunucusunun çalıştığından emin olun (sudo systemctl status mysql).
* Veritabanı kullanıcısının doğru ayrıcalıklara sahip olduğunu kontrol edin.
* E-posta Gönderim Sorunları:
* .env dosyasındaki MAIL_DRIVER, MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD ayarlarını kontrol edin.
* Sunucunuzun dışarıya e-posta gönderme izni olduğundan ve bir SMTP sunucusuna bağlanabildiğinden emin olun.
9. Sonuç
Bu rehberde, Snipe-IT varlık yönetim sistemini Ubuntu 16.04 sunucunuza LAMP yığını ile nasıl kuracağınızı adım adım öğrendiniz. Artık BT varlıklarınızı etkili bir şekilde yönetebileceğiniz güçlü bir platforma sahipsiniz. Kurulumun ardından, Snipe-IT arayüzüne giriş yaparak ilk varlıklarınızı ekleyebilir, kullanıcılarınızı tanımlayabilir ve sistemin sunduğu kapsamlı özellikleri keşfetmeye başlayabilirsiniz. Güvenlik ve veri bütünlüğü için düzenli yedeklemeleri ve SSL kullanımını ihmal etmeyin. Snipe-IT, BT varlık yönetim süreçlerinizi optimize etmenize ve operasyonel verimliliğinizi artırmanıza yardımcı olacaktır.
