Ubuntu 16.04 Üzerine Fatura Ninja Nasıl Kurulur

Giriş

Invoice Ninja, faturalama, ödemeler, zaman takibi ve çok daha fazlası için kullanılabilen ücretsiz ve açık kaynaklı web tabanlı bir uygulamadır. Faturalama ve faturalandırma müşterileri için en iyi çözümdür. Birkaç saniyede kolayca fatura oluşturabilir ve çevrimiçi olarak gönderebilirsiniz. Invoice Ninja, özel faturalar oluşturmanıza ve canlı faturaları PDF dosyası olarak göstermenize olanak tanır.

Bu derste, Invoice Ninja'yı Ubuntu 16.04 sunucusuna nasıl kuracağınızı açıklayacağım.

Ön şartlar

  • 2 GB RAM kurulu bir Ubuntu 16.04 sunucu örneği.
  • Kök ayrıcalıklarına sahip bir sudo kullanıcısı.
  • Sunucu örneğinizin ana IP'sini bilmeniz gerekir. Bu derste, kullanacağım 192.168.0.227.

1. Adım: Sistemi güncelleyin

Ubuntu sunucusu yönetim ortamına herhangi bir paket kurmadan önce sistemi güncellemeniz önerilir. Sudo kullanıcınız olarak SSH üzerinden sunucunuza giriş yapın ve aşağıdaki komutu çalıştırın:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

Adım 2: LEMP yığınını yükleyin

Başlamadan önce, sunucunuzda bir LEMP (Nginx, MariaDB ve PHP) yığını yapılandırmanız gerekir.

İlk olarak, aşağıdaki komutla Nginx ve MariaDB'yi yükleyin:

sudo apt-get install nginx mariadb-server -y

Kurulum tamamlandığında, Nginx ve MariaDB hizmetlerini başlatın ve önyüklemede başlamalarını sağlayın:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

Ardından, Invoice Ninja kurulumu için PHP 7 ve PHP-FPM'ye ihtiyacınız olacak.

PHP-FPM ve diğer gerekli PHP uzantılarını aşağıdaki komutla kurabilirsiniz:

sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt

Yükleme tamamlandığında, php.iniyapılandırma dosyasını değiştirmeniz gerekir :

sudo nano /etc/php/7.0/fpm/php.ini

Aşağıdaki satırı değiştirin:

cgi.fix_pathinfo=0

Dosyayı kaydedip kapatın.

3. Adım: Veritabanını yapılandırın

Varsayılan olarak, MariaDB yüklemesi güvenli değildir. Güvenceye almanız gerekecek. Bunu çalıştırarak yapabilirsiniz mysql_secure_installation script.

sudo mysql_secure_installation

Tüm soruları aşağıda gösterildiği gibi cevaplayın:

Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Her şey tamamlandığında, aşağıdaki komutla MySQL kabuğunu kullanarak bağlanın:

mysql -u root -p

Kök şifrenizi girin ve "enter" tuşuna basın, MySQL (MariaDB) kabuğunu göreceksiniz.

Invoice Ninja için yeni bir veritabanı ve yeni bir kullanıcı oluşturun.

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Adım 4: PHP-FPM'yi yapılandırma

PHP-FPM havuzunu Nginx kullanıcısı için yapılandırın:

sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf

Aşağıdaki satırları ekleyin:

[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

İşiniz bittiğinde dosyayı kaydedin ve kapatın, ardından bu değişiklikleri uygulamak için PHP-FPM'yi yeniden başlatın.

systemctl restart php7.0-fpm

5. Adım: Invoice Ninja'yı indirin ve yapılandırın

Invoice Ninja'nın en son kararlı sürümünü GitHub deposundan aşağıdaki komutla indirebilirsiniz:

cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja

PHP için bir bağımlılık yöneticisi olan Composer'ı da kurmanız gerekir. Aşağıdaki komutla kurabilirsiniz:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Ardından, composeraşağıda gösterildiği gibi komutu kullanarak tüm Fatura Ninja bağımlılıklarını yükleyin :

cd /var/www/html/ninja
sudo composer install --no-dev -o

Yükleme tamamlandıktan sonra .envdosyayı yeniden adlandırın ve bazı değişiklikler yapın.

sudo mv .env.example .env
sudo nano .env

Çizgileri aşağıda gösterildiği gibi değiştirin:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

İşiniz bittiğinde dosyayı kaydedin, ardından veritabanını hazırlamak için aşağıdaki komutu çalıştırın:

sudo php artisan migrate

Komutu çalıştırmanız istenir, "evet" yazın ve "enter" tuşuna basın.

Ardından, veritabanını aşağıda gösterildiği gibi kayıtlarla tohumlayın:

sudo php artisan db:seed

"Evet" yazın ve "enter" tuşuna basın.

Ardından, /var/www/html/ninjadizinin sahipliğini değiştirin :

sudo chown -R www-data:www-data /var/www/html/ninja/

Adım 6: Fatura Ninja için Nginx'i Yapılandırma

Ardından, bir SSL sertifikası oluşturmanız ve Invoice Ninja için yeni bir sanal ana bilgisayar yapılandırması oluşturmanız gerekecektir.

İlk olarak, SSL için bir dizin oluşturun:

sudo mkdir -p /etc/nginx/cert/

Ardından, aşağıdaki komutla bir SSL sertifikası oluşturun:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Sertifika dosyasına uygun izinler verin.

sudo chmod 600 /etc/nginx/cert/*

/etc/nginx/Dizinin içinde yeni bir sanal ana bilgisayar yapılandırma dosyası oluşturun .

sudo nano /etc/nginx/conf.d/ninja.conf

Aşağıdaki satırları ekleyin:

server {
    listen  80;
    server_name 192.168.0.227;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen  443 default;
    server_name 192.168.0.227;
    ssl on;
    ssl_certificate     /etc/nginx/cert/ninja.crt;
    ssl_certificate_key /etc/nginx/cert/ninja.key;
    ssl_session_timeout 5m;
    ssl_ciphers  'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    root /var/www/html/ninja/public;
    index index.html index.htm index.php;
    charset utf-8;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
       }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    # Access and Error Log for Invoice Ninja
    access_log  /var/log/nginx/ininja.access.log;
    error_log   /var/log/nginx/ininja.error.log;

    sendfile off;

    # Handle PHP Applications
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm-www-data.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors off;
    fastcgi_buffer_size 16k;
    fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
       deny all;
       }
    }

Dosyayı kaydedip kapatın. Sonra sanal ana bilgisayarı aşağıdaki komutla etkinleştirin.

sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/

Son olarak, Nginx web sunucusunu yeniden başlatın.

sudo systemctl restart nginx

Adım 7: Fatura Ninja'ya erişin

Invoice Ninja web arayüzüne erişmeden önce, UFW güvenlik duvarı üzerinden HTTP ve HTTPS hizmetlerine izin vermeniz gerekecektir. Bu bağlantı noktalarını açmak için aşağıdaki komutları çalıştırın:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Son olarak, web tarayıcınızı açın ve URL'ye erişin https://192.168.0.227. Ardından, yüklemeyi tamamlamak için gerekli adımları tamamlayabilirsiniz.

Tebrikler! Ubuntu 16.04 sunucusuna Nginx ve MariaDB ile Invoice Ninja'yı başarıyla kurduk.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun