如何在 CentOS 7 上安装 Invoice Ninja

在本教程中,我们将向您展示如何在您的 CentOS 7 上安装和配置 Invoice Ninja。对于那些不知道的人,Invoice Ninja 是一个免费和开源的基于 Web 的应用程序软件,可用于发票、付款、时间跟踪等等。 它是为客户开具发票和计费的最佳解决方案。 您可以在几秒钟内轻松地在线创建和发送发票。 Invoice Ninja 允许您创建自己的自定义发票并将实时发票显示为 PDF 文件。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 CentOS 7 服务器上逐步安装 Invoice Ninja。

发票忍者的功能

  • 创建工作任务并跟踪时间
  • 在几秒钟内在线创建发票
  • 通过电子邮件发送发票并在线获得付款
  • 移动响应式设计
  • 集成 45 多个支付网关
  • 10个新的发票模板设计
  • 查看实时发票 .PDF 创建
  • 将您的公司徽标添加到发票中
  • 报价转换为发票
  • 自动计费和定期发票
  • 多种税收设置
  • 支持多种货币
  • 用于查看发票的客户端
  • 支付发票时发出警报
  • 设置发票付款到期日
  • 进口费用和设置供应商

在 CentOS 7 上安装 Invoice Ninja

第 1 步。首先,让我们首先确保您的系统是最新的。

yum clean all yum -y install epel-release yum -y update

步骤 2. 安装 LEMP 服务器。

需要 CentOS 7 LEMP 堆栈服务器。 如果您没有安装 LEMP,您可以在此处按照我们的指南进行操作。 此外,安装所需的 PHP 模块:

yum install install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-curl php70w-gmp php70w-pdo php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt

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

nano /etc/php.ini

更改以下行:

cgi.fix_pathinfo=0

步骤 3. 为 Invoice Ninja 配置 MariaDB。

默认情况下,MariaDB 未加固。 您可以使用 mysql_secure_installation 脚本。 您应该仔细阅读以下每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录、删除测试数据库和访问安全 MariaDB:

mysql_secure_installation

像这样配置它:

- Set root password? [Y/n] y - 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

接下来,我们需要登录 MariaDB 控制台并为 Invoice Ninja 创建一个数据库。 运行以下命令:

mysql -u root -p

这将提示您输入密码,因此输入您的 MariaDB 根密码并点击 Enter. 登录到数据库服务器后,您需要为 Invoice Ninja 安装创建一个数据库:

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 池:

nano /etc/php-fpm.d/www.conf

更改以下行:

user = nginx group = nginx listen = /var/run/php/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp

Save 文件并从文本编辑器中退出。

接下来,您需要为 PHP 会话和套接字文件创建一个新目录:

mkdir -p /var/lib/php/session mkdir -p /var/run/php/ chown -R nginx:nginx /var/lib/php/session/ chown -R nginx:nginx /var/run/php/

接下来,启动 PHP-FPM 并使用以下命令使其在启动时启动:

systemctl start php-fpm systemctl enable php-fpm

步骤 5. 安装 Invoice Ninja。

首先要做的是到 Invoice Ninja 的下载页面下载 Invoice Ninja 的最新稳定版本:

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

您需要安装作曲家:

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

接下来,使用 composer 安装所有 Invoice Ninja 依赖项:

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

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

mv .env.example .env nano .env

根据您的数据库更改数据库值:

DB_DATABASE=ninja_db DB_USERNAME=ninja DB_PASSWORD=Y0urPa55w0rd

Save 文件并从文本编辑器中退出。 接下来,在 config 目录中编辑数据库配置:

nano config/database.php

更改以下行:

'database'  => env('DB_DATABASE', 'ninja_db'), 'username'  => env('DB_USERNAME', 'ninja'), 'password'  => env('DB_PASSWORD', 'Y0urPa55w0rd'),

Save 文件并从文本编辑器退出并使用以下命令准备数据库:

php artisan migrate

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

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

php artisan db:seed

运行以下命令生成应用程序密钥并记下此应用程序密钥:

php artisan key:generate

接下来,编辑 app.php 带有 nano 文本编辑器的文件:

nano config/app.php

添加密钥,如下所示:

'key' => env('APP_KEY', 'y0urGenerated Key'),

Save 和 close 该文件还更改了一些文件夹权限:

chown -R nginx:nginx /var/www/html/ninja/

步骤 6. 为 Invoice Ninja 配置 Nginx。

创建 SSL 证书并为 Invoice Ninja 创建新的虚拟主机配置:

mkdir -p /etc/nginx/cert/openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.keychmod 600 /etc/nginx/cert/*

接下来,在里面新建一个虚拟主机配置文件 /etc/nginx/ 目录:

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

添加以下行:

server {     listen  80;     server_name idroot.us;     add_header Strict-Transport-Security max-age=2592000;     rewrite ^ https://$server_name$request_uri? permanent; }  server {     listen  443 default;     server_name 192.168.15.23;     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/php-fpm.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;        }     }

Save 和 close 文件。 重启 Nginx 服务以使更改生效:

systemctl restart nginx

步骤 7. 配置 FirewallD Invoice Ninja。

在访问 Invoice Ninja Web 界面之前,您需要允许 HTTP 和 HTTPS 服务通过 firewalld:

firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload

步骤 8. 访问 Invoice Ninja。

默认情况下,Invoice Ninja 将在 HTTP 端口 80 上可用。 打开您喜欢的浏览器并导航到 https://your-domain.com/ 或者 https://your-server-ip 并完成所需的步骤以完成安装。

恭喜! 您已成功安装 Invoice Ninja。 感谢您使用本教程在 CentOS 7 系统上安装 Invoice Ninja。 如需更多帮助或有用信息,我们建议您查看 Invoice Ninja 官方网站.

Save