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的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2月编程语言排行榜新鲜出炉,谁又摘得桂冠
- 下一篇: 啊哈,算法自学记——6th