Introducció
Requisits previs
Pas 1: actualitzeu el sistema
Pas 2: instal·leu el servidor LEMP.
Pas 3: Configura la base de dades
Pas 4: configureu PHP-FPM
Pas 5: Baixeu i configureu Invoice Ninja
Pas 6: configureu Nginx per a Invoice Ninja
Pas 7: Accediu a Invoice Ninja
Introducció
Invoice Ninja és un programari d'aplicació de bases web gratuït i de codi obert que es pot utilitzar per a la facturació, els pagaments, el seguiment del temps i molts més. És la millor solució per a la facturació i facturació dels clients. Podeu crear i enviar factures en línia fàcilment en qüestió de segons. Invoice Ninja us permet crear la vostra pròpia factura personalitzada i mostrar la factura en directe com a fitxer PDF.
En aquest tutorial, us explicaré com instal·lar Invoice Ninja al servidor CentOS 7.
Requisits previs
- Una instància CentOS 7 x64 amb 2 GB de RAM instal·lat.
- Un usuari de sudo .
Pas 1: actualitzeu el sistema
Abans d'instal·lar qualsevol paquet en una instància del servidor CentOS, es recomana actualitzar el sistema. Inicieu sessió al vostre servidor mitjançant SSH com a usuari sudo i executeu l'ordre següent:
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Pas 2: instal·leu el servidor LEMP.
Abans de començar, haureu d'instal·lar LEMP (Nginx, MariaDB i PHP) al vostre servidor.
Primer, instal·leu Nginx i MariaDB amb l'ordre següent:
sudo yum install nginx mariadb-server -y
Un cop finalitzada la instal·lació, inicieu el servei Nginx i MariaDB i habiliteu-los per iniciar-los a l'arrencada:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mariadb
sudo systemctl enable mariadb
A continuació, necessitareu PHP7 i PHP7.0-FPM per a la instal·lació de Invoice Ninja.
Primer, afegiu el dipòsit PHP7.0 al sistema amb l'ordre següent:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
A continuació, instal·leu PHP7.0-FPM i altres extensions PHP necessàries amb l'ordre següent:
sudo yum install install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-curl php70w-gmp php70w-pdo php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt -y
Un cop finalitzada la instal·lació, haureu de modificar el fitxer de configuració php.ini:
sudo nano /etc/php.ini
Canvia la línia següent:
cgi.fix_pathinfo=0
Desa i tanca el fitxer.
Per defecte, la instal·lació de MariaDB no està segura, de manera que primer haureu de protegir-la. Podeu fer-ho executant l' script d'instal·lació segura de mysql :
sudo mysql_secure_installation
Respon totes les preguntes tal com es mostra a continuació:
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
Quan tot estigui fet, connecteu-vos amb MySQL shell amb la següent comanda:
mysql -u root -p
Introduïu la vostra contrasenya d'arrel i premeu Intro, veureu l'intèrpret d'ordres de MySQL:
A continuació, creeu una base de dades nova i un usuari nou per a Invoice Ninja:
MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
A continuació, haureu de configurar el grup PHP-FPM per a l'usuari de Nginx:
sudo nano /etc/php-fpm.d/www.conf
Canvia les línies següents:
user = nginx
group = nginx
listen = /var/run/php/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Deseu i tanqueu el fitxer quan hàgiu acabat.
A continuació, haureu de crear un directori nou per a la sessió PHP i el fitxer de socket:
sudo mkdir -p /var/lib/php/session
sudo mkdir -p /var/run/php/
sudo chown -R nginx:nginx /var/lib/php/session/
sudo chown -R nginx:nginx /var/run/php/
Finalment, inicieu el servei PHP7.0-FPM i afegiu-lo per començar en el moment de l'arrencada:
sudo systemctl start php-fpm
systemctl enable php-fpm
Podeu descarregar la darrera versió estable de Invoice Ninja des del dipòsit de GitHub amb l'ordre següent:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
També haureu d'instal·lar Dependency Manager per a PHP (compositor). Podeu instal·lar-lo amb l'ordre següent:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
A continuació, instal·leu totes les dependències de Invoice Ninja mitjançant l'ordre del compositor, tal com es mostra a continuació:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Un cop feta la instal·lació, canvieu el nom del fitxer .env i feu alguns canvis:
sudo mv .env.example .env
sudo nano .env
Canvieu les línies tal com es mostra a continuació:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Deseu el fitxer quan hàgiu acabat i executeu l'ordre següent per preparar la base de dades:
sudo php artisan migrate
Se us demanarà que executeu l'ordre, escriviu "sí" i premeu "Enter".
A continuació, introduïu la base de dades amb registres com es mostra a continuació:
sudo php artisan db:seed
Escriviu "sí" i premeu "Enter".
A continuació, canvieu la propietat del /var/www/html/ninjadirectori:
sudo chown -R nginx:nginx /var/www/html/ninja/
A continuació, haureu de crear un certificat SSL i crear una nova configuració d'amfitrió virtual per a Invoice Ninja.
Primer, creeu un directori per a SSL:
sudo mkdir -p /etc/nginx/cert/
A continuació, genereu un certificat SSL amb l'ordre següent:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
A continuació, doneu el permís adequat al fitxer del certificat:
sudo chmod 600 /etc/nginx/cert/*
A continuació, creeu un nou fitxer de configuració de l'amfitrió virtual dins del directori /etc/nginx/:
sudo nano /etc/nginx/conf.d/ninja.conf
Afegiu les línies següents:
server {
listen 80;
server_name 192.168.15.23;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 default;
server_name 192.168.15.23;
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;
root /var/www/html/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;
}
}
Deseu i tanqueu el fitxer i reinicieu el servidor web Nginx:
sudo systemctl restart nginx
Pas 7: Accediu a Invoice Ninja
Abans d'accedir a la interfície web de Invoice Ninja, haureu de permetre el servei http i https a través del tallafoc. Executeu les ordres següents per obrir els ports:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Finalment, obriu el vostre navegador web i escriviu l'URL i https://192.168.15.23, a continuació, completeu els passos necessaris per acabar la instal·lació.
Felicitats! Hem instal·lat correctament Invoice Ninja amb Nginx i MariaDB al servidor CentOS 7.