تثبيت Invoice Ninja على Ubuntu
Invoice Ninja
هو تطبيق فوترة مجاني ومفتوح المصدر على الإنترنت لأصحاب الأعمال الحرة والشركات التي تساعدك على قبول المدفوعات وتتبع النفقات وإنشاء العروض.
إنه تطبيق فاتورة مستضاف ذاتيًا مشابه جدًا لتطبيقات الفاتورة التجارية مثل Freshbooks.
يتيح لك إنشاء فاتورتك المخصصة وإرسالها عبر الإنترنت.
Invoice Ninja مفيد جدا للشركات الصغيرة والمتوسطة الحجم.
إذا كنت تبحث عن برنامج فواتير آمن وسهل الاستخدام فإن Invoice Ninja هو الخيار الأفضل لك.
سنشرح هنا تثبيت Invoice Ninja مع Apache و Let's Encrypt SSL على خادم Ubuntu.
المتطلبات الأساسية
خادم يعمل بنظام التشغيل Ubuntu.
اسم مجال صالح إلى عنوان IP الخاص بالخادم.
إعداد كلمة مرور root للخادم.
شاهد خطوات تثبيت Invoice Ninja على Ubuntu 20.10 بالفيديو
قم بتحديث حزم النظام إلى أحدث إصدار بتشغيل الأمر التالي:
apt-get update -y
قم بتثبيت التبعيات الأخرى المطلوبة:
apt-get install software-properties-common apt-transport-https ca-certificates gnupg2 -y
تثبيت LAMP Server
قم بتثبيت حزم Apache و MariaDB:
apt-get install apache2 mariadb-server -y
بشكل افتراضي يأتي Ubuntu 20.04 مع الإصدار 7.4 من PHP لذلك سوف نحتاج إلى إضافة Ondrej repository.
يمكن إضافة مستودع PHP Ondrej باستخدام الأمر التالي:
add-apt-repository ppa:ondrej/php
قم بتثبيت PHP والإضافات الأخرى باستخدام الأمر التالي:
apt-get install php7.2 libapache2-mod-php7.2 php-imagick php7.2-fpm php7.2-mysql 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 unzip -y
تحقق من إصدار PHP المثبت بالأمر التالي:
php -v
سترى النتيجة التالية:
PHP 7.2.34-8+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Oct 31 2020 16:57:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.34-8+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
إعداد قاعدة بيانات MariaDB
قم بتسجيل الدخول إلى وحدة تحكم MariaDB باستخدام الأمر التالي:
mysql
قم بإنشاء قاعدة بيانات باسم invoicedb واسم مستخدم invoice باستخدام الأمر التالي:
MariaDB [(none)]> create database invoicedb;
MariaDB [(none)]> create user invoice@localhost identified by 'password';
بعد ذلك ، امنح جميع الامتيازات لـ invoicedb باستخدام الأمر التالي:
MariaDB [(none)]> grant all privileges on invoicedb.* to invoice@localhost;
امسح الامتيازات واخرج من وحدة تحكم MariaDB باستخدام الأمر التالي:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
تثبيت Invoice Ninja
قم بتنزيل أحدث إصدار من Invoice Ninja من موقعه الرسمي على الإنترنت:
wget -O invoice-ninja.zip https://download.invoiceninja.com/
قم بفك ضغط الملف الذي تم تنزيله باستخدام الأمر التالي:
unzip invoice-ninja.zip -d /var/www/html/
قم بتعيين الأذونات المناسبة والملكية باستخدام الأمر التالي:
chown -R www-data:www-data /var/www/html/ninja
chmod -R 755 /var/www/html/ninja
إعداد Apache لـ Invoice Ninja
قم بإنشاء ملف إعداد apache virtual host لـ Invoice Ninja بالأمر التالي:
nano /etc/apache2/sites-available/ninja.conf
أضف الأسطر التالية:
<VirtualHost *:80>
ServerName invoice.example.com
DocumentRoot /var/www/html/ninja/public
<Directory /var/www/html/ninja/public>
DirectoryIndex index.php
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log
CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined
Include /etc/apache2/conf-available/php7.2-fpm.conf
</VirtualHost>
احفظ وأغلق الملف.
قم بتمكين ملف virtual host بالأمر التالي:
a2ensite ninja.conf
قم بتمكين apache modules المطلوبة باستخدام الأمر التالي:
a2enmod mpm_event proxy_fcgi setenvif
a2enmod rewrite
أعد تشغيل خدمة Apache لتطبيق التغييرات:
systemctl restart apache2
تحقق من حالة Apache باستخدام الأمر التالي:
systemctl status apache2
سترى النتيجة التالية:
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-12-27 07:15:15 UTC; 11s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 25097 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 25113 (apache2)
Tasks: 55 (limit: 2353)
Memory: 5.3M
CGroup: /system.slice/apache2.service
??25113 /usr/sbin/apache2 -k start
??25114 /usr/sbin/apache2 -k start
??25115 /usr/sbin/apache2 -k start
Dec 27 07:15:15 ubuntu systemd[1]: Starting The Apache HTTP Server..
الوصول إلى Invoice Ninja
افتح متصفح الويب الخاص بك وقم بالوصول إلى Invoice Ninja باستخدام عنوان http://invoice.example.com.
أدخل عنوان URL لموقع الويب الخاص بك وتفاصيل قاعدة البيانات واسم مستخدم المسؤول وكلمة المرور وانقر فوق Submit.
أدخل اسم مستخدم المسؤول وكلمة المرور وانقر على زر تسجيل الدخول.
تأمين Invoice Ninja مع Let's Encrypt SSL
من الجيد دائمًا تأمين موقع الويب الخاص بك باستخدام Let's Encrypt SSL. ستحتاج إلى تثبيت Certbot client لتثبيت SSL وإدارته.
يمكنك تثبيته بالأمر التالي:
apt-get install python3-certbot-apache -y
قم بتشغيل الأمر التالي لتأمين موقع الويب الخاص بك باستخدام Let's Encrypt SSL:
certbot --apache -d invoice.example.com
سيُطلب منك تقديم بريدك الإلكتروني وقبول مدة الخدمة:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva1981@gmail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for invoice.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/invoice-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/invoice-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/invoice-le-ssl.conf
حدد ما إذا كنت تريد إعادة توجيه حركة مرور HTTP إلى HTTPS:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
اكتب 2 واضغط على Enter لتثبيت Let's Encrypt SSL لموقع الويب الخاص بك:
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/invoice.conf to ssl vhost in /etc/apache2/sites-available/invoice-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://invoice.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=invoice.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/invoice.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/invoice.example.com/privkey.pem
Your cert will expire on 2020-10-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
الآن ، يمكنك الوصول إلى موقع الويب الخاص بك بأمان باستخدام عنوان URL https://invoice.example.com.