更新时间:2023-01-12 10:26:38浏览次数:560+次
本文介绍如何在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。