نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
در این آموزش می آموزید که چگونه یک API کامل RESTful را تنظیم کنید ، که با استفاده از Node.js و Express در حالی که پروکسی معکوس آن را با NGINX انجام دهید ، در Ubuntu 16.04 LTS به درخواست HTTP خدمت می کنید. ما از برنامه ای به نام Postman استفاده خواهیم کرد، یک ابزار توسعه API بسیار شناخته شده ، برای تست API ما و اطمینان از عملکرد کاملاً کاربردی و مناسب آن است. Node.js یک چارچوب سریع و متقاطع جاوا اسکریپت است که مبتنی بر موتور V8 Chrome است. این نرم افزار در برنامه های دسک تاپ و سرور استفاده می شود و به دلیل کار با حلقه یک رویداد یک رویداد مشهور است. ما از Node.js به عنوان پس زمینه API RESTful ، همراه با Express.js ، چارچوب برنامه وب استفاده شده برای Node.js. استفاده خواهیم کرد. Express.js به صورت نرم افزاری آزاد و آزاد منتشر می شود. Express سمت سرور است که به زبان جاوا اسکریپت نوشته شده است و برای ساختن API طراحی شده است که این امر باعث می شود این پروژه برای ما مناسب باشد. از طرف دیگر ، Postman یک مشتری HTTP بسیار قدرتمند است که دارای توسعه API در ذهن است. این برنامه شامل تمام ابزارهایی است که احتمالاً می خواهید برای توسعه API بخواهید.
ابتدا می خواهید به وب سایت Postman بروید و Postman را برای رایانه اصلی خود (نه سرور خود) بارگیری و نصب کنید. تمام دستورالعمل های نصب در وب سایت آنها قرار خواهد گرفت.
برای شروع ، ابتدا باید Node.js را نصب کنیم تا بتوانیم توسعه API خود را شروع کنیم. ما Node.js را از وب سایت رسمی بارگیری و نصب خواهیم کرد.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
علاوه بر این ، شما همچنین می خواهید ابزار لازم را بسازید که در تهیه ماژول ها مفید خواهد بود.
sudo apt-get install build-essential
برای این آموزش از نسخه LTS Node.js استفاده خواهیم کرد که نسخه 8.9.3 است.
ما باید یک پروژه جدید Node.js را که شامل یک برنامه کاربردی است ، اولیه کنیم. برای انجام این کار ، یک فهرست جدید ایجاد کنید.
mkdir expressapi
تغییر به فهرست جدید. پس از داخل کردن ، npm init
تمام گزینه های مورد نیاز را اجرا و تکمیل کنید. به "نقطه ورود" برنامه خود توجه داشته باشید: بعداً این پرونده را ایجاد خواهید کرد. پس از اتمام ، package.json
فایلی را در فهرست اصلی خود مشاهده خواهید کرد . این به عنوان توضیحی از پروژه ما عمل می کند و کلیه وابستگی های لازم برای عملکرد را لیست می کند.
اکنون Express.js و وابستگی های آن را پیکربندی خواهیم کرد.
npm install express
مراحل نصب آغاز می شود. چند دقیقه طول خواهد کشید تا همه چیز بارگیری شود.
در مرحله بعد ، فایل اصلی اصلی ما را برای API ایجاد خواهیم کرد. در اینجا جایی است که شما از "نقطه ورود" که در package.json
پرونده دیدید استفاده خواهید کرد. به خاطر این آموزش ، من از طرح نامگذاری پیش فرض استفاده می کنم ، index.js
.
touch index.js
سپس آن را در ویرایشگر متن نانو باز کنید.
nano index.js
در پرونده اصلی ما می خواهیم ابتدا با همه بسته های اصلی خود تماس گرفته و مسیرهای خود را ثبت کنیم.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
اساساً کاری که ما در اینجا انجام می دهیم ، اولیه سازی برنامه و تنظیم روتر اساسی برای API است. توجه داشته باشید که ما درگاه برنامه خود را تنظیم کرده ایم 8080
. ما در پیکربندی API RESTful خود به این شماره احتیاج خواهیم داشت. اکنون ما آماده هستیم تا به پیش برویم و API خود را تست کنیم.
در فهرست پروژه ، موارد زیر را اجرا کنید.
node <filename>.js
این کار API را شروع می کند ، <filename>
همان جایی که پرونده شروع در فایل مشخص شده است package.json
. سپس Postman را در رایانه شخصی / Mac خود باز کرده و بر روی New
دکمه "" در گوشه بالا سمت راست کلیک کرده و سپس روی "" کلیک کنید Request
. در آنجا ، باید نواری را ببینید که می گوید " GET
" در کنار آن. در اینجا URL درخواست ما را وارد خواهیم کرد. به سادگی موارد زیر را در بخش URL درخواست وارد کرده و "" را کلیک کنید Send
.
`http://your-server-ip:3000/api`
خواهید دید " 'API is online'
"
برای اداره مسیرها از روتر Express استفاده خواهیم کرد. اگر نمی دانید روتر چیست ، در واقع این است که چگونه نقاط نهایی برنامه به درخواست مشتری پاسخ می دهد. در اینجا مسیرهایی که به عنوان نمونه برپا خواهیم کرد آورده شده است:
/api/numbers
- همه شماره ها را از 1-10 نشان می دهد.
/api/letters
- همه نامه های AZ را نشان می دهد.
اکنون اولین ساختار میان افزار خود را مانند این تنظیم خواهیم کرد.
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
در این مثال شرایطی را تنظیم می کنیم که کاربر می تواند با ارائه فرم کلمه آن ، با استفاده از روش GET ، مبلغ یک عدد + 1 را درخواست کند. ما از این router.route()
تابع استفاده می کنیم تا به عنوان شماره ای که می خواهیم به عنوان نتیجه ارسال شود ، استفاده کنیم. پارامترها با " :
" در مقابل آنها نامگذاری شده اند. از طریق این پارامتر (ها) دسترسی پیدا می کنیم req.params
.
در اینجا مثالی با حروف آورده شده است.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
ما از همان روشی که در بالا استفاده کردیم استفاده می کنیم ، اما نامه را با عنوان بزرگ ارسال می کنیم.
NGINX یک نرم افزار منبع باز شناخته شده است که برای سرویس دهی به وب ، پروکسی معکوس ، پخش و موارد دیگر استفاده می شود. ما از NGINX برای معکوس کردن پروکسی API استفاده خواهیم کرد ، به ما این امکان را می دهیم که آن را در پورت اجرا کنیم 80
، زیرا Node.js امکان دسترسی به درگاه های کمتر از 1024 را بدون دسترسی به root نمی دهد. این می تواند هنگام پیوند دامنه شما به سرور شما مفید باشد.
برای شروع نصب NGINX باید موارد زیر را در ترمینال خود اجرا کنید و منتظر بمانید تا نصب تمام شود.
sudo apt-get install nginx
در مرحله بعد ، ما می خواهیم فایل سایت خود را ایجاد کنیم که NGINX برای معکوس کردن پروکسی برنامه ما از آن استفاده می کند.
sudo nano /etc/nginx/sites-available-api.js
پرونده را با موارد زیر جمع کنید ، سپس CTRL+ Oرا ذخیره کنید.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
با استفاده از همان درگاه قبلی که برنامه خود را اجرا کردیم ، به Nginx می گوییم که کلیه درخواست ها از آدرس IP خود را در درگاه 80
به API ما که در درگاه اجرا می شود ، هدایت کنیم 8080
.
در مرحله بعد ، پروکسی معکوس را با پیوند دادن پرونده جدید ایجاد شده به sites-available
پوشه ، فعال کنید:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
این اطمینان حاصل خواهد کرد که NGINX API ما را از پروکسی معکوس می کند.
پس از پایان تنظیمات NGINX ، NGINX را شروع می کنیم ، سپس API خود را شروع می کنیم. ابتدا NGINX را مجدداً راه اندازی کنید.
sudo systemctl restart nginx
سپس ، به فهرست API خود برگردید و آن را راه اندازی کنید.
node <filename>.js
برنامه در بندر اجرا خواهد شد 80
. به سادگی تست را از بالا با پستچی انجام دهید تا اطمینان حاصل شود که همه چیز درست کار می کند.
در یک محیط تولید ، می خواهید مطمئن شوید که یک مدیر فرآیند برای برنامه های Node خود دارید ، تا اطمینان حاصل کنید که آنها برای همیشه در پس زمینه در حال اجرا هستند. در این آموزش ، ما از یک مدیر فرآیند به نام PM2 (Process Manager 2) استفاده خواهیم کرد که یک مدیر فرآیند برای برنامه های Node.js است که با حداقل خرابی ، آنها را برای همیشه زنده نگه می دارد. PM2 با بسیاری از ابزارهای مدیریتی مفید ، مانند متوقف کردن ، بارگیری مجدد ، مکث و موارد دیگر وجود دارد. برای نصب PM2 ، موارد زیر را تایپ کرده و منتظر نصب آن باشید.
sudo npm install pm2 -g
پس از نصب ، تمام کاری که باید انجام دهید این است که مطمئن شوید که در فهرست پروژه قرار دارید ، موارد زیر را تایپ کنید و برنامه شروع می شود.
pm2 start <filename>.js
همانطور که قبلاً ذکر شد PM2 ابزارهای مفیدی دارد که می توانید برای مدیریت بهتر برنامه خود از آنها استفاده کنید.
pm2 stop
- همانطور که از نام آن پیداست ، این امکان را به شما می دهد تا برنامه در حال اجرا را متوقف کنید و روند آن را بکشید. اگر برنامه شما نتیجه غیر منتظره ای به دنبال دارد ، متوقف کردن آن مفید خواهد بود.
pm2 list
- عملکرد لیست به شما امکان می دهد همه برنامه های در حال اجرا را از طریق PM2 ، که توسط نام آنها نقشه برداری شده است ، مشاهده کنید. در صورت نیاز به سرعت بررسی زمان به روزرسانی برنامه خود ، باید از این ابزار استفاده کنید.
pm2 restart
- اگر برنامه شما به دلایلی یخ زد و دوست دارید آن را بارگیری مجدد کنید ، راه اندازی مجدد pm2 همین کار را انجام می دهد. این روند درخواست را از بین می برد و مجدداً آن را تحت یک فرآیند متفاوت آغاز می کند.
pm2 monit
- ابزار مانیتور داخلی PM2 به شما امکان می دهد نمودارهایی از جزئیات خاص برنامه خود مانند استفاده از CPU / RAM را در یک نمودار کاربرپسند به سبک کاربرانی مشاهده کنید. در صورت تمایل به تصویری از بار برنامه خود ، این مفید است.
ما اکنون وظیفه خود را برای ایجاد یک API RESTful ، استفاده از Node.js ، Express ، و پراکسی معکوس با NGINX انجام داده ایم. برای گسترش در این آموزش راحت باشید. با API جدید خود می توان��د کارهای بزرگی انجام دهید ، مانند افزودن روش های تأیید اعتبار ، یک بانک اطلاعاتی ، مسیر بهتر و خطای کار و موارد بسیار دیگر. اگر دامنه دارید ، با ضبط "A" که قبلاً در آدرس IP شما تنظیم شده است ، می توانید از دامنه خود به API خود دسترسی پیدا کنید. اگر می خواهید درباره Express.js بیشتر بدانید ، به وب سایت آنها به آدرس http://expressjs.com مراجعه کنید . برای کسب اطلاعات بیشتر در مورد NGINX و پراکسی معکوس ، به http://nginx.com مراجعه کنید . برای مطالعه بیشتر درباره PM2 ، به صفحه آنها در http://pm2.keymetrics.io مراجعه کنید .
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد