如何在Ubuntu 16.04上安装发票忍者
发票忍者是一种基于网络的开源软件,用于发票,付款,时间跟踪等等。 您可以在几秒钟内在线创建发票,与付款网关(如Stripe,PayPal,WePay等)进行互动。 发票忍者可以向您显示PDF格式的实时发票预览。 您可以轻松地自己更改模板中的公司徽标。 发票忍者基于PHP,使用Laravel Framework构建,可以安装在Linux和Windows上。
在本教程中,我将向您展示如何在Ubuntu 16.04上安装Invoice Ninja。 我将使用Nginx作为Web服务器和MariaDB作为数据库系统。
前提条件
- Ubuntu 16.04服务器。
- 根权限
第1步 - 安装Nginx
在这一步中,我们将安装Nginx Web服务器。 使用您的ssh root帐户连接到您的服务器(或使用其他用户登录,并使用'sudo -s'成为root用户)并更新存储库。
ssh root@192.168.33.15
apt-get update
使用apt命令安装Nginx:
apt-get install -y nginx
当nginx安装完成后,启动Nginx并将其添加到启动时启动。
systemctl start nginx
systemctl enable nginx
确保nginx正在运行。 检查nginx使用的端口,默认的Web服务器端口是80。
netstat -plntu
第2步 - 安装和配置MariaDB服务器
安装Nginx后,我们需要在系统上安装mariadb-package软件包。 它在Ubuntu存储库中可用。 使用以下命令安装mariadb-server及其依赖项。
apt-get install -y mariadb-server
安装完成后,启动mariadb服务,并使用这些systemctl命令使其启动。
systemctl restart mysql
systemctl enable mysql
MariaDB已启动,现在您可以使用以下命令设置mariadb的根密码。
mysql_secure_installation
设置您的新的MariaDB根密码。
Set root password? [Y/n] Y
New password:
Re-enter new 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
接下来,尝试以root用户身份与mysql shell连接。
mysql -u root -p
TYPE YOUR ROOT PASSWORD
当一切正常工作时,您将看到MySQL shell。
现在我们需要为Invoice Ninja创建一个新的数据库和一个新用户。 我将创建一个名为“ ninjadb ”的新数据库,一个新用户' ninja ',密码为' aqwe123 '。 请选择一个不同的安全密码进行安装!
使用下面的mysql查询创建它们。 创建一个新的数据库,创建新的用户和密码,使用密码向新用户授予数据库。
create database ninjadb;
create user ninja@localhost identified by 'aqwe123';
grant all privileges on ninjadb.* to ninja@localhost identified by 'aqwe123';
flush privileges;
已经安装了MariaDB,并创建了一个用于Invoice Ninja的新数据库和用户。
第3步 - 安装和配置PHP7.0-FPM
发票忍者基于PHP,所以我们需要将PHP安装到系统中。 我们将使用PHP7.0-FPM进行此Invoice Ninja安装。
使用以下命令安装Invoice Ninja所需的PHP7.0-FPM和其他PHP扩展。
apt-get install -y php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-mbstring php7.0-mcrypt php7.0-curl php7.0-gmp
安装完成后,进入PHP配置目录并编辑php.ini文件。
cd /etc/php/7.0/
vim fpm/php.ini
取消下面的CGI行的注释,并将值更改为0。
cgi.fix_pathinfo=0
保存并退出。
在cli目录中编辑php.ini文件。
vim cli/php.ini
取消下面的CGI行的注释,并将值更改为0。
cgi.fix_pathinfo=0
保存并退出。
接下来,启动PHP7.0-FPM并使其在引导时启动。
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
默认情况下,PHP7.0-FPM正在运行一个套接字文件,请使用以下命令检查它,您将看到屏幕截图中显示的PHP套接字文件。
netstat -pl
安装了PHP7.0-FPM和Invoice Ninja所需的所有扩展。
第4步 - 安装和配置发票忍者
在此步骤中,我们将下载并配置Invoice Ninja。 首先,在系统上安装解压缩。
apt-get install -y unzip
转到' / var / www'目录,并使用wget命令下载Invoice Ninja源代码。
cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip
提取发票忍者zip文件并转到“忍者”目录。
unzip ninja-v3.1.0.zip
cd ninja/
对于Laravel项目,我们需要安装PHP的Composer依赖管理器。 它在Ubuntu存储库中可用,因此我们可以使用apt命令安装它。
apt-get install -y composer
接下来,使用下面的composer命令安装Invoice Ninja依赖项。
composer install --no-dev -o
- --no-dev :禁用require-dev软件包的安装
- -o :在自动装载机转储期间优化自动装载机
完成依赖关系安装后,复制.env文件并使用vim进行编辑。
cp .env.example .env
vim .env
更改下面的数据库设置的值。
DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123
保存并退出。
接下来,编辑config目录中的数据库配置。
vim config/database.php
我们使用的是MariaDB / MySQL数据库,进入MySQL行55。
'database' => env('DB_DATABASE', 'ninjadb'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'aqwe123'),
将密码替换为您为忍者用户设置的密码!
保存并退出。
所有配置文件都被编辑。 接下来,使用以下命令迁移数据库。
php artisan migrate
系统会要求您运行命令,键入“ yes ”,然后按Enter键。
接下来,将数据库与所有记录进行种子。
php artisan db:seed
键入“ 是 ”,然后按Enter确认。
为Laravel项目发票忍者生成一个新的应用程序密钥。
php artisan key:generate
您将看到应用程序密钥。
用vim编辑app.php文件。
vim config/app.php
转到APP_KEY行85并粘贴我们生成的密钥。
'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),
保存并退出。
最后,将' / var / www / ninja ' 目录的所有者更改为' www-data '用户和组。
cd /var/www/
chown -R www-data:www-data ninja/
发票忍者已配置并准备好进行安装。
第5步 - 配置SSL和虚拟主机
在此步骤中,我们将使用OpenSSL命令生成SSL证书文件,并为Invoice Ninja创建新的虚拟主机配置。 如果您在实时服务器上,则可以使用免费的SSL进行加密,而不是使用OpenSSL生成自签名SSL证书。
为SSL文件创建一个新的“ cert ”目录。
mkdir -p /etc/nginx/cert/
运行下面的openssl命令生成证书文件。
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
将证书文件的权限更改为'600'。
chmod 600 /etc/nginx/cert/*
接下来,转到Nginx目录并创建一个名为“ ninja ”的新的虚拟主机配置文件。
cd /etc/nginx/
vim sites-available/ninja
在下面粘贴虚拟主机配置。
server {
# Your Domain Name - hakase-labs.co
listen 80;
server_name ninja.co www.ninja.co;
# Rewrite redirect to https
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
# Your Domain Name - hakase-labs.co
listen 443 default;
server_name ninja.co www.ninja.co;
# Enable SSL for Invoice Ninja
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;
# Invoice Ninja web root files
root /var/www/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:/run/php/php7.0-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;
}
}
保存并退出。
启用忍者虚拟主机并测试Nginx配置,确保没有错误。
ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t
现在重新启动nginx Web服务器。
systemctl restart nginx
发票忍者虚拟主机配置完成。
第6步 - 完成安装和测试
打开网络浏览器并输入发票忍者URL:ninja.co。 您将被重定向到https连接和设置页面。
输入应用程序设置,数据库连接,电子邮件设置,用户详细信息,并检查发票忍者TOS。
点击“ 提交 ”,您将被重定向到发票忍者的登录页面。
输入您的电子邮件和密码,然后按“ 登录 ”。
您将看到发票忍者信息中心。
发票忍者设置页面。
发票忍者在Ubuntu 16.04上安装了Nginx和MariaDB。