ubuntu系统配置nijia_使用Apache/Nginx在Ubuntu 18.04上安装InvoiceNinja的方法
本文介绍使用Apache/Nginx在Ubuntu 18.04 Server上安装InvoiceNinja的方法,你需要一台至少具有512MB RAM的Linux服务器,同时要搭载PHP和MySQL/MariaDB。
设置LAMP或LEMP的参考文章
一、在Ubuntu 18.04上下载InvoiceNinja的Zip文件
通过SSH登录你的Ubuntu 18.04服务器,然后运行以下命令将最新版本的InvoiceNinja zip文件下载到你的服务器上:
wget -O invoice-ninja.zip https://download.invoiceninja.com/
下载后,进行解压缩文件:
sudo apt install unzip
sudo unzip invoice-ninja.zip -d /var/www/
-d选项指定目标目录,InvoiceNinja网络文件将被解压缩到/var/www/ninja,为了更好地识别每个目录,可以将其重命名为invoice-ninja:
sudo mv /var/www/ninja /var/www/invoice-ninja
然后我们需要将此目录的所有者更改为www-data,以便Web服务器可以写入此目录:
sudo chown www-data:www-data /var/www/invoice-ninja/ -R
我们还需要更改存储目录的权限:
sudo chmod 755 /var/www/invoice-ninja/storage/ -R
二、在MariaDB中创建数据库和用户
使用以下命令登录MariaDB数据库,由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB root密码(参考:快速重置MariaDB或是MySQL的root密码),我们只需要在mysql命令前加上sudo:
sudo mysql
然后为Invoice Ninja创建一个数据库,本教程将数据库命名为invoiceninja,你可以自定义名称:
create database invoiceninja;
创建数据库用户,同样可以为此用户使用你的首选名称,用你的首选密码替换密码,注意替换ninja和your-password:
create user ninja@localhost identified by 'your-password';
授予此用户invoiceninja数据库的所有权限:
grant all privileges on invoiceninja.* to ninja@localhost;
刷新权限并退出:
flush privileges;
exit;
三、设置Web服务器
我们可以使用Apache或Nginx Web服务器。
1、Apache
如果使用Apache,请为Invoice Ninja创建一个主机文件:
sudo nano /etc/apache2/sites-available/invoice-ninja.conf
将以下文本放入文件中,将invoice.yourdomain.com替换为实际数据,不要忘记为域名设置A记录(请注意,Web根目录设置为/var/www/invoice-ninja/public/,而不是/var/www/invoice-ninja/):
ServerName invoice.yourdomain.com
DocumentRoot /var/www/invoice-ninja/public
DirectoryIndex index.php
Options +FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log
CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined
保存并关闭文件,然后启用此主机:
sudo a2ensite invoice-ninja.conf
我们需要启用重写模块:
sudo a2enmod rewrite
重新启动Apache以使更改生效:
sudo systemctl restart apache2
现在访问invoice.yourdomain.com,将被重定向到Invoice Ninja设置向导页面(invoice.yourdomain.com/setup),如果看到默认的Apache页面而不是安装向导,则需要禁用默认的主机:
sudo a2dissite 000-default.conf
并重新启动Apache。
在设置向导中输入任何信息之前,我们需要启用HTTPS。
2、Nginx
如果使用Nginx,请在/etc/nginx/conf.d/目录中创建invoice-ninja.conf文件:
sudo nano /etc/nginx/conf.d/invoice-ninja.conf
将以下文本放入文件中,将invoice.yourdomain.com替换为实际数据,不要忘记为域名设置A记录(请注意,Web根目录设置为/var/www/invoice-ninja/public/,而不是/var/www/invoice-ninja/):
server {
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;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log /var/log/nginx/invoiceninja.access.log;
error_log /var/log/nginx/invoiceninja.error.log;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-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配置:
sudo nginx -t
如果测试成功,请重新加载Nginx以使更改生效:
sudo systemctl reload nginx
现在访问invoice.yourdomain.com,将被重定向到Invoice Ninja设置向导页面(invoice.yourdomain.com/setup),在设置向导中输入任何信息之前,我们需要启用HTTPS。
四、启用HTTPS
要加密HTTP流量,我们可以通过安装Let's Encrypt的免费TLS证书来启用HTTPS,运行以下命令在Ubuntu 18.04服务器上安装Let的加密客户端(certbot):
sudo apt install certbot
1、如果你使用Nginx,那么你还需要安装Certbot Nginx插件:
sudo apt install python3-certbot-nginx
接下来,运行以下命令以获取并安装TLS证书,请替换you@example.com和invoice.yourdomain.com:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d invoice.yourdomain.com
2、如果使用Apache,请安装Certbot Apache插件:
sudo apt install python3-certbot-apache
并运行此命令以获取并安装TLS证书,请替换you@example.com和invoice.yourdomain.com:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d invoice.yourdomain.com
说明:
--nginx:使用nginx插件。
--apache:使用Apache插件。
--agree-tos:同意服务条款。
--redirect:通过301重定向强制HTTPS。
--hsts:将Strict-Transport-Security标头添加到每个HTTP响应中,强制浏览器始终对域使用TLS,防御SSL/TLS剥离。
--staple-ocsp:启用OCSP Stapling。
现在应该获取并自动安装证书了,如下图:
五、安装PHP模块
运行以下命令以安装InvoiceNinja所需或推荐的PHP模块:
sudo apt install php-imagick php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp
然后重启Apache(如果使用Nginx,则无需重新启动Nginx):
sudo systemctl restart apache2
如果未安装这些模块,则登录后将看到以下错误:
Whoops, looks like something went wrong.
六、使用安装向导完成安装
现在转到invoice.yourdomain.com并输入数据库信息,SMTP设置并创建管理员用户:
创建管理员用户后,就能正常登录InvoiceNinja控制中心,如下图:
至此,你已成功在Ubuntu 18.04服务器上安装InvoiceNinja了。
相关主题
ubuntu系统配置nijia_使用Apache/Nginx在Ubuntu 18.04上安装InvoiceNinja的方法相关推荐
- 在Ubuntu 18.04上安装Nginx
NGINX pronounced as engine-x is an open source and popular HTTP server and can be configured to act ...
- 如何在Ubuntu 18.04上安装Apache Kafka
介绍 (Introduction) Apache Kafka is a popular distributed message broker designed to efficiently handl ...
- 如何在Ubuntu 18.04上安装Elasticsearch Logstash Kibana(Elastic Stack)
In this guide, you will learn to install Elastic stack on Ubuntu 18.04. Elastic stack, formerly know ...
- 如何在Ubuntu 18.04上安装OpenCV
本教程介绍了如何在Ubuntu 18.04上安装OpenCV. OpenCV(开源计算机视觉库)是一个开源计算机视觉库,具有C ++,Python和Java的绑定.它的用途非常广泛,包括医学图像分析, ...
- php7安装flarum,如何在Ubuntu 18.04上安装Flarum社区软件
如何在Ubuntu 18.04上安装Flarum社区软件 Flarum是一款用PHP和Mithril.js编写的免费开源软件. 它是一款简单,快速,美观且反应灵敏的软件,专门设计用于跨平台的一致性和直 ...
- joomla linux 安装教程,如何在Ubuntu 18.04上安装Joomla内容管理系统
在创建网站时,使网站正常运行的最简单方法之一是使用CMS(内容管理系统),该软件通常附带捆绑的PHP代码以及所需的所有主题和插件. 除WordPress外,另一个受欢迎的CMS是Joomla. Joo ...
- 如何在Ubuntu 18.04上安装ERPNext堆栈
The author selected Software in the Public Interest to receive a donation as part of the Write for D ...
- skype linux 安装,如何在Ubuntu 18.04上安装Skype
Skype是世界上最流行的通信应用程序之一,它使您可以拨打免费的在线音频和视频电话,以及可负担得起的拨打全球移动电话和固定电话的国际电话. Skype不是开源应用程序,也不包含在Ubuntu存储库中. ...
- 在Ubuntu 18.04上安装和使用Tesseract 4
量子指南 (QUANTRIUM GUIDES) Today, the extraction of information from scanned documents such as letters, ...
最新文章
- redirect_uri参数错误解决方法
- 成功解决AttributeError: 'collections.defaultdict' object has no attribute 'iteritems'
- mips汇编计算开方_清华考研辅导班-2020清华大学912计算机专业基础综合考研经验真题参考书目...
- 2019/Province_C_C++_A/D/迷宫
- 关于计算机的英语作文九年级,实用的九年级英语作文合集6篇
- HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面 详细错误:HTTP 错误...
- iPhone 12 Pro系列终于不怕弯了!
- 科技驰援背后:技术没有假期!
- 数据结构上机实践第五周项目3 - 括号的匹配
- Repast HPC Tutorial学习操作中出现的问题及解决办法(更新ing)
- 「高并发秒杀」java使用教程第五版答案
- 硕士论文中期汇报ppt_做一场合格的中期汇报
- 电赛入坑----2017年电赛国赛真题滚球控制系统
- 利用信息差赚美金?对!你没看错!
- word图片居中, 实际没效果解决、行间距无效果
- 干货3分钟搞懂私募投以及技术面试
- Windows Kits(Windows 工具包)
- 压测⼯具本地快速安装Jmeter5.x以及基础功能组件介绍线程组和Sampler
- 物联网网关关键技术包括两个方面,物联网网关是智能家居发展的重要支撑
- python字符串换行的三种方式_Python:怎样拼装超长字符串和包含回车换行字符串...