如何在Ubuntu 16.04上安装Invoice Ninja

介绍

忍者发票(Invoice Ninja)是一个基于Web的免费开放源代码应用程序,可用于发票,付款,时间跟踪等。这是为客户开票和开票的最佳解决方案。您可以在几秒钟内轻松地在线创建和发送发票。通过“忍者发票”,您可以创建自定义发票并将实时发票显示为PDF文件。

在本教程中,我将说明如何在Ubuntu 16.04服务器上安装Invoice Ninja。

先决条件

  • 已安装2GB RAM的Ubuntu 16.04服务器实例。
  • 具有root特权的sudo用户。
  • 您将需要知道服务器实例的主要IP。在本教程中,我将使用192.168.0.227

步骤1:更新系统

在Ubuntu服务器实例上安装任何软件包之前,建议先更新系统。以sudo用户身份通过​​SSH登录到服务器,并运行以下命令:

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

步骤2:安装LEMP堆栈

在开始之前,您将需要在服务器上配置LEMP(Nginx,MariaDB和PHP)堆栈。

首先,使用以下命令安装Nginx和MariaDB:

sudo apt-get install nginx mariadb-server -y

安装完成后,启动Nginx和MariaDB服务,并使它们能够在启动时启动:

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

接下来,您将需要PHP 7和PHP-FPM来安装Invoice Ninja。

您可以使用以下命令安装PHP-FPM和其他必需的PHP扩展:

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

安装完成后,您将需要修改php.ini配置文件:

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

更改以下行:

cgi.fix_pathinfo=0

保存并关闭文件。

步骤3:配置数据库

默认情况下,MariaDB安装不受保护。您将需要保护它。您可以通过运行来做到这一点mysql_secure_installation script

sudo mysql_secure_installation

回答所有问题,如下所示:

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

完成所有操作后,使用以下命令使用MySQL Shell连接:

mysql -u root -p

输入您的root密码,然后按“输入”,您将看到My​​SQL(MariaDB)Shell。

为发票忍者创建一个新的数据库和一个新用户。

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

步骤4:配置PHP-FPM

为Nginx用户配置PHP-FPM池:

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

添加以下行:

[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 = /

完成后保存并关闭文件,然后重新启动PHP-FPM以应用这些更改。

systemctl restart php7.0-fpm

第5步:下载并配置发票忍者

您可以使用以下命令从GitHub存储库中下载Invoice Ninja的最新稳定版本:

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

您还需要安装Composer,它是PHP的依赖项管理器。您可以使用以下命令进行安装:

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

接下来,使用composer如下所示的命令安装所有Invoice Ninja依赖项:

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

安装完成后,重命名该.env文件并进行一些更改。

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

更改行,如下所示:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

完成后保存文件,然后运行以下命令以准备数据库:

sudo php artisan migrate

系统将提示您运行命令,键入“是”,然后按“输入”。

接下来,为数据库播种记录,如下所示:

sudo php artisan db:seed

输入“是”,然后按“输入”。

接下来,更改/var/www/html/ninja目录的所有权:

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

步骤6:为发票忍者配置Nginx

接下来,您将需要创建一个SSL证书并为Invoice Ninja创建一个新的虚拟主机配置。

首先,为SSL创建目录:

sudo mkdir -p /etc/nginx/cert/

接下来,使用以下命令生成SSL证书:

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

给证书文件适当的权限。

sudo chmod 600 /etc/nginx/cert/*

/etc/nginx/目录内部创建一个新的虚拟主机配置文件。

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

添加以下行:

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;
       }
    }

保存并关闭文件。然后使用以下命令启用虚拟主机。

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

最后,重新启动Nginx Web服务器。

sudo systemctl restart nginx

第7步:访问发票忍者

访问Invoice Ninja Web界面之前,您将需要允许通过UFW防火墙的HTTP和HTTPS服务。运行以下命令以打开这些端口:

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

最后,打开您的Web浏览器并访问URL https://192.168.0.227。然后,您可以完成所需的步骤以完成安装。

恭喜你!我们已经在Ubuntu 16.04服务器上成功使用Nginx和MariaDB安装了Invoice Ninja。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息