-
如何使用Apache/Nginx在Ubuntu 20.04服务器上安装InvoiceNinja
本教程将向您展示如何使用Apache或Nginx web服务器在Ubuntu20.04上安装InvoiceNinja。InvoiceNinja是一款开源、自托管的发票软件,是Freshbooks等商业在线发票平台的低成本替代品。InvoiceNinja提供托管发票服务,但如果您想自行托管该软件,可以按照以下说明操作。 忍者特征 使用InvoiceNinja,您可以使用自己的域名和品牌向客户发送发票。 在一个账户下管理多个业务的发票。 通过使用定期发票自动向长期客户计费,节省时间。 轻松创建并向客户发送漂亮的建议。 将第三方文件附加到发票上。 创建项目任务&;追踪时间。 使用可视化项目管理工具组织和规划客户的工作。 让你的客户一眼就能看到他们与你的所有交易。 Zapier automation允许您在发票账户和流行应用程序之间传输数据,包括Gmail、Google Sheets、QuickBooks Online、Slack、Pipeline、MailChimp等。 申请存款;多次使用同一发票支付部分款项。 使用预先编写的自动提醒电子邮件序列提醒客户需要支付发票。 当客户查看并支付发票时接收通知。 还有更多 先决条件 首先,你需要一台至少有512MB内存的Linux服务器。你可以点击这个特殊链接在DigitalOcean上获得100美元的免费积分。(仅限新用户使用)。如果您已经是DigitalOcean用户,那么您可以单击此特殊链接在Vultr上获得50美元的免费积分(仅限新用户)。一旦你在DigitalOcean或Vultr上拥有了一个帐户,请在你的服务器上安装Ubuntu20.04,并按照以下说明操作。 InvoiceNinja需要PHP和MySQL/MariaDB。要学习本教程,您应该已经设置了灯堆栈或LEMP堆栈。如果您还没有这样做,请使用以下指南之一。 如何在Ubuntu 20.04上安装LAMP(Apache、MariaDB、PHP)堆栈 如何在Ubuntu 20.04上安装LEMP(Nginx、MariaDB、PHP)堆栈 你还需要一个域名,这样你的客户就可以通过你的域名看到发票。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 现在让我们安装InvoiceNinja。 第一步:在Ubuntu 20.04服务器上下载InvoiceNinja安装Zip文件 通过SSH登录Ubuntu 20.04服务器。然后运行以下命令将最新版本的InvoiceNinja zip文件下载到服务器上。 wget-O发票忍者。拉链https://download.invoiceninja.com/ 下载后,用解压将归档文件解压缩到/var/www/目录。 sudo apt安装解压sudo mkdir-p/var/www/sudo解压发票忍者。zip-d/var/www/ -d选项指定目标目录。InvoiceNinja web文件将被提取到/var/www/ninja。为了更好地识别每个目录,可以将其重命名为invoice ninja。 sudo mv/var/www/ninja/var/www/invoice ninja 然后我们需要将该目录的所有者更改为www数据,以便web服务器可以写入该目录。 sudo chown www-data:www-data/var/www/invoice-ninja/-R 我们还需要更改存储目录的权限。 sudo chmod 755/var/www/invoice ninja/storage/-R 第2步:在MariaDB中创建数据库和用户 使用以下命令登录MariaDB数据库服务器。由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB根密码。我们只需要在mysql命令前面加上sudo。 sudo mysql 然后为Ninja创建一个数据库。本教程将数据库命名为invoiceninja。你可以用任何你喜欢的名字。 创建数据库invoiceninja; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户ninja@localhost由“您的密码”标识; 授予此用户在invoiceninja数据库上的所有权限。 授予invoiceninja的所有特权。*到ninja@localhost; 刷新权限并退出。 同花顺特权;出口 第3步:安装PHP模块 请注意,InvoiceNinja目前不支持PHP7。4.为了获得最佳兼容性,建议添加PHP7。3 PPA并安装PHP7。3. sudo add apt repository ppa:ondrej/php 然后运行以下命令来安装InvoiceNinja所需或推荐的PHP模块。 sudo apt安装php imagick php7。3-fpm php7。3-mysql php7。3-常见php7。3-gd php7。3-json php7。3-卷曲php7。3拉链php7。3-xml php7。3-Mb字符串php7。3-bz2 php7。3-intl php7。3-gmp 如果使用Apache web服务器,则需要禁用Apache的PHP模块。 sudo a2dismod php7。4. 您还需要禁用prefork MPM模块。 sudo a2dismod mpm_prefork 现在,不管服务器上是否安装了mod_PHP,都需要运行以下命令来启用三个模块,以便使用PHP-FPM。 sudo a2enmod mpm_事件代理_fcgi setenvif 然后重启Apache。 sudo systemctl重启apache2 第4步:设置Web服务器 我们可以使用Apache或Nginx web服务器。 阿帕奇 如果您更喜欢Apache,请为Invoice Ninja创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/发票忍者。形态 将以下文本放入文件中。替换发票。你的地盘。com与你自己的子域名发票忍者。别忘了在DNS管理器中设置域名记录。(请注意,webroot设置为/var/www/invoice ninja/public/,而不是/var/www/invoice ninja/) <;虚拟主机*:80>;服务器名发票。你的地盘。com DocumentRoot/var/www/invoice ninja/public<;目录/var/www/invoice ninja/public>;目录索引。php选项+FollowSymLinks AllowOverride All需要全部授予</目录>;ErrorLog${APACHE_LOG_DIR}/invoice ninja。错误log CustomLog${APACHE_log_DIR}/invoice ninja。通道日志包括/etc/apache2/conf available/php7。3-fpm。形态</VirtualHost>; 保存并关闭文件。然后启用这个虚拟主机。 sudo是忍者。形态 我们需要启用重写模块。 sudo a2enmod重写 重新启动Apache以使更改生效。 sudo systemctl重启apache2 现在访问发票。你的地盘。com,您将被重定向到Invoice Ninja安装向导页面(Invoice.yourdomain.com/setup)。如果看到的是默认的Apache页面而不是安装向导,则需要禁用默认的虚拟主机。 sudo A2000默认值。形态 然后重启Apache。 在设置向导中输入任何信息之前,我们需要启用HTTPS,这将在步骤4中解释。 Nginx 如果你更喜欢Nginx,创建一个发票忍者。conf文件位于/etc/nginx/conf.d/目录中。 sudo nano/etc/nginx/conf.d/invoice-ninja。形态 将以下文本放入文件中。替换发票。你的地盘。com与你自己的子域名发票忍者。别忘了在DNS管理器中设置域名记录。(请注意,webroot设置为/var/www/invoice ninja/public/,而不是/var/www/invoice ninja/) 服务器{listen 80;listen[:]:80;server_name invoice.yourdomain.com;root/var/www/invoice ninja/public/;index index.php index.html index.htm;charset utf-8;location/{try_files$uri$uri//index.php?$query string;}位置=/favicon。ico{access_log off;log_not_found off;}位置=/机器人。txt{access_log off;log_not_found off;}访问_log/var/log/nginx/invoiceninja。通道日志错误_log/var/log/nginx/invoiceninja。错误日志地点~/。php${fastcgi_split_path_info^(.+/.php)(/.+)$;fastcgi_pass unix:/run/php/php7.3-fpm.sock;fastcgi_index index.php;include fastcgi_参数;fastcgi_参数脚本文件名$document_root$fastcgi_脚本名称;fastcgi_拦截错误关闭;fastcgi_缓冲区大小16k;fastcgi_缓冲区4 16k;}地点~//。ht{deny all;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在访问发票。你的地盘。com,您将被重定向到Invoice Ninja安装向导页面(Invoice.yourdomain.com/setup)。在安装向导中输入任何信息之前,我们需要启用HTTPS。 第5步:启用HTTPS 为了加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Ubuntu20.04服务器上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d invoice。你的地盘。通用域名格式 如果使用Apache,请安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--同意tos--重定向--hsts--订书机ocsp--电子邮件[email ;protected]-d发票。你的地盘。通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 第6步:使用安装向导完成安装 现在转到发票。你的地盘。com并输入数据库信息、SMTP设置和创建管理员用户。 如果您想使用自己的邮件服务器向客户发送电子邮件,请查看以下文章以设置自己的邮件服务器。请注意,我强烈建议在全新干净的操作系统上运行iRedMail邮件服务器。在具有其他web应用程序的操作系统上安装iRedMail可能会失败,并可能破坏现有的应用程序。 如何使用iRedMail在Ubuntu20.04上轻松设置功能齐全的邮件服务器 使用自己的电子邮件服务器时,有两个驱动程序可供选择:SMTP和Sendmail。 如果邮件服务器和发票忍者在两台不同的主机上运行,请选择SMTP。 如果邮件服务器和发票忍者在同一台主机上运行,请选择Sendmail。 如果选择SMTP,请使用如下设置。 主持人:邮件。你的地盘。com端口:587加密:TLS。然后输入用户名和密码。 如果选择Sendmail,请使用如下设置。 主机:127.0.0.1端口:25加密:无。你不需要输入用户名或密码。 创建管理员用户后,您可以登录到InvoiceNinja。 设置Cron作业 我们需要设置Cron作业来发送定期发票和电子邮件提醒。编辑根用户的crontab文件。 sudo crontab-e 在该文件末尾添加以下行。 #发票忍者08***/usr/bin/php7。3/var/www/invoice ninja/artisan ninja:发送发票>/dev/null 0 8***/usr/bin/php7。3/var/www/invoice ninja/artisan ninja:发送提醒>/dev/null 保存并关闭文件。这两个Cron作业将在每天早上8点运行。您还可以手动运行以下作业。 sudo/usr/bin/php7。3/var/www/invoice ninja/artisan ninja:发送发票 删除发票忍者品牌 默认情况下,您的发票将具有发票忍者品牌,您可以以每年30美元的价格购买白标签许可证,以从发票和客户端门户中删除发票忍者品牌。转到设置->;发票设计,点击底部的白色标签链接购买。 结论 我希望本教程能帮助您在Ubuntu 20.04服务器上安装Invoice Ninja。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?