Category Archives: اموزش لینوکس

  • 0

free open source Node js File Manager

در این پست به معرفی فایل منیجر Node js می پردازیم

زمانی که در حال ساخت ربات تلگرام مدیریت گروه با استفاده از node js بودم برای آپلود فایل های پروژه همین طور اجرا کردنو دیباگ کردن پروژه به مشکل برخوردم و توی اینترنت دنبال یه فایل منیجر مناسب برای پلتفرم node گشتم اما چیز مناسبی پیدا نکردم که هم از نظر امنیتی و کارایی مناسب کار من باشه برای همین خودم دست به کار شدم و یه فایل منیجیر ساختم

کار با این فایل منیجیر خیلی سادست و طراحی خوبی داره به نظر خودم

از قابلیت های این فایل منیجیر میشه به موارد زیر اشاره کرد :

  1. آپلود ساده فایل ها به صورت Drag and Drop
  2. مشاهده فایل ها و فولدر ها با قابیلت حذف یا دریافت فایل ها
  3. مشاهده فایل های جاوا اسکریپت و قابلیت اجرای فایل های nodejs
  4. قابلیت استارت و متوقف کردن و مشاهده برنامه های درحال اجرا
  5. مشاهده لاگ ها و ارور های سرور

لینک : https://github.com/parsgit/node-nitroFileManager


  • 0

آموزش نصب نود روی ابونتو 16.04

در این آموزش نود و دیتابیس mongodb  را نصب میکنیم

برای نصب نود کد های زیر را در ترمینال وارد میکنیم

$ sudo apt-get update

$ cd /
$ curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh

$ sudo bash nodesource_setup.sh
$ sudo apt-get install nodejs

با این کد ها نود نسخه 8 که نسخه نهایی و LTS را نصب میکنیم نسخه LTS از این جهت اهمیت داره که برای مدت زمان بیشتری پشتیبانی میشه

اما حالا برای نصب دیتابیس mongodb در سیستم عامل ابونتو از کد های زیر استفاده میکنیم

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
$ sudo service mongod start
$ sudo systemctl enable mongod

بسیار خب با اجرای این کد ها نسخه 3.6 دیتابیس mongodb که تا این لحظه اخرین و جدیدترین نسخه هست نصب میشه حتما پیشنهاد میکنم کار با این دیتابیسو یاد بگیرید کار باهاش لذت بخشه و دردسر های MySQL رو نداره

دارم برای پروژه ای از node استفاده میکنم و خیلی هیجان زدم میکنه البته بعضی وقتا سینتسک و شیگرایی جاوا اسکریپت برام عجیب به نظر میاد چون مثل بقیه زبون ها نیست در کل هنوز فکر میکنم بهترین زبات برای ساخت سایت php باشه چون کار باهاش خیلی ساده تره البته نظر منه و  node بخاطر سرعتی که داره بیشتر برای ساخت وب سرویس و وب اپلیکیشن ها مناسب باشه :mrgreen:

 

 


  • 0

آموزش کار با دیستابیس MongoDB

دیتابیس MongoDB از دسته دیتابیس های no sql است کار کردن با این دیتابیس بسیار ساده و لذت بخش است

فایلی به اسم test.js ایجاد میکنیم و برای کانکت شدن به دیتابیس از کد های زیر استفاده میکنیم

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017', function(err, client) {
 console.log('connect');
 // other code
 });

زمانی که اتصال به دیتابیس انجام شد می توانیم عملیاتی مانند Find (select)  , update , insert , …. را انجام دهیم

افزودن اطلاعات به دیتابیس :

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017', function(err, client) {
 console.log('connect');
 // other code
   const db = client.db('db_name');
   const col = db.collection('col_name');

   col.insertOne({name:'nitrocode',url:'nitrocode.ir',age:2,active:true},null,function(err,result) {});

 });

جستجو در دیتابیس :

 col.find({name:'nitrocode'}).toArray(function(err,select) {
console.log(select);
});

کد بالا لیست نتایج یافت شده را به صورت ارایه برمیگرداند حالا یک پرسجوی پیچیده تر انجام میدهیم

 coll.find({$or:[{phone:'091000000'},{age:2}]})
.sort({_id:-1})
.limit(1)
.toArray(function(err,select) {
console.log(select);
});

این پرسجو همانند sql query زیر عمل میکند

select * from `test` where phone='091000000' or age=2
order by _id DESC LIMIT 1

می توانیم از دو عدد 1 یا -1 (منفی یک) در sort استفاده کنیم که یک به صورت صعودی و منفی یک به صورت نزولی عملیات sort را انجام می دهد

عملیات update هم به این صورت انجام می شود

coll.updateOne({_id:code_id},{$set:{active:false}},function() {
 })

در اخر هم می توانید کانکشن دیتابیس را به وسیله کد

client.close()

ببندید

یکی از ویژگی های جالب MongoDB اینه که شما میتونی همزمان با عملیات find اپدیت هم انجام بدید که بهتره داکیومنت کامل رو از سایت MongoDB مطالعه کنیم البته سایتش ip های ایرانو تحریم کردن که دیگه روش دور زدنشو بلدید ://


  • 0

نصب nodejs و دیتابیس MongoDB روی CentOS 7

تکنولوژی nodejs که برای ساخت برنامه های real time مانند برنامه های پیام رسان بسیار مناسب است nodejs از زبان جاوا اسکریپت در سمت سرور استفاده می کند از ویژگی های nodejs سبک بودن و مصرف کم منابع سرور و همین طور سرعت بسیار بالا نسبت به php و سایر زبان های برنامه نویسی می توان اشاره کرد

برای نصب nodejs کد های زیر را از طریق ssh وارد می کنیم :

sudo yum install gcc-c++ make

curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -

sudo yum -y install nodejs

بعد از نصب nodejs می خواهیم تست کنیم که همه چیز به درستی کار می کند فایلی با نام test.js ایجاد میکنیم و کد های زیر را در آن ذخیره می کنیم

var http = require('http');
http.createServer(function(req,res){
  res.writeHead(200,{'Content-Type':'text/plain'});
  res.end("Hello World");
}).listen(3000, "127.0.0.1");
console.log("Server running at http://127.0.0.1:3000/");

به جای 127.0.0.1 می توانید از ip سرور خود هم استفاده کنید . حالا برای اجرای کد های بالا به این صورت عمل می کنیم :

 node test.js

حالا اگر http://server-ip:3000 را در مرورگر خود وارد کنید باید پیام Hello Word را مشاهده کنید .

اما اگر با ارور مواجه شدید و صفحه برای شما نشان داده نشد دلیل این مشکل می تواند به دلیل فایروال سرور شما باشد شما باید پورت 3000 را در فایروال خود فعال کنید برای این کار می توانید از کد های زیر استفاده کنید :

//برای دسترسی دادن به پورت 3000
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent

//برای حذف دسترسی پورت 3000
sudo firewall-cmd --zone=public --remove-port=3000/tcp --permanent

// برای مشاهده وضعیت فایروال و پورت های فعال
sudo firewall-cmd --zone=public --list-all

// برای ریستارت کردن فایرول بعد از انجام تغییرات
sudo systemctl stop firewalld

MongoDB : دیتابیس ها به دو دسته sql و nosql تقسیم می شوند . از دیتابیس های sql می توان از mysql و sqlserver نام برد که دارای ساختار مشخصی هستند اما دیتابیس های nosql ساختار مشخصی ندارند و شما می توانید اطلاعات خود را به هر صورتی داخل این دیتابیس ها ذخیره کنید  MongoDB یکی از معروف ترین دیتابیس های nosql است . توجه کنید که سایت MongoDB ای پی های ایران را تحریم کرده است . شما به راحتی میتوانید اطلاعات خود را به صورت json درون این دیتابیس ذخیره کنید برای نصب MongoDB به این صورت عمل می کنیم :

nano /etc/yum.repos.d/mongodb-org-3.6.repo

بعد از وارد کردن کد بالا محتوای زیر را درون آن paste کنید و فایل را ذخیره کنید

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

حالا برای نصب دیتابیس کافیست از کد زیر استفاده کنید :

sudo yum install -y mongodb-org

برای اجرا شدن سرویس mongoDB

sudo service mongod start

و برای قرار دادن برنامه در استارت اپ سرور ( زمانی که سرور ریستارت شود دیتابیس به صورت خودکار اجرا شود )

sudo chkconfig mongod on

 

آموزش کار با دیتابیس MongoDB


  • 0

ساخت فلش قابل بوت برای نصب لینوکس

یکی از ویژگی های جذاب توزیع های لینوکس قابلیت اجرای live سیستم عامل بدون نیاز به نصب از طریق usb است همین طور به راحتی میتوان توزیع های لینوکس را از طریق usb اجرا و نصب کرد

توزیع های مختلف لینوکس کاملا رایگان هستند و شما با مراجعه به سایت آن می توانید فایل ISO سیستم عامل را دانلود کنید در ادامه یادمیگیریم که چگونه از این فایل ISO استفاده کنیم و سیستم عامل را روی یک فلش مموری usb بریزیم

در لینک های زیر می توانید لینک چند توزیع مختلف لینوکس را مشاهده کنید و هرکدام را که دوست داشتید دانلود کنید در حال حاضر معروفترین آنها ابونتو است

  1. Ubuntu
  2. Linux Mint

نحوه استفاده در ویندوز :

اگر سیستم عامل شما ویندوز است برای استخراج فایل iso روی usb خودتون نیاز دارید تا برنامه زیر رو از سایت زیر دانلود کنید

https://rufus.akeo.ie/

کارکردن با این برنامه خیلی ساده است اول نوع سییستم عاملی که دانلود کردید را انتخاب می کنید داخل برنامه یه ایکون CD هست که روش کلیک میکنید و فایل ISO سیستم عاملی رو که دانلود کردین را انتخاب می کنید و start را می زنید و تمام

نحوه استفاده در ابونتو :

اگر شما از سیستم عامل ابونتو استفاده میکنید کارتان بسیار ساده تر است کافی است برنامه Startup Disk Creator را پیدا و اجرا کنید . برای انتخاب فایل ISO دکمه other را انتخاب کنید و از قسمت Disk to use هم فلش مموری خودتون رو انتخاب کنید و با زدن  Make Startup Disk برنامه شروع به استخراج فایل سیستم عامل میکند ممکن است تا تکمیل شدن عملیات چند دقیقه ای طول بکشد

حالا فلش مموری شما حاوی سیستم عامل لینوکس است و می توانید به راحتی آن را روی هر کامپیوتری نصب یا اجرا کنید


  • 0

آموزش نصب دیتابیس ماریا

MariaDB یک دیتابیس همانند mysql است و شما میتوانید بجای نصب mysql روی سرور خودتون از دیتابیس MariaDB استفاده کنید . هدف MariaDB ارایه اپدیت های بیشتر و دقیق تر و تضمین بر رایگان بودن همیشگی این دیتابیس است چون گفته میشه که اوراکل بروزرسانی های mysql رو بسیار دیر منتشر میکنه و یا ممکنه mysql رو به نسخه تجاری و غیر رایگان تغییر بده و … .

در این پست apache و php نسخه 7 و MariaDB و phpMyAdmin رو نصب میکنیم (LAMP)

این اموزش برای سیستم عامل ابونتو هست

یادآموری : در سیستم عامل ابونتو هرجا که عملیاتی در حال اجرا بود و میخواستید عملیاتی رو لغو کنید کافه دکمه ctrl + c  ویا ctrl + z رو بزنید

برای نصب اپاچی کد های زیر رو در ترمینال وارد می کنیم :

sudo apt-get update
sudo apt-get install apache2
sudo a2enmod rewrite
sudo service apache2 restart

برای افزودن قابلیت ssl کد های زیر رو در ترمینال وارد میکنیم :

sudo a2enmod ssl 
sudo a2ensite default-ssl.conf
sudo systemctl restart apache2.service
sudo netstat -tlpn
sudo systemctl enable apache2

به وسیله کد sudo netstat -tlpn میتونیم برسی کنیم که پورت 443 فعال شده است یا نه حالا اگر ip سرور رو وارد کنید می توانید صفحه خوش آمدگویی اپاچی را مشاهده کنید

برای نصب php هم از این کد ها استفاده میکنیم :

sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-xml php7.0-gd

برای نصب MariaDB :

sudo apt install php7.0-mysql mariadb-server mariadb-client

حالا برای کانفیگ MariaDB و مثلا تغییر رمز root و … از این کد استفاده میکنیم

sudo mysql_secure_installation

به سوالاتی که در طول مراحل کانفیگ پرسیده میشه جواب Yes بدهید

برای فعال سازی سرویس دیتابییس هم به این صورت عمل میکنیم

sudo systemctl restart mysql.service 
// یا کد زیر
sudo service mariadb restart

و برای نصب phpMyAdmin :

sudo apt install php-gettext phpmyadmin

در هنگام نصب سوالاتی را از شما میپرسه که جواب میدید و نصب تکمیل میشه اگر نیاز داشتید phpMyAdmin را دوباره کانفیگ کنید از کد زیر استفاده کنید

sudo dpkg-reconfigure phpmyadmin

خب کار تمام است و سرور ما امادست

اگر mariadb اجرا نمیشد و موقع فعال سازی آن ارور execute time out داد کد زیر را وارد میکنیم

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

سایت MariaDB , منابع بیشتر


  • -

آموزش نصب ماشین مجازی روی لینوکس

چرا به ماشین مجازی نیاز داریم ؟ و به چه کاربرد هایی داره ؟

خب اگر شما برنامه نویس هستید احتمالا خیلی براتون کاربرد خواهد داشت

مجازی سازی به شما اجازه میده که سیستم های مختلفی رو روی یک سخت افزار اجرا کنید مثلا در این اموزش ما می خواهیم روی سیستم عامل ابونتو ویندوز را به صورت مجازی نصب و راه اندازی کنیم

چند مثال از کاربرد مجازی سازی :

شما برنامه نویس ویندوز هستید . مثلا سیستم عاملی که شما استفاده میکنید ویندوز 7 است حالا شما برنامه ای را ساخته اید و می خواهید ببینید که روی ویندوز 8 و 10 هم به درستی کار میکنه یا نه خب حالا برای تست قطعا منطقی نیست که بخواید روی سیستمتون نسخه های 8 و 10 رو نصب کنید و برای تست هی بین سیستم عامل های مختلف سویج کنید و کلی وقتتون رو حدر میده خب شما میتونید ویندوز 8 و 10 رو توی همون ویندوز 7 خودتون به صورت مجازی نصب و اجرا کنید و تست های خودتون را به راحتی انجام بدید بدون این که نیاز باشه سیستم عاملتون رو تغییر بدید

یا مثل من از سیستم عامل ویندوز خوشتون نمیاد ولی بخاطر کارتون مجبورید ویندوز هم داشته باشید میتونید روی لینوکس هم ویندوز رو مجازی سازی کنید

اگر برنامه نویس اندروید هستید بعد از ساخت یه برنامه باید برنامه خودتون رو روی اندروید های مختلف تست کنید بازم هم با مجازی سازی میتونید نسخه های محتلف اندروید را هم زمان روی سیستموتون اجرا کیند و تست های خودتون رو انجام بدید

برنامه های مختلفی برای مجازی سازی وجود داره ما برای مجازی سازی روی لینوکس ابونتو 2 برنامه مختلف رو نصب میکنیم

معرفی و نصب برنامه مجازی سازی

اولین برنامه virtual machine manager نام داره نصب ساده ای داره به این برنامه به اختصار kvm میگیم برای نصبش کافیه از Ubuntu software اسم کامل برنامه رو جستجو کنید ( virtual machine manager ) و install رو بزنید .

بعد از نصب شدنش حتما یک بار سیستم را ریستارت کنید

برنامه دوم virtualBox نام داره که توسط اوراکل توسعه داده میشه هر دوی این برنامه ها رایگان هستند برنامه اول رو برای این نصب میکنیم که ممکنه virtualBox برای اجر شدن بهش نیاز پیدا کنه . این برنامه هم مثل برنامه اول اسمشو جستجو کنید و نصبش کنید

بعد از نصب virtualBox باید پیش نیاز های زیر رو هم از طریق ترمینال نصب کنید تا برای مجازی سازی ویندوز به مشکل بر نخورید . این پیش نیاز ها برای افزودن قابلیت شبکه کردن و انتقال فایل بین دو سیستم عامل لینوکس و ویندوز استفاده میشه

  • sudo apt-get upgrade
  • sudo apt-get install virtualbox-guest-additions-iso
  • sudo apt-get install virtualbox-guest-utils

خب حالا برنامه virtualBox را اجرا کنیدمی توانید سیستم عامل دلخواه خود را توسط برنامه virtualBox به سادگی نصب کنید


  • 0

آموزش ایجاد سرور مجازی در ابونتو

اگر شما توسعه دهنده نرم افزار هستید احتمالا برای توسعه برنامه خود نیاز دارید تا سیستم خود را به سرور تبدیل کنید و تست ها و اتصالات برنامه خود با سرور را روی با سرعت بیشتر و روی سیستم خود تست کنید

به این کار در لینوکس به اختصار نصب LAMP می گویند

L = Linux
A = Apache
M = MySQL
P = PHP

Apache : آپاچی وب سروری رایگان است که برای اینکه بتوانید از php و mysql استفاده کنید باید اپاچی را نصب کنید برای نصب اپاچی وب سرور کد های زیر را در ترمینال اجرا می کنیم

sudo apt-get update
sudo apt-get install apache2

بعد از تکمیل شدن نصب می توانید با نوشتن آدرس  http://localhost در مروگرتون صفحه مربوط به اپاچی رو مشاهده کنید حالا برای تغییر مسیر و تنظیم کردن آپاچی کد زیر را در ترمینال اجرا میکنیم ( می توانید به مسیر /etc/apache2 رفته و فایل apache2.conf را ویرایش کنید )

nano /etc/apache2/apache2.conf

و قسمتی از آن را به این صورت تغییر میدیم

Directory home/benyamin/prj >
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

<Directory /home/benyamin/prj >
        AllowOverride All
        Require all granted
</Directory>

<Directory /home/benyamin/prj >
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

شما به جای عبارت home/benyamin/prj مسیری که می خواهید به عنوان مسیر روت وب سرورتون باشه را وارد کنید

MySQL : برای نصب به این صورت عمل می کنیم

sudo apt-get install mysql-server phpmyadmin php-gettext php-mbstring
sudo apt-get install libapache2-mod-auth-mysql php-mysql

بعد از دانلود و در هنگام نصب ممکنه سوالاتی از شما پرسیده بشه مثل رمز عبور و انتخاب نوع وب سرور که apache2 رو انتخاب می کنیم و …

بعد از نصب کد زیر را اجرا کنید

sudo mysql_install_db

بازهم چنتا سوال از شما پرسیده می شه که جواب میدین که وارد جزییاتش نمیشم در کل yes یا no بزنید بره 😀

PHP : حالا اگر PHP روی سیستم شما نصب نیست به وسیله کد ها زیر میتونید نصبش کنید

sudo apt-get install php libapache2-mod-php

خیلی خب احتمالا دیگه کار نصب تمومه برای دسترسی به phpMyAdmin می تونید به ادرس زیر برید

http://localhost/phpmyadmin/

اما اگر به هر دلیلی نصب به درستی انجام نشد در ادامه یک سری کد برای کمک به رفع این مشکلات معرفی میکنیم

مثلا در سیستم من وقتی ادرس http://localhost/phpmyadmin/ می زدم وارد صفحه phpMyAdmin نمی شد و ارور 404 می داد این اتفاق ممکنه به دلایل مختلفی بیوفته من با اضافه کردن کد زیر به فایل apache2.conf که در مسیر etc/apache2 قرار داره مشکل رو حل کردم :

Include /etc/phpmyadmin/apache.conf

بعد از اضافه کردن کد بالا و ذخیره کردن باید یک بار اپاچی را ریستارت کنید

از این کدها برای مدیریت وب سرور اپاچی میشه استفاده کرد

// برای راه اندازی مجدد
sudo service apache2 restart

// برای متوقف کردن آپاچی
sudo service apache2 stop

// برای شروع به کار
sudo service apache2 start

// برای جلوگیری از اجرای اپاچی هنگام روشن شدن سیستم
sudo update-rc.d apache2 disable

// برای اجرا هنگام روشن شدن سیستم 
sudo update-rc.d apache2 enable

برای حذف PHP از روی سیستم :

sudo apt-get purge php.*
یا
sudo apt-get purge php*.*

برای حذف mysql و phpMyAdmin :

sudo apt-get --purge remove mysql*.*
sudo apt-get --purge remove phpmyadmin

sudo apt-get autoremove
sudo apt-get autoclean

برای حذف apache2 :

sudo service apache2 stop
sudo apt-get --purge remove apache2
sudo apt-get autoremove

  • 0

فشرده سازی عکس بدون افت کیفیت

دلایل زیادی وجود دارد که باعث می شود بخواهیم عکس های خودمان را تا حد ممکن و بدون افت کیفیت کاهش حجم دهیم

در ویندوز برنامه های مختلفی برای این کار وجود داره که با یه جستجوی ساده می توان برنامه ای مناسب برای این کار پیدا کرد

Optimize Jpeg Images

در این پست ما نحوه کاهش حجم عکس هایی با فرمت های png و jpg را در توزیع محبوب ابونتو اموزش می دهیم . ابتدا برای کاهش حجم تصاویر با فرمت jpg باید برنامه jpegOptim را نصب کنیم به صورت زیر

sudo apt-get install jpegoptim

بعد از نصب شدن برنامه به پوشه ای که عکس مورد نظر در آن قرار دارد رفته و روی پنجره راست کلیک می کنیم و open terminal را می زنیم و کد زیر را درون ان می نویسیم

jpegoptim filename.jpg

که باید به جای filename.jpg نام فایل خودتون را بنویسید و اینتر را بزنید تا کاهش حجم شروع شود . حالا چگونه می توانیم حجم عکس مورد نظر را به اندازه دلخواه خود تغییر دهیم ؟ در کد زیر ما تعیین میکنیم که حجم عکس باید به 250 کیلوبایت کاهش یابد :

jpegoptim --size=250k fileName.jpg

Optimizing PNG images

اما با  این روش نمیتوانیم  حجم عکس های png را کاهش دهیم برای عکس های png باید برنامه OptiPNG را نصب کنید

sudo apt-get install optipng

روش کار این برنامه هم تقریبا مشابه برنامه jpegOptim است برای کاهش حجم خودکار فایل های png به این صورت عمل میکنیم :

optipng filename.png