如何在 Ubuntu 22.04 上安装 SolidInvoice
SolidInvoice 是一个基于 PHP 的免费、简单、优雅的发票解决方案。 它专为小型企业处理日常计费操作而设计。 SolidInvoice 提供 RESTful API 进行集成,并提供各种通知渠道,例如短信、电子邮件或 HipChat。
本指南将向您展示如何在 Ubuntu 22.04 服务器上安装 SolidInvoice。 您将使用 LAMP Stack 设置 SolidInvoice,并使用 Certbot 和 Letsencrypt 保护安装。
先决条件
在开始之前,请确保您拥有:
- Ubuntu 22.04 服务器。
- 具有 sudo 权限的非 root 用户。
- 域名指向服务器IP地址。
安装依赖项
SolidInvoice 是一个用 PHP 和 MySQL 编写的开源发票应用程序。 要安装它,您必须在 Ubuntu 系统上安装 LAMP Stack。 在第一步中,您将从默认的 Ubuntu 存储库安装 LAMP Stack。
使用以下命令更新您的 Ubuntu 软件包索引。
sudo apt update
现在使用以下命令安装 LAMP Stack(Linux、Apache、MySQL/MariaDB 和 PHP)依赖项。 在此示例中,您将使用默认 PHP 8.x 进行 SolidInvoice 安装。
sudo apt install apache2 mariadb-server mariadb-client php php-curl php-common php-mbstring php-json php-mysql php-opcache php-bcmath php-intl php-gd php-xml php-soap php-zip php-apcu
键入 Y 确认安装。
安装完成后,运行以下命令检查Apache和MariaDB服务状态,确保两个服务都在运行。
sudo systemctl status apache2
sudo systemctl status mysql
如果 Apache 或 MariaDB 正在运行,您将看到输出活动(正在运行)。
最后,使用以下命令检查 PHP 版本。 您将看到 Ubuntu 系统上安装了 PHP 8.x。
php -v
设置 MariaDB 服务器
安装 LAMP Stack 后,您需要设置 MariaDB 服务器安装。 首先,您将保护 MariaDB 服务器的安全,然后创建 SolidInvoice 将使用的新数据库和用户。
要保护 MariaDB 服务器安装,请输入以下内容:
sudo mariadb-secure-installation
在此过程中,输入 Y 确认对 MariaDB 的更改,或输入 N 拒绝更改。 以下是系统将提示您的 MariaDB 服务器配置:
- 默认的 MariaDB 安装没有密码,当提示输入密码时按 ENTER。
- 现在输入 Y 设置 MariaDB root 密码。 然后,输入 MariaDB 的新密码并重复该密码。
- 输入 Y 从 MariaDB 安装中删除匿名用户。
- 当提示禁用 MariaDB root 用户远程登录时,再次输入 Y。
- 输入 Y 从 MariaDB 中删除默认数据库测试。
- 最后,输入 Y 重新加载表权限并应用新的更改。
现在您已经保护了 MariaDB,请输入以下内容以默认 root 用户身份登录 MariaDB。 当询问时输入您的 MariaDB root 密码。
sudo mariadb -u root -p
登录后,运行以下查询来创建一个新数据库solidinvoicedb,用户为solidinvoice,密码为p4ssword。 确保使用您的信息更改详细信息,SolidInvoice 将使用这些数据库详细信息。
CREATE DATABASE solidinvoicedb;
CREATE USER solidinvoice@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON solidinvoicedb.* TO solidinvoice@localhost;
FLUSH PRIVILEGES;
现在运行下面的查询来检查用户solidinvoice 的权限。 确保用户solidinvoice 可以访问数据库solidinvoicedb。
SHOW GRANTS FOR solidinvoice@localhost;
最后,输入 quit 退出 MariaDB 服务器。
设置 PHP
保护并配置 MariaDB 服务器后,您将设置 PHP 安装。 在这种情况下,您需要修改默认的PHP配置文件php.ini。
使用 nano 编辑器打开默认 PHP 配置 /etc/php/8.1/apache2/php.ini。
sudo nano /etc/php/8.1/apache2/php.ini
使用以下内容更改默认的 PHP 配置,并确保根据您的服务器环境调整 memory_limit 和 date.timezone。
date.timezone = Europe/Amsterdam
memory_limit=512M
upload_max_filesize=64M
post_max_size=120M
max_execution_time=120
保存文件并退出。
现在,使用以下命令重新启动 Apache 服务以将修改应用到 PHP。
sudo systemctl restart apache2
下载 SolidInvoice
现在您已经配置了 MariaDB 和 PHP,您现在可以下载 SolidInvoice 源代码并使用适当的权限和所有权进行安装。
进入 /var/www 目录并使用 wget 下载 SolidInvoice 源代码。 检查 SolidInvoice 发布页面以获取最新版本。
cd /var/www/
wget https://github.com/SolidInvoice/SolidInvoice/releases/download/2.2.5/SolidInvoice-2.2.5.zip
将 SolidInvoice 源代码提取到 SolidInvoice 目录并将所有权更改为 www-data 用户。 因此 SolidInvoice 安装的 DocumentRoot 或 Web 根目录将是 /var/www/solidinvoice。
unzip SolidInvoice-2.2.5.zip -d solidinvoice
sudo chown -R www-data:www-data /var/www/solidinvoice
现在运行以下命令以确保 www-data 用户可以写入某些 SolidInvoice 目录和文件。
sudo chmod u+rw /var/www/solidinvoice/app/cache
sudo chmod u+rw /var/www/solidinvoice/app/logs
sudo chmod u+rw /var/www/solidinvoice/var/cache
sudo chmod u+rw /var/www/solidinvoice/var/logs
sudo chmod u+rw /var/www/solidinvoice/web/upload
sudo chmod u+rw /var/www/solidinvoice/app/config/parameters.yml
设置 Apache 虚拟主机
为 SolidInvoice 配置 DocumentRoot 目录后,您需要创建一个新的 Apache 虚拟主机,用于运行安装。 因此,请确保您已为 SolidInvoice 准备好域名。
首先,运行以下命令以启用 Apache 中的重写模块。
sudo a2enmod rewrite
使用下面的 nano 编辑器命令创建新的 Apache 虚拟主机配置 /etc/apache2/sites-available/solidinvoice.conf。
sudo nano /etc/apache2/sites-available/solidinvoice.conf
插入以下配置并确保将 ServerName 选项更改为您的目标域。
ServerName invoice.hwdomain.io
ServerAlias www.invoice.hwdomain.io
DocumentRoot /var/www/solidinvoice/public
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
ErrorLog /var/log/apache2/solidinvoice.error.log
CustomLog /var/log/apache2/solidinvoice.access.log combined
保存文件并退出编辑器。
现在输入以下命令来激活虚拟主机文件solidinvoice.conf 并检查您的Apache 语法。 如果语法正确,您将看到输出“语法正常”。
sudo a2ensite solidinvoice.conf
sudo apachectl configtest
最后,输入以下命令重新启动 Apache 并应用新的虚拟主机文件solidinvoice.conf。 执行后,您的 SolidInvoice 应该正在运行。
sudo systemctl restart apache2
使用 HTTPS 保护 SolidInvoice
在此示例中,您将通过 Certbot 和 LetsEncrypt 使用 SSL/TLS 证书保护 SolidInvoice。 现在您将安装 Certbot 并为您的 SolidInvoice 域名生成 SSL/TLS 证书。
首先,使用以下命令安装 Certbot 和 Certbot Apache 插件。 输入Y确认安装
sudo apt install certbot python3-certbot-apache
安装完成后,使用以下 certbot 命令生成 SSL/TLS 证书。 请务必使用您的详细信息更改域名和电子邮件地址信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io
该过程完成后,您的 SSL/TLS 证书应该在 /etc/letsencrypt/live/domain.com 目录中可用。 此外,您的 SolidInvoice 安装应自动使用 HTTPS 进行保护。
安装 SolidInvoice
打开网络浏览器并访问您的域名,例如 https://invoice.hwdomain.io/。 在“系统要求检查”中,确保一切正常,然后单击“下一步”进行确认。
选择 MySQL 的数据库驱动程序并输入 MariaDB 数据库和 SolidInvoice 用户的详细信息。 完成后,再次单击“下一步”。
现在您可以看到 SolidInvouice 的数据库架构已创建,单击“下一步”继续。
对于系统设置,选择默认区域设置为英语并输入管理员用户、电子邮件和密码的详细信息。 然后,再次单击“下一步”进行确认。
安装完成后,您将看到输出“您已成功安装 SolidInvoice” 以及创建 cron 作业的附加说明。
返回服务器终端并使用以下命令为用户 www-data 创建一个新的 cron 作业。
sudo crontab -u www-data -e
从页面粘贴 crontab 脚本,然后保存并关闭文件。
* * * * * php /var/www/solidinvoice/bin/console cron:run -e prod -n
返回到您的网络浏览器并单击立即登录。
现在,您将被要求创建您的公司名称和默认货币。 单击“创建”进行确认。
如果一切顺利,您应该会看到如下所示的 SolidInvoice 仪表板。
结论
恭喜 您已在 Ubuntu 22.04 服务器上安装了 SolidInvoice。 您已在 Ubuntu 上使用 LAMP Stack(Apache、MySQL/MariaDB 和 PHP)运行 SolidInvoice,并通过 Letsencrypt 使用 HTTPS 保护您的安装。 您现在可以将新组件(例如 SMTP 服务器)添加到 SolidInvoice 并使用它。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载