GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Invoice Ninja sur CentOS 7

Invoice Ninja est un logiciel Web gratuit et open source pour la facturation, les paiements, le suivi du temps et bien plus encore. Vous pouvez créer des factures en ligne en quelques secondes, intégrer des passerelles de paiement telles que Stripe, PayPal et WePay. Invoice Ninja peut vous montrer une facture en direct sous forme de fichier PDF, vous pouvez configurer le logo de votre propre entreprise et utiliser des modèles de facture personnalisés. Invoice Ninja est basé sur PHP, construit avec Laravel Framework et peut être installé sur Linux, Windows et Mac.

Dans ce tutoriel, je vais vous montrer comment installer et configurer Invoice Ninja sur un serveur CentOS 7. J'utiliserai Nginx comme serveur Web et MariaDB comme système de base de données.

Prérequis

  • Serveur CentOS 7
  • Privilèges root

Étape 1 - Installer Nginx

Dans cette étape, nous allons installer le serveur Web Nginx. Connectez-vous à votre serveur avec votre compte ssh rot.

ssh [email protected]

Avant d'installer Nginx, vous devez installer le référentiel Epel sur votre système CentOS.

yum -y install epel-release

Vous pouvez maintenant installer Nginx avec la commande yum ci-dessous à partir du référentiel epel :

yum -y install nginx

Une fois l'installation terminée, démarrez Nginx et activez-le pour qu'il démarre au démarrage.

systemctl start nginx
systemctl enable nginx

Assurez-vous que Nginx est en cours d'exécution en vérifiant le port utilisé par Nginx (port 80).

netstat -plntu

Remarque :

Si la commande netstat n'est pas trouvée, vous pouvez installer net-tools comme ceci :

yum -y install net-tools

Étape 2 - Installer et configurer le serveur MariaDB

Après avoir installé Nginx, nous devons installer le serveur mariadb sur le système. Il est disponible dans le référentiel CentOS. Installez mariadb-server et tous les packages nécessaires pour MariaDB avec la commande ci-dessous.

yum install -y mariadb-server

Démarrez le service mariadb et activez-le au démarrage avec la commande systemctl.

systemctl start mariadb
systemctl enable mariadb

MariaDB est démarré, vous pouvez maintenant définir le mot de passe root pour MariaDB avec la commande 'mysql_secure_installation'.

mysql_secure_installation

Définissez votre mot de passe root 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

Si tout est fait, vous pouvez essayer de vous connecter avec le shell MySQL et l'utilisateur root.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Vous verrez le shell MySQL.

Ensuite, nous devons créer une nouvelle base de données et un nouvel utilisateur pour Invoice Ninja dans le shell MySQL que nous avons ouvert. Nous allons créer une nouvelle base de données nommée 'ninjadb ', un nouvel utilisateur 'ninja ' avec le mot de passe 'aqwe123 '. Veuillez choisir un autre mot de passe sécurisé pour votre installation.

Créez tout avec les requêtes MySQL ci-dessous :créez une nouvelle base de données, créez un nouvel utilisateur et un nouveau mot de passe, accordez l'accès à la base de données au nouvel utilisateur avec un mot de passe.

create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;

MariaDB a été installé et une nouvelle base de données et un nouvel utilisateur pour Invoice Ninja ont été créés.

Étape 3 - Installer et configurer PHP7.0-FPM

Invoice Ninja est basé sur PHP, nous devons donc l'installer sur le système. J'utiliserai PHP7.0-FPM pour l'installation d'Invoice Ninja.

Il n'y a pas de PHP7.0 dans le référentiel par défaut de CentOS, nous devons donc ajouter un nouveau référentiel PHP7.0 au système. Je vais utiliser le dépôt webtatic.

Ajoutez le référentiel PHP7.0 au système.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Vous pouvez maintenant installer PHP7.0-FPM et d'autres extensions PHP nécessaires à Invoice Ninja à partir du référentiel webtatic.

yum -y install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt php70w-curl php70w-gmp php70w-pdo

Une fois l'installation terminée, éditez le fichier de configuration php.ini avec vim.

vim /etc/php.ini

Décommentez la ligne cgi.fix_pathinfo ci-dessous et remplacez la valeur par 0.

cgi.fix_pathinfo=0

Enregistrez le fichier et quittez vim.

Modifiez ensuite le fichier de configuration PHP-FPM.

vim /etc/php-fpm.d/www.conf

Changez l'utilisateur et le groupe sur les lignes 8 et 10 en 'nginx ' groupe.

user = nginx
group = nginx

Au lieu d'un port, nous utiliserons un fichier socket pour php-fpm. Changez la ligne d'écoute en '/var/run/php/php-fpm.sock '.

listen = /var/run/php/php-fpm.sock

Décommentez la configuration, le propriétaire, le groupe et l'autorisation du fichier socket.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Décommentez les variables d'environnement php-fpm aux lignes 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Enregistrez le fichier et quittez l'éditeur.

Nous devons maintenant créer un nouveau répertoire de session PHP et changer le propriétaire en utilisateur et groupe nginx.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

Créez un nouveau répertoire pour le fichier socket et modifiez l'autorisation pour l'utilisateur et le groupe nginx.

mkdir -p /var/run/php/
chown -R nginx:nginx /var/run/php/

Ensuite, démarrez PHP7.0-FPM et ajoutez-le pour qu'il démarre au démarrage.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM a été lancé. Vous pouvez maintenant le vérifier avec la commande ci-dessous et vous verrez le fichier socket PHP.

netstat -pl

PHP7.0-FPM et toutes les extensions nécessaires à Invoice Ninja sont installés.

Étape 4 - Installer et configurer Invoice Ninja

Dans cette étape, nous allons télécharger et configurer Invoice Ninja. Tout d'abord, installez unzip sur votre système.

yum -y install unzip

Créez un nouveau répertoire pour les fichiers racine Web d'Invoice Ninja.

mkdir -p /var/www/
cd /var/www/

Téléchargez Invoice Ninja avec la commande wget.

wget https://download.invoiceninja.com/ninja-v3.1.0.zip

Extrayez le fichier zip Invoice Ninja et allez dans le 'ninja ' répertoire.

unzip ninja-v3.1.0.zip
cd ninja/

Pour le projet Laravel, nous devons installer composer, un gestionnaire de dépendances pour PHP.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Vous pouvez maintenant utiliser la commande composer.

Ensuite, installez les dépendances Invoice Ninja avec la commande composer ci-dessous.

composer install --no-dev -o
  • --no-dev : Désactive l'installation des packages require-dev.
  • -o : Optimiser l'autochargeur pendant le vidage de l'autochargeur.

Lorsque l'installation de la dépendance est terminée, copiez le fichier .env et modifiez-le avec vim.

cp .env.example .env
vim .env

Modifiez la valeur des paramètres de la base de données ci-dessous.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Enregistrez et quittez.

Ensuite, modifiez la configuration de la base de données dans le répertoire de configuration.

vim config/database.php

Nous utilisons la base de données MariaDB/MySQL, allez dans les paramètres MySQL à la ligne 55.

'database'  => env('DB_DATABASE', 'ninjadb'),
'username'  => env('DB_USERNAME', 'ninja'),
'password'  => env('DB_PASSWORD', 'aqwe123'),

Enregistrez et quittez.

Tous les fichiers de configuration sont édités, préparez ensuite la base de données avec la commande ci-dessous.

php artisan migrate

Il vous sera demandé d'exécuter la commande, tapez "oui" et appuyez sur Entrée.

Ensuite, alimentez la base de données avec tous les enregistrements.

php artisan db:seed

Tapez "oui" et appuyez sur Entrée pour confirmer.

Générez la clé d'application.

php artisan key:generate

Vous verrez la clé de l'application.

Modifiez le fichier app.php avec vim.

vim config/app.php

Allez à la ligne APP_KEY 85 et collez la clé générée (la clé ci-dessous est un exemple, utilisez plutôt la clé que vous avez obtenue de la commande ci-dessus).

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

Enregistrez et quittez.

Enfin, changez le propriétaire du répertoire '/var/www/ninja' en utilisateur et groupe 'nginx'.

cd /var/www/
chown -R nginx:nginx ninja/

Invoice Ninja a été configuré et est prêt pour l'installation.

Étape 5 - Configurer SSL et l'hôte virtuel

Dans cette étape, nous allons générer un fichier de certificat SSL avec la commande openssl et créer une nouvelle configuration d'hôte virtuel pour Invoice Ninja. Si vous êtes sur un serveur en direct, vous pouvez également utiliser un SSL gratuit de Let's Encrypt.

Créez un nouveau répertoire 'cert' pour les fichiers SSL.

mkdir -p /etc/nginx/cert/

Exécutez la commande OpenSSL ci-dessous pour générer les fichiers de certificat.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Modifiez l'autorisation des fichiers de certificat à '600'.

chmod 600 /etc/nginx/cert/*

Ensuite, allez dans le répertoire Nginx et créez un nouveau fichier de configuration d'hôte virtuel nommé 'ninja.conf '.

cd /etc/nginx/
vim conf.d/ninja.conf

Collez la configuration de l'hôte virtuel ci-dessous.

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:/var/run/php/php-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;
    }
}

Enregistrez et quittez.

Testez maintenant la configuration de Nginx et assurez-vous qu'il n'y a pas d'erreurs.

nginx -t

Redémarrez le serveur Web Nginx.

systemctl restart nginx

La configuration de l'hôte virtuel Invoice Ninja a été créée.

Étape 6 - Configurer SELinux et Firewalld

Si votre SELinux est éteint, vous pouvez ignorer cette étape et commencer à configurer Firewalld. Dans cette étape, nous allons configurer SELinux et Firewalld pour Invoice Ninja. Vérifiez votre statut SELinux et assurez-vous que le pare-feu est installé.

Vérifiez l'état de SELinux avec la commande ci-dessous.

getenforce

Si votre SELinux est activé, vous verrez les résultats 'Enforcing' ou 'Permissive'.

Installez maintenant les outils de gestion SELinux à partir du référentiel.

yum -y install policycoreutils-python

Et exécutez les commandes ci-dessous pour permettre à Invoice Ninja de s'exécuter sous SELinux en mode application.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/tests(/.*)?'
restorecon -Rv '/var/www/ninja/'

Ensuite, nous devons ouvrir le port du serveur pour qu'Invoice Ninja soit accessible de l'extérieur.

Assurez-vous que firewalld est installé sur votre système, ou vous pouvez l'installer avec la commande yum.

yum -y install firewalld

Démarrez firewalld et activez-le au démarrage.

systemctl start firewalld
systemctl enable firewalld

Nous devons maintenant ouvrir les ports HTTP et HTTPS pour Invoice Ninja. Exécutez les commandes ci-dessous pour ouvrir les ports.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinux et Firewalld sont configurés.

Étape 7 - Tester

Ouvrez votre navigateur Web et saisissez l'URL Invoice Ninja, dans mon cas :ninja.co.

Vous serez redirigé vers une connexion https et la page de configuration.

Entrez les détails de configuration demandés, les paramètres de l'application, la connexion à la base de données, les paramètres de messagerie, les détails de l'utilisateur et vérifiez les conditions d'utilisation d'Invoice Ninja.

Cliquez sur 'Soumettre ' et vous serez redirigé vers la page de connexion d'Invoice Ninja.

Tapez votre e-mail et votre mot de passe, puis appuyez sur 'CONNEXION '.

Vous verrez le tableau de bord Invoice Ninja.

Page des paramètres de facture Ninja.

Invoice Ninja a été installé avec Nginx et MariaDB sur CentOS 7.

Références

  • https://calyrium.org/post/install-invoiceninja-archlinux-nginx/
  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx

Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer Nginx sur CentOS 7

  3. Comment installer R sur CentOS 7

  4. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  5. Comment installer Invoice Ninja sur Debian 9

Comment installer Invoice Ninja sur CentOS 7

Comment installer Invoice Ninja sur CentOS 8

Comment installer Nginx sur CentOS 7

Comment installer Invoice Ninja sur Debian 10

Comment installer Nginx sur CentOS 7 ?

Comment installer Nginx sur CentOS 8