Bevezetés
Előfeltételek
1. lépés: Frissítse a rendszert
2. lépés: Telepítse a LEMP-vermet
3. lépés: Állítsa be az adatbázist
4. lépés: A PHP-FPM konfigurálása
5. lépés: Töltse le és konfigurálja a Invoice Ninja alkalmazást
6. lépés: Az Nginx konfigurálása a Invoice Ninja számára
7. lépés: Hozzáférés a számla nindzsához
Bevezetés
Az Invoice Ninja egy ingyenes és nyílt forráskódú web-alapú alkalmazás, amely számlázásra, fizetésre, időkövetésre és még sok másra használható. Ez a legjobb megoldás az ügyfelek számlázására és számlázására. Könnyen, másodpercek alatt online hozhat létre és küldhet számlákat. Az Invoice Ninja lehetővé teszi egyéni számlák létrehozását, és élő számlák megjelenítését PDF-fájlként.
Ebben az oktatóanyagban elmagyarázom, hogyan telepíthető az Invoice Ninja az Ubuntu 16.04 kiszolgálóra.
Előfeltételek
- Egy Ubuntu 16.04 szerverpéldány 2 GB RAM-mal.
- Root jogosultsággal rendelkező sudo felhasználó.
- Ismernie kell a kiszolgálópéldány fő IP-címét. Ebben az oktatóanyagban a következőt fogom használni
192.168.0.227.
1. lépés: Frissítse a rendszert
Mielőtt bármilyen csomagot telepítene az Ubuntu kiszolgálópéldányra, ajánlott frissíteni a rendszert. Jelentkezzen be a szerverére SSH-n keresztül sudo felhasználóként, és futtassa a következő parancsot:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
2. lépés: Telepítse a LEMP-vermet
Mielőtt elkezdené, konfigurálnia kell egy LEMP-t (Nginx, MariaDB és PHP) a kiszolgálón.
Először telepítse az Nginxet és a MariaDB-t a következő paranccsal:
sudo apt-get install nginx mariadb-server -y
A telepítés befejezése után indítsa el az Nginx és MariaDB szolgáltatásokat, és engedélyezze, hogy elinduljanak a rendszerindításkor:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql
Ezután PHP 7-re és PHP-FPM-re lesz szüksége a Invoice Ninja telepítéséhez.
A PHP-FPM és a többi szükséges PHP kiterjesztés a következő paranccsal telepíthető:
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
A telepítés befejezése után módosítania kell a php.inikonfigurációs fájlt:
sudo nano /etc/php/7.0/fpm/php.ini
Módosítsa a következő sort:
cgi.fix_pathinfo=0
Mentse és zárja be a fájlt.
Alapértelmezés szerint a MariaDB telepítése nincs biztonságban. Biztosítania kell. Ezt futással teheti meg mysql_secure_installation script.
sudo mysql_secure_installation
Válaszoljon az összes kérdésre az alábbiak szerint:
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
Ha minden kész, csatlakozzon a MySQL shell használatával a következő paranccsal:
mysql -u root -p
Írja be a root jelszavát, és nyomja meg az "enter" gombot, ekkor megjelenik a MySQL (MariaDB) shell.
Hozzon létre egy új adatbázist és egy új felhasználót az Invoice Ninja számára.
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
Állítsa be a PHP-FPM-készletet az Nginx felhasználó számára:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Adja hozzá a következő sorokat:
[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 = /
Mentse és zárja be a fájlt, ha végzett, majd indítsa újra a PHP-FPM-et a változtatások alkalmazásához.
systemctl restart php7.0-fpm
A következő paranccsal letöltheti az Invoice Ninja legújabb stabil verzióját a GitHub tárolóból:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Ezenkívül telepítenie kell a Composert, a PHP függőségi kezelőjét. A következő paranccsal telepítheti:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Ezután telepítse az összes Invoice Ninja függőséget az composeralábbi paranccsal:
cd /var/www/html/ninja
sudo composer install --no-dev -o
A telepítés után nevezze át a .envfájlt, és hajtson végre néhány módosítást.
sudo mv .env.example .env
sudo nano .env
Változtassa meg a sorokat az alábbiak szerint:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Ha végzett, mentse a fájlt, majd futtassa a következő parancsot az adatbázis előkészítéséhez:
sudo php artisan migrate
A rendszer kéri, hogy futtassa a parancsot, írja be a „yes”-t, és nyomja meg az „enter” billentyűt.
Ezután indítsa el az adatbázist rekordokkal az alábbiak szerint:
sudo php artisan db:seed
Írja be a „yes”-t, és nyomja meg az „enter” gombot.
Ezután módosítsa a /var/www/html/ninjacímtár tulajdonjogát :
sudo chown -R www-data:www-data /var/www/html/ninja/
Ezután létre kell hoznia egy SSL-tanúsítványt, és létre kell hoznia egy új virtuális gazdagép-konfigurációt az Invoice Ninja számára.
Először hozzon létre egy könyvtárat az SSL számára:
sudo mkdir -p /etc/nginx/cert/
Ezután hozzon létre egy SSL-tanúsítványt a következő paranccsal:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Adjon megfelelő engedélyeket a tanúsítványfájlhoz.
sudo chmod 600 /etc/nginx/cert/*
Hozzon létre egy új virtuális gazdagép konfigurációs fájlt a /etc/nginx/könyvtárban.
sudo nano /etc/nginx/conf.d/ninja.conf
Adja hozzá a következő sorokat:
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;
}
}
Mentse és zárja be a fájlt. Ezután engedélyezze a virtuális gazdagépet a következő paranccsal.
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Végül indítsa újra az Nginx webszervert.
sudo systemctl restart nginx
7. lépés: Hozzáférés a számla nindzsához
Mielőtt hozzáférne az Invoice Ninja webes felületéhez, engedélyeznie kell a HTTP és HTTPS szolgáltatásokat az UFW tűzfalon keresztül. Futtassa a következő parancsokat a portok megnyitásához:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Végül nyissa meg a webböngészőt, és nyissa meg az URL-t https://192.168.0.227. Ezután elvégezheti a szükséges lépéseket a telepítés befejezéséhez.
Gratulálunk! Sikeresen telepítettük az Invoice Ninja-t az Nginx-szel és a MariaDB-vel az Ubuntu 16.04 kiszolgálón.