更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Ubuntu 22.04上安装和配置Invoice Ninja 5的方法

在Ubuntu 22.04上安装和配置Invoice Ninja 5的方法

更新时间:2023-01-12 10:26:38浏览次数:423+次

本文介绍如何在Ubuntu 22.04系统上安装和配置Invoice Ninja 5的方法。

前提条件

如果您具备以下条件,本文将发挥最佳作用:

1]、Ubuntu 22.04系统运行。

2]、sudo访问。

3]、指向IP的域名。

首先,将系统和可用软件包更新到最新可用版本:

sudo apt update && sudo apt upgrade -y

[ -f /var/run/reboot-required ] && sudo reboot -f

安装所需的软件包:

sudo apt install software-properties-common apt-transport-https ca-certificates gnupg2 vim  -y

设置系统的主机名。

sudo hostnamectl set-hostname invoiceninja.computingforgeeks.com

确保已将其添加到主机文件中:

$ sudo vim /etc/hosts

192.168.205.22  invoiceninja.computingforgeeks.com  invoiceninja

安装和配置Invoice Ninja 5的方法

1、在Ubuntu22.04上安装LAMP堆栈

LAMP由Apache web服务器、PHP和MariaDB数据库组成。这些软件包可以使用以下命令安装在Ubuntu系统上。下面安装Apache和MariaDB:

sudo apt install apache2 mariadb-server mariadb-client

Invoice Ninja 5目前与默认Ubuntu 22.04存储库提供的PHP 8.1兼容,我们不需要添加额外的存储库来安装它:

sudo apt install php-{fpm,soap,bcmath,common,imagick,mysql,gmp,curl,intl,mbstring,xmlrpc,gd,xml,cli,zip,bz2} libapache2-mod-php

完成后,检查版本:

$ php -v

PHP 8.1.2-1ubuntu2.8 (cli)

确保PHP-FPM正在运行:

$ systemctl status php*-fpm.service

php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager

2、配置Invoice Ninja 5数据库

我们已经安装了MariaDB服务器。在继续之前,我们需要启动并启用服务:

sudo systemctl enable --now mariadb

确保安装安全:

sudo mysql_secure_installation

如下所示:

Enter current password for root (enter for none): Press Enter

Switch to unix_socket authentication [Y/n] y

Change the root password? [Y/n] y

New password: Enter Password

Re-enter new password: Re-Enter 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

Thanks for using MariaDB!

使用上面创建的密码登录shell:

sudo mysql -u root -p

现在为Invoice Ninja 5创建一个数据库:

create database invoicedb;

create user invoice@localhost identified by 'Str0ngPassw0rd123';

grant all privileges on invoicedb.* to invoice@localhost;

flush privileges;

exit;

3、在Ubuntu 22.04上安装Invoice Ninja 5

我们将首先从Github发布页面下载最新的存档,地址在https://github.com/invoiceninja/invoiceninja/releases。这也可以使用wget完成。首先,导出需要的版本,比如:

VER=v5.5.40

现在下载存档:

wget https://github.com/invoiceninja/invoiceninja/releases/download/$VER/invoiceninja.zip

下载后,将其解压缩到Apache根目录:

sudo unzip invoiceninja.zip -d /var/www/html/

为创建的目录设置所需的权限:

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

sudo chmod -R 755 /var/www/html

现在导航到目录:

cd /var/www/html

将环境文件复制到备份文件:

sudo cp .env.example .env

编辑文件:

sudo vim .env

修改以下行:

APP_URL=//invoiceninja.computingforgeeks.com

DB_CONNECTION=mysql

MULTI_DB_ENABLED=false

DB_HOST=localhost

DB_DATABASE=invoicedb

DB_USERNAME=invoice

DB_PASSWORD=Str0ngPassw0rd123

DB_PORT=3306

保存并关闭文件,然后设置文件的正确所有权:

sudo chown www-data:www-data /var/www/html/.env

为您的InvoiceInja安装生成唯一的应用程序密钥。

$ sudo php /var/www/html/artisan key:generate

使用以下命令迁移数据库:

$ sudo php /var/www/html/artisan migrate:fresh --seed

4、为Invoice Ninja 5配置Apache

现在我们需要配置Apache Web服务器,以便能够为Invoice Ninja 5页面提供服务。这可以通过创建虚拟主机文件来完成,如下所示:

sudo vim /etc/apache2/sites-available/ninja.conf

在文件中,添加以下行:

<VirtualHost *:80>

    ServerName invoiceninja.computingforgeeks.com

    DocumentRoot /var/www/html/public

    <Directory /var/www/html/public>

       DirectoryIndex index.php

       Options +FollowSymLinks

       AllowOverride All

       Require all granted

    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log

    CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined

    #Include /etc/apache2/conf-available/php8.1-fpm.conf

</VirtualHost>

在文件中,正确替换服务器名称和PHP-FPM版本。更改完成后,保存文件并启用站点:

sudo a2ensite ninja.conf

启用所需的apache模块:

sudo a2enmod mpm_event proxy_fcgi setenvif

sudo a2enmod rewrite

禁用默认页面:

sudo a2dissite 000-default.conf

要应用所做的更改,请重新启动Apache:

sudo systemctl restart apache2

验证Apache是否正确运行:

$ systemctl status apache2

5、为Invoice Ninja 5启用HTTPS

也可以使用SSL证书为您启用HTTPS。要为域名生成免费SSL证书,可以使用Let's Encrypt。

首先,安装所需的软件包:

sudo apt install python3-certbot-apache -y

安装后,可以使用以下命令为站点生成证书:

certbot --apache -d invoiceninja.computingforgeeks.com

在上述命令中,将invoiceninja.computingorgeeks.com替换为完全限定域名。

您将被要求接受许可条款并提供一些详细信息。

完成后,允许将HTTP流量重定向到HTTPS。之后,您将所有HTTP请求重定向到HTTPS。

6、在Ubuntu 22.04上访问Invoice Ninja 5

现在我们可以在Ubuntu 22.04上访问Invoice Ninja 5了。这可以通过您最喜欢的浏览器使用URL完成,http://domain_name或 https://domain_name。

您将被重定向进行初始设置。最开始得提供网站的URL。提供后,单击测试PDF。如果成功,请继续并按照前面创建的方式配置数据库。到时将SMTP配置为能够使用GMAIL帐户转发。所需的详细信息包括:

驱动程序:SMTP

主机:smtp.gmail.com

用户名:您的Gmail用户名

密码:您的Gmail密码

端口:587

加密:STARTTLS

密码:谷歌应用程序密码

谷歌应用程序密码是应用程序的特定密码,可以通过导航到安全>应用程序密码从Gmail帐户生成。单击应用程序密码后,从下拉菜单中选择应用程序作为邮件。

对于设备,选择其他(自定义名称),并提供名称Ninja或任何其他首选名称。

然后为应用程序生成密码。一旦生成。您需要复制此密码,因为在下面的步骤中需要它。

遇到填写详细信息的,根据自己的情况填写即可。然后为Invoice Ninja创建一个管理员帐户,届时将重定向到登录页面:

请使用上面创建的用户凭据登录。在认证后,您需要设置公司名称、主题、语言等:

\

配置后,您将获得以下仪表板:

\

7、安排Invoice Ninja 5的电子邮件提醒

现在,您可以配置Cron Jobs发送定期发票和电子邮件提醒。这可以使用以下命令完成:

sudo -u www-data crontab -e

在文件中,添加以下行:

#InvoiceNinja

0 8 * * * /usr/bin/php /var/www/html/artisan ninja:send-recurring > /dev/null

0 8 * * * /usr/bin/php /var/www/html/artisan ninja:send-reminders > /dev/null

* * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1

关闭该文件并测试Cron作业是否可以在没有任何错误的情况下执行:

sudo /usr/bin/php /var/www/html/artisan schedule:run

结语

根据以上步骤,就可以在Ubuntu 22.04系统上成功安装和配置Invoice Ninja 5。