Tumgik
server70-blog · 4 years
Text
نحوه نصب و ایمن سازی Redis در اوبونتو 18.04
Redis یک فروشگاه با حافظه داخلی و مقدار کلید است که به دلیل انعطاف پذیری ، عملکرد و پشتیبانی گسترده از زبان شناخته شده است. این آموزش نحوه نصب ، پیکربندی و ایمن سازی Redis در یک سرور مجازی Ubuntu 18.04 را نشان می دهد. پیش نیازها برای تکمیل این راهنما ، به یک سرور مجازی اوبونتو 18.04 که دارای یک کاربر غیر ریشه با امتیازات sudo و دارای یک فایروال اساسی است ، نیاز دارید. می توانید با دنبال کردن راهنمای راه اندازی سرور مجازی اولیه ما این کار را تنظیم کنید. پس از آماده شدن ، به عنوان کاربر sudo خود به سرور مجازی Ubuntu 18.04 خود وارد شوید و در زیر ادامه دهید. مرحله 1 – نصب و پیکربندی Redis برای به دست آوردن آخرین نسخه Redis ، ما از apt برای نصب آن از مخزن رسمی اوبونتو استفاده خواهیم کرد. حافظه نهان بسته محلی apt خود را به روز کنید و Redis را با تایپ دستور زیر نصب کنید: $ sudo apt update $ sudo apt install redis-server با این کار Redis و متعلقات آن دانلود و نصب می شوند. پس از این ، یک تغییر پیکربندی مهم برای ایجاد در فایل پیکربندی Redis وجود دارد که به طور خودکار در حین نصب ایجاد می شود. این فایل را با ویرایشگر متن مورد نظر خود باز کنید: $ sudo nano /etc/redis/redis.conf در داخل فایل ، دستورالعمل supervised  را پیدا کنید. این دستورالعمل به شما امکان می دهد سیستم شروع را برای مدیریت Redis به عنوان یک سرویس اعلام کنید و کنترل بیشتری بر عملکرد آن به شما ارائه می دهد. دستورالعمل supervised  به صورت پیش فرض تنظیم نشده است. از آنجا که شما اوبونتو را اجرا می کنید ، که از سیستم شروع systemd استفاده می کند ، این را به systemd تغییر دهید: /etc/redis/redis.conf . . . # If you run Redis from upstart or systemd, Redis can interact with your # supervision tree. Options: # supervised no – no supervision interaction # supervised upstart – signal upstart by putting Redis into SIGSTOP mode # supervised systemd – signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised auto – detect upstart or systemd method based on # UPSTART_JOB or NOTIFY_SOCKET environment variables # Note: these supervision methods only signal “process is ready.” # They do not enable continuous liveness pings back to your supervisor. supervised systemd . . . این تنها تغییری است که در این مرحله باید در فایل پیکربندی Redis انجام دهید ، بنابراین پس از اتمام آن را ذخیره کنید و ببندید. سپس ، سرویس Redis را مجدداً راه اندازی کنید تا تغییراتی که در فایل پیکربندی ایجاد کرده اید اعمال شوند: $ sudo systemctl restart redis.service با این کار ، شما Redis را نصب و پیکربندی کرده اید و در دستگاه شما کار می کند. با این حال ، قبل از شروع استفاده از آن ، بهتر است برای احتیاط ابتدا بررسی کنید که آیا Redis عملکرد صحیحی دارد یا خیر. مرحله 2 – تست Redis مانند هر نرم افزاری که به تازگی نصب میشود ، بهتر است که قبل از ایجاد هرگونه تغییر بیشتر در پیکربندی آن ، از عملکرد Redis مطابق آنچه انتظار می رود ، اطمینان حاصل کنیم. ما چند روش را برای بررسی اینکه Redis در این مرحله به درستی کار می کند ، مرور میکنیم. ابتدا بررسی کنید سرویس Redis در حال اجراست: $ sudo systemctl status redis اگر بدون خطا در حال اجرا باشد ، این دستور خروجی مشابه زیر را ایجاد می کند: Output ● redis-server.service – Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-06-27 18:48:52 UTC; 12s ago Docs: http://redis.io/documentation, man:redis-server(1) Process: 2421 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS) Process: 2424 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) Main PID: 2445 (redis-server) Tasks: 4 (limit: 4704) CGroup: /system.slice/redis-server.service └─2445 /usr/bin/redis-server 127.0.0.1:6379 . . . در اینجا ، می بینید که Redis در حال اجرا فعال شده است ، به این معنی که هر بار که سرور مجازی بوت شود ، راه اندازی می شود. توجه: این تنظیمات برای بسیاری از موارد استفاده رایج از Redis مطلوب است. اما اگر ترجیح می دهید هر بار که سرور مجازی خود را راه اندازی میکنید ، Redis را به صورت دستی راه اندازی کنید ، می توانید این کار را با دستور زیر تنظیم کنید: $ sudo systemctl disable redis برای آزمایش عملکرد صحیح Redis ، با استفاده از کلاینت خط فرمان به سرور مجازی وصل شوید: $ redis-cli در اعلان زیر ، اتصال را با دستور ping تست کنید: 127.0.0.1:6379> ping Output PONG این خروجی تأیید می کند که اتصال سرور مجازی هنوز باقی است. در مرحله بعد ، بررسی کنید که می توانید با اجرای دستور زیر، کلیدها را تنظیم کنید: 127.0.0.1:6379> set test “It’s working!” Output OK مقدار را با تایپ این دستور بازیابی کنید: 127.0.0.1:6379> get test با فرض اینکه همه چیز کار می کنید ، می توانید مقدار ذخیره شده خود را بازیابی کنید: Output “It’s working!” پس از تأیید این که می توانید مقدار را بدست آورید ، برای بازگشت به پوسته از قسمت Redis خارج شوید: 127.0.0.1:6379> exit به عنوان یک آزمایش نهایی ، بررسی خواهیم کرد که آیا Redis قادر به حفظ داده حتی پس از متوقف شدن یا راه اندازی مجدد آن هست یا خیر. برای انجام این کار ، ابتدا نمونه Redis را ریستارت کنید: $ sudo systemctl restart redis سپس یک بار دیگر با کلاینت خط فرمان ارتباط برقرار کرده و تأیید کنید که مقدار تست شما هنوز در دسترس است: $ redis-cli 127.0.0.1:6379> get test مقدار کلید شما هنوز باید در دسترس باشد: Output “It’s working!” پس از اتمام دوباره وارد پوسته شوید: 127.0.0.1:6379> exit با این کار ، نصب Redis شما کاملاً عملیاتی است و برای استفاده شما آماده است. با این حال ، برخی از تنظیمات پیکربندی پیش فرض آن ناایمن است و فرصت حملات و دسترسی به سرور مجازی و داده های آن را می دهد. مراحل باقیمانده در این آموزش ، روش های کاهش این آسیب پذیری ها را مطابق با وب سایت رسمی Redis ارائه میدهد. اگرچه این مراحل اختیاری است و اگر تصمیم به دنبال کردن آنها ندارید ، هنوز هم Redis کار خواهد کرد ، توصیه می شود آنها را انجام دهید تا امنیت سیستم شما بیشتر شود. مرحله 3 – اتصال به localhost به طور پیش فرض ، Redis فقط از localhost قابل دسترسی است. با این وجود ، اگر Redis را با پیروی از آموزش دیگری، نصب و پیکربندی کرده اید ، ممکن است فایل پیکربندی را به روز کرده باشید تا بتوانید از هرجای دیگر اتصالات را برقرار کنید. این روش به اندازه کافی برای اتصال به localhost مطمئن نیست. برای اصلاح این مشکل ، فایل پیکربندی Redis را برای ویرایش باز کنید: $ sudo nano /etc/redis/redis.conf این خط را پیدا کرده و اطمینان حاصل کنید که آن باطل است (در صورت وجود # ، آن را حذف کنید): /etc/redis/redis.conf bind 127.0.0.1 ::1 پس از اتمام فایل را ذخیره کرده و ببندید (CTRL + X ، Y ، سپس ENTER را فشار دهید). سپس ، سرویس را مجدداً راه اندازی کنید تا اطمینان حاصل شود که systemd تغییرات شما را خوانده است: $ sudo systemctl restart redis برای بررسی اینکه این تغییر به مرحله اجرا گذاشته شده است ، دستور netstat زیر را اجرا کنید: $ sudo netstat -lnp | grep redis Output tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 14222/redis-server tcp6 0 0 ::1:6379 :::* LISTEN 1422 این خروجی نشان می دهد که برنامه redis-server به localhost (127.0.0.1) متصل شده است و تغییری را که اخیراً در فایل پیکربندی ایجاد کرده اید ، نشان می دهد. اگر آدرس IP دیگری را در آن ستون مشاهده می کنید (به عنوان مثال 0.0.0.0) ، پس باید دوبار بررسی کنید که خط صحیح را باطل کرده اید و دوباره سرویس Redis را راه اندازی کنید. اکنون که نصب Redis فقط به localhost گوش می کند ، انجام درخواست یا دسترسی به سرور مجازی شما برای حمله گران دشوار خواهد بود. با این حال ، در حال حاضر Redis قبل از ایجاد تغییر در پیکربندی یا داده هایی که نگه میدارد ، از کاربران درخواست نمیکند که خود را تأیید کنند. برای رفع این مشکل ،Redis به شما امکان می دهد تا کاربران را قبل از ایجاد تغییر از طریق کلاینت Redis (redis-cli) با گذرواژه تأیید کنید. مرحله 4 – پیکربندی رمز عبور Redis پیکربندی رمز عبور Redis یکی از دو ویژگی امنیتی داخلی خود را ایجاد می کند – دستور auth ، که به تایید اعتبار کلاینت ها برای دسترسی به پایگاه داده نیاز دارد. رمز عبور مستقیماً در فایل پیکربندی Redis ، /etc/redis/redis.conf پیکربندی شده است ، بنابراین دوباره آن فایل را با ویرایشگر مورد نظر خود باز کنید: $ sudo nano /etc/redis/redis.conf به بخش SECURITY بروید و به دنبال دستورالعملی باشید که وظیفه خواندن را دارد: /etc/redis/redis.conf # requirepass foobared با حذف # آن را لغو کنید و foobared  را به یک رمزعبور امن تغییر دهید. توجه: در بالای دستورالعمل requirepass در فایل redis.conf ، یک اخطار کامنت وجود دارد: # Warning: since Redis is pretty fast an outside user can try up to # 150k passwords per second against a good box. This means that you should # use a very strong password otherwise it will be very easy to break. # بنابراین ، مهم است که یک مقدار بسیار قوی و بسیار طولانی را به عنوان رمزعبور خود تعیین کنید. به جای ایجاد رمز عبور ، می توانید از دستور opensl برای ایجاد پسورد تصادفی استفاده کنید ، مانند مثال زیر. با اتصال خروجی دستور اول به دستور دوم opensl ، همانطور که در اینجا نشان داده شده است ، هرگونه وقفه بین خطوط را که توسط آن دستور اول ایجاد می شود حذف می کند: $ openssl rand 60 | openssl base64 -A خروجی شما باید شبیه به چیزی باشد Output RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE پس از کپی پیست کردن خروجی آن فرمان به عنوان مقدار جدید requirepass ، باید این را بخواند: /etc/redis/redis.conf requirepass RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE پس از تنظیم گذرواژه ، فایل را ذخیره کرده و ببندید ، و دوباره Redis را ریستارت کنید: $ sudo systemctl restart redis.service برای آزمایش اینکه رمز عبور کار می کند ، به خط فرمان Redis دسترسی پیدا کنید: $ redis-cli در زیر توالی دستورات مورد استفاده برای تست کار با رمز Redis وجود دارد. دستور اول سعی می کند قبل از تأیید اعتبار ، کلید را روی یک مقدار تنظیم کند: 127.0.0.16379> set key1 10 از آنجا که شما تأیید اعتبار نکردید ، کار نخواهد کرد . بنابراین Redis خطایی را برمی گرداند: Output (error) NOAUTH Authentication required. دستور بعدی با گذرواژه مشخص شده در فایل پیکربندی Redis تأیید اعتبار می کند: 127.0.0.16379> auth your_redis_password Redis تصدیق می کند: Output OK پس از آن ، اجرای دوباره فرمان قبلی موفق خواهد شد: 127.0.0.16379> set key1 10 Output OK get key1 برای دریافت کلید جدید ، از Redis پرس و جو میکند. 127.0.0.16379> get key1 Output “10” پس از تأیید اینکه می توانید بعد از تأیید اعتبار ، دستوراتی را در کلاینت Redis اجرا کنید ، می توانید از redis-cli خارج شوید: 127.0.0.16379> quit در مرحله بعد ، تغییر نام دستورات Redis را بررسی خواهیم کرد که اگر به اشتباه یا توسط یک حمله گر وارد شود ، می تواند آسیب جدی به دستگاه شما وارد کند. مرحله 5 – تغییر نام دستورات خطرناک ویژگی امنیتی دیگر قرار داده شده در Redis تغییر نام یا غیرفعال کردن کامل فرامین خاصی است که خطرناک به نظر می رسند. هنگامی که این دستورات توسط کاربران غیرمجاز اجرا می شوند ، می توانند برای پیکربندی ، از بین بردن یا پاک کردن داده های شما استفاده شوند. مانند گذرواژه تأیید اعتبار ، تغییر نام یا غیرفعال کردن دستورات در همان بخش SECURITY فایل /etc/redis/redis.conf پیکربندی شده است. برخی از دستوراتی که خطرناک به حساب می آیند عبارتند از FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME, و  DEBUG. این یک لیست جامع نیست ، اما تغییر نام یا غیرفعال کردن کلیه دستورات موجود در آن لیست ، نقطه شروع خوبی برای افزایش امنیت سرور مجازی Redis شما است. این که آیا شما باید یک فرمان را غیرفعال کنید یا تغییر نام دهید ، به نیازهای خاص شما یا نیازهای سایت شما بستگی دارد. اگر می دانید هرگز از دستوری که مورد سوءاستفاده قرار می گیرد استفاده نمی کنید ، می توانید آن را غیرفعال کنید. در غیر این صورت ، تغییر نام آن مفید خواهد بود. برای فعال یا غیرفعال کردن دستورات Redis ، فایل پیکربندی را یک بار دیگر باز کنید: $ sudo nano /etc/redis/redis.conf هشدار: مراحل زیر نشانگر نحوه غیرفعال کردن و تغییر نام دستورات مثال است. شما فقط باید انتخاب کنید که که غیرفعال کردن یا تغییر نام چه دستوراتی منطقی میباشد. می توانید لیست کامل دستورات را برای خود مرور کنید و نحوه استفاده آنها در redis.io/commands را تعیین کنید. برای غیرفعال کردن یک دستور ، کافی است آن را به یک رشته خالی تغییر دهید (که توسط یک جفت علامت نقل قول بدون هیچ کاراکتری بین آنها مشخص شده است) ، همانطور که در زیر نشان داده شده: /etc/redis/redis.conf . . . # It is also possible to completely kill a command by renaming it into # an empty string: # rename-command FLUSHDB “” rename-command FLUSHALL “” rename-command DEBUG “” . . . برای تغییر نام یک فرمان ، مانند مثالهای زیر نام دیگری به آن بدهید. حدس دستورات تغییر نام یافته باید برای دیگران دشوار باشد ، اما یادآوری آن برای شما آسان باشد: /etc/redis/redis.conf . . . # rename-command CONFIG “” rename-command SHUTDOWN SHUTDOWN_MENOT rename-command CONFIG ASC12_CONFIG . . . تغییرات خود را ذخیره کرده و فایل را ببندید. پس از تغییر نام یک فرمان ، با راه اندازی مجدد Redis ، تغییر را اعمال کنید: $ sudo systemctl restart redis.service برای آزمایش دستور جدید ، وارد خط فرمان Redis شوید: $ redis-cli سپس ، تأیید اعتبار کنید: 127.0.0.1:6379> auth your_redis_password Output OK فرض کنیم که شما دستور CONFIG را مانند مثال قبل به ASC12_CONFIGتغییر نام دادید . ابتدا سعی کنید از دستور اصلی CONFIG استفاده کنید. باید با شکست مواجه شود ، زیرا شما آن را تغییر نام داده اید: 127.0.0.1:6379> config get requirepass Output (error) ERR unknown command ‘config’ با این وجود فراخوانی فرمان تغییر نام داده شده موفقیت آمیز خواهد بود. به کوچک و بزرگ بودن کاراکترها حساس نیست: 127.0.0.1:6379> asc12_config get requirepass Output 1) “requirepass” 2) “your_redis_password” درنهایت ، می توانید از redis-cli خارج شوید: 127.0.0.1:6379> exit توجه داشته باشید که اگر قبلاً از خط فرمان Redis استفاده کرده اید و دوباره Redis را ریستارت کرده اید ، باید مجددا تأیید اعتبار کنید. در غیر این صورت ، اگر یک دستور تایپ کنید ، این خطا را دریافت خواهید کرد: Output NOAUTH Authentication required. به خاطر تغییر نام دستورات ، در پایان بخش SECURITY در /etc/redis/redis.conf یک عبارت احتیاط وجود دارد: /etc/redis/redis.conf . . . # Please note that changing the name of commands that are logged into the # AOF file or transmitted to replicas may cause problems. . . . توجه: پروژه Redis از اصطلاحات “master” و “slave” استفاده میکند ، در حالی که vpsgol عموماً اصطلاحات “primary” و “secondary” را ترجیح می دهد به معنی اولیه و ثانویه. برای جلوگیری از سردرگمی ، تصمیم گرفتیم که در اینجا از اصطلاحات استفاده شده در مستندات Redis استفاده کنیم. این بدان معناست که اگر دستور تغییر نام یافته در فایل AOF نباشد ، یا اگر موجود باشد اما فایل AOF به slaves ارسال نشده باشد ، دیگر مشکلی وجود نخواهد داشت. بنابراین ، هنگام تغییر نام دستورات ، این را به خاطر داشته باشید. بهترین زمان برای تغییر نام یک فرمان زمانی است که شما از ماندگاری AOF استفاده نمی کنید ، یا درست بعد از نصب ، یعنی قبل از استقرار برنامه مبتنی بر Redis. هنگامی که از AOF استفاده می کنید و با یک نصب master slave سرو کار دارید ، این پاسخ را از صفحه صدور GitHub پروژه در نظر بگیرید. بنابراین ، بهترین روش برای تغییر نام در مواردی از این دست ، این است که مطمئن شوید دستورات تغییر نام یافته به تمام مثال های نصب های master-slave اعمال میشود. نتیجه در این آموزش ، Redis را نصب و پیکربندی کرده اید ، تأیید کردید که نصب Redis شما به درستی کار می کند و از ویژگی های امنیتی داخلی استفاده کرده است تا در برابر حملات مخرب کمتر آسیب پذیر باشد. به خاطر داشته باشید که پس از ورود شخصی به سرور مجازی شما ، دور زدن ویژگی های امنیتی ویژه Redis که ما در آن قرار داده ایم بسیار آسان است. بنابراین ، مهمترین ویژگی امنیتی در سرور مجازی Redis ، فایروال شماست (که در صورت پیروی از آموزش مقدماتی راه اندازی اولیه سرور مجازی اولیه، آن را پیکربندی کرده اید) ، زیرا این کار پرش از آن حصار امنیتی را برای حمله گران بسیار دشوار می کند. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:AOF,Github,master slave,primary
0 notes
server70-blog · 4 years
Text
اضافه کردن فضای Swap در اوبونتو 20.04
یکی از راه های محافظت در برابر خطاهای اتمام حافظه در برنامه ها ، اضافه کردن فضای Swap به سرور مجازی شما است. در این راهنما نحوه اضافه کردن فایل swap به یک سرور مجازی Ubuntu 20.04 را پوشش خواهیم داد. هشدار: اگرچه Swap برای سیستم هایی که از هارد دیسک های معمول چرخشی استفاده میکنند ، توصیه میشود اما قرار دادن Swap در SSD ها می تواند با گذشت زمان مشکلاتی را برای تخریب سخت افزار ایجاد کند. به همین دلیل ، ما امکان فعال کردن Swap در vpsgol یا هر ارائه دهنده دیگری که از حافظه SSD استفاده می کند را توصیه نمی کنیم. Swap چیست؟ Swap بخشی از حافظه هارد دیسک است که برای سیستم عامل کنار گذاشته شده است تا داده هایی را که دیگر نمی تواند در RAM نگهداری کند ، به طور موقت ذخیره کند. این به شما امکان می دهد مقدار اطلاعاتی را که سرور مجازی شما می تواند در حافظه کاری خود نگه دارد افزایش یابد. فضای Swap در هارد دیسک عمدتاً زمانی استفاده می شود که دیگر فضای کافی در حافظه رم برای نگهداری داده های برنامه وجود نداشته باشد. اطلاعات ارسال شده روی دیسک به طور قابل توجهی کندتر از اطلاعات موجود در RAM خواهد بود ، اما سیستم عامل ترجیح می دهد داده های برنامه را در حافظه نگه داشته و از داده های قدیمی تر swap استفاده کند. به طور کلی ، داشتن فضای Swap به عنوان fallback برای زمانی که رم رو به اتمام است، می تواند یک شبکه ایمنی مناسب در برابر استثناهای اتمام حافظه در سیستم های با حافظه غیر SSD باشد. مرحله 1 – بررسی سیستم برای اطلاعات Swap قبل از شروع ، می توانیم بررسی کنیم که آیا سیستم از قبل فضای Swap در دسترس دارد یا خیر. ممکن است چندین فایل Swap یا پارتیشن swap داشته باشد ، اما به طور کلی یکی از آنها کافی می باشد. با تایپ کردن این دستور می توانیم ببینیم که آیا این سیستم Swap پیکربندی شده دارد: $ sudo swapon –show اگر هیچ خروجی دریافت نکردید ، بدان معنی است که سیستم شما در حال حاضر فضای Swap در دسترس ندارد. با استفاده از ابزار free می توانید تأیید کنید که هیچ Swap فعالی وجود ندارد: $ free -h Output total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B همانطور که در ردیف Swap خروجی مشاهده می کنید ، هیچ Swap روی سیستم فعال نیست. مرحله 2 – بررسی فضای موجود در پارتیشن هارد دیسک قبل از ایجاد فایل Swap ، استفاده فعلی دیسک خود را بررسی خواهیم کرد تا مطمئن شویم که فضای کافی داریم. این کار را با وارد کردن دستور زیر انجام دهید: $ df -h Output Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run /dev/vda1 25G 1.4G 23G 7% / tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000 دستگاه با / در ستون Mounted on در این مورد دیسک ماست. در این مثال فضای زیادی در دسترس داریم (فقط از 1.4گیگ استفاده شده است). استفاده شما احتمالاً متفاوت خواهد بود. اگرچه نظرات زیادی در مورد اندازه مناسب فضای swap وجود دارد ، اما واقعاً بستگی به ترجیحات شخصی شما و نیازهای برنامه شما دارد. به طور کلی ، مقداری برابر یا دو برابر مقدار RAM روی سیستم مناسب خواهد بود. یک قانون دیگر این است که اگر فقط از آن به عنوان fallback رم استفاده کنید ، احتمالاً چیزی بیش از 4 گیگ Swapنیاز نمیباشد. مرحله 3 – ایجاد فایل swap اکنون که فضای هارد دیسک موجود خود را می دانیم ، می توانیم یک فایل swap در سیستم فایل خود ایجاد کنیم. ما فایلی را به اندازه ای که می خواهیم به نام swapfile  در دیرکتوری ریشه (/)خود قرار خواهیم داد. بهترین راه برای ایجاد فایل swap با برنامه fallocate است. این دستور بلافاصله یک فایل با اندازه مشخص ایجاد می کند. از آنجا که سرور مجازی در مثال ما 1 گیگ RAM دارد ، ما یک فایل 1 گیگی را در این راهنما ایجاد خواهیم کرد. این رم را متناسب با نیازهای سرور مجازی خود تنظیم کنید: $ sudo fallocate -l 1G /swapfile با تایپ این دستور می توانیم تأیید کنیم که مقدار صحیح فضا محفوظ است: $ ls -lh /swapfile $ -rw-r–r– 1 root root 1.0G Apr 25 11:14 /swapfile فایل ما با مقدار صحیحی از فضای کنار گذاشته شده ایجاد شده است. مرحله 4 – فعال کردن فایل swap اکنون که فایلی با اندازه مناسب در دسترس داریم ، باید در عمل این را به فضای swap تبدیل کنیم. ابتدا باید مجوزهای فایل را قفل کنیم تا فقط کاربرانی که دارای حق امتیاز هستند بتوانند مطالب را بخوانند. این کار مانع از دسترسی کاربران عادی به فایل می شود که پیامدهای امنیتی قابل توجهی دارد. با تایپ کردن دستور زیر فایل فقط در دسترس ریشه قرار میگیرد: $ sudo chmod 600 /swapfile تغییر مجوزها را با تایپ دستور زیر تأیید کنید: $ ls -lh /swapfile Output -rw——- 1 root root 1.0G Apr 25 11:14 /swapfile همانطور که مشاهده می کنید ، فقط کاربر اصلی دارای پرچم های خواندن و نوشتن است. اکنون می توانیم با تایپ کردن این دستور فایل را به عنوان فضای swap مشخص کنیم: $ sudo mkswap /swapfile Output Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf پس از علامت گذاری فایل ، می توانیم فایل swap را فعال کنیم و به سیستم ما امکان استفاده از آن را می دهد: $ sudo swapon /swapfile با تایپ این دستور تأیید کنید که swap در دسترس است: $ sudo swapon –show Output NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2 ما می توانیم بازده ابزار free را دوباره بررسی کنیم تا یافته هایمان را تأیید کنیم: $ free -h Output total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi swap ما با موفقیت تنظیم شده است و سیستم عامل ما در صورت لزوم شروع به استفاده از آن خواهد کرد. مرحله 5 – دائمی کردن فایل Swap تغییرات اخیر ما فایل Swap بخش فعلی را فعال کرده است. اما اگر راه اندازی مجدد کنیم ، سرور مجازی تنظیمات swap را به طور خودکار حفظ نمی کند. ما می توانیم با اضافه کردن فایل swap به فایل / etc / fstab خود ، این تنظیمات را تغییر دهیم. از فایل / etc / fstab نسخه پشتیبان تهیه کنید تا در صورت بروز هرگونه خطا با مشکلی مواجه نشوید: $ sudo cp /etc/fstab /etc/fstab.bak با تایپ کردن این دستور اطلاعات فایل swap را به انتهای فایل / etc / fstab خود اضافه کنید: $ echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab در مرحله بعدی برخی از تنظیماتی را میتوانیم به روز کنیم بررسی مینماییم تا فضای swap خود را تنظیم کنیم. مرحله 6 – تنظیمات swap خود را تعیین کنید چند گزینه وجود دارد که می توانید پیکربندی کنید که در عملکرد سیستم شما هنگام برخورد با swap تأثیر می گذارد. تنظیم ویژگی Swappiness پارامتر swappiness پیکربندی میکند که سیستم شما چند بار داده را از RAM به فضای swap در گردش قرار دهد. این مقدار بین 0 تا 100 است که درصد را نشان می دهد. با مقادیر نزدیک به صفر ، هسته داده ها را به دیسک منتقل نمیکند مگر اینکه واقعا لازم باشد. به یاد داشته باشید ، تعامل با فایل swap “هزینه بر” است زیرا مدت زمان زیادی نسبت به تعامل با RAM طول می کشد و می تواند باعث کاهش قابل توجه عملکرد شود. به طور کلی اعلام به سیستم مبنی بر متکی نبودن زیاد به swap ، باعث سریعتر شدن سیستم شما خواهد شد. مقادیر نزدیک به 100 ، سعی می کنند تا داده های بیشتری را در swap قرار دهند تا فضای خالی RAM بیشتری حفظ کنند. بسته به مشخصات حافظه برنامه های شما یا آنچه از سرور مجازی خود برای آن استفاده می کنید ، این کار ممکن است در بعضی موارد ارحج باشد. می توانیم با تایپ کردن دستور زیر مقدار swappiness فعلی را مشاهده کنیم: $ cat /proc/sys/vm/swappiness Output 60 برای دسکتاپ ، تنظیم swappiness روی 60 مقدار بدی نیست. برای یک سرور مجازی ، ممکن است بخواهید آن را به 0 نزدیک کنید. ما می توانیم swappiness را با استفاده از دستور sysctl به مقدار دیگری تبدیل کنیم. به عنوان مثال ، برای تنظیم swappiness روی 10 ، می توانیم تایپ کنیم: $ sudo sysctl vm.swappiness=10 Output vm.swappiness = 10 این تنظیم تا ریبوت بعدی ادامه خواهد داشت. ما می توانیم با اضافه کردن خط به فایل /etc/sysctl.conf ، این مقدار را به طور خودکار در ریستارت تنظیم کنیم: $ sudo nano /etc/sysctl.conf در پایین می توانید اضافه کنید: /etc/sysctl.conf vm.swappiness=10 پس از اتمام فایل را ذخیره کنید و ببندید. تعیین تنظیمات فشار Cache مقدار مرتبط دیگری که ممکن است بخواهید آن را تغییر دهید vfs_cache_pressure است. این تنظیمات چگونگی انتخاب سیستم برای ذخیره اطلاعات inode  و dentry  نسبت به سایر داده ها را پیکربندی می کند. در اصل ، داده های دسترسی در مورد سیستم فایل است. به طور کلی جستجوی آن هزینه بر است و بسیار درخواست میشود، بنابراین یک حافظه پنهان برای سیستم شما بسیار عالی خواهد بود. با پرس و جوی مجدد سیستم فایل proc می توانید مقدار فعلی را مشاهده کنید: $ cat /proc/sys/vm/vfs_cache_pressure Output 100 همانطور که سیستم ما در حال حاضر پیکربندی شده است ، خیلی سریع اطلاعات inode  را از حافظه نهان پاک می کند. می توانیم با تایپ کردن دستور زیر، میتوانیم آن را روی تنظیمات محافظه کارانه تری مانند 50 تنظیم کنیم: $ sudo sysctl vm.vfs_cache_pressure=50 Output vm.vfs_cache_pressure = 50 باز هم ، این فقط برای بخش فعلی ما معتبر است. ما می توانیم با اضافه کردن آن به فایل پیکربندی خود مانند تنظیمات swappiness آن را تغییر دهیم: $ sudo nano /etc/sysctl.conf در پایین ، خطی را اضافه کنید که مقدار جدید شما را مشخص می کند: /etc/sysctl.conf vm.vfs_cache_pressure=50 پس از اتمام فایل را ذخیره کنید و ببندید. نتیجه پیروی از مراحل موجود در این راهنما در مواردی که منجر به استثناهای اتمام حافظه شود ، به شما فضای تنفس می دهد. فضای swap می تواند برای جلوگیری از برخی از این مشکلات متداول فوق العاده مفید باشد. اگر به خطاهای OOM (اتمام حافظه) برخورد می کنید ، یا می بینید که سیستم شما قادر به استفاده از برنامه های مورد نیاز شما نیست ، بهترین راه حل این است که تنظیمات برنامه خود را بهینه کنید یا سرور مجازی خود را به روز کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:fallback,RAM,SSD,swap
0 notes
server70-blog · 4 years
Text
چگونه می توان فایروال را با UFW در اوبونتو 20.04 تنظیم کرد
UFW ، یا فایروال ساده (غیر پیچیده) ، یک رابط مدیریت ساده فایروال است که پیچیدگی فن آوری های فیلترینگ سطح پایین تر مانند iptables و nftables را پنهان می کند. اگر به دنبال شروع به کار در تأمین امنیت شبکه خود هستید و مطمئن نیستید از کدام ابزار استفاده کنید ، UFW میتواند انتخاب مناسبی برای شما باشد. در این آموزش نحوه تنظیم فایروال با UFW در اوبونتو 20.04 به شما نشان داده خواهد شد. پیش نیازها برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید: • یک سرور مجازی Ubuntu 20.04 با یک کاربر sudo غیر ریشه ، که می توانید با دنبال کردن ستاپ اولیه سرور مجازی با آموزش اوبونتو 20.04 آن را تنظیم کنید. UFW به طور پیش فرض در اوبونتو نصب شده است. اگر به دلایلی نصب نشده ، می توانید آن را با sudo apt install ufw نصب کنید. مرحله 1 – استفاده از IPv6 با UFW (اختیاری) این آموزش با در نظرگیری IPv4 نوشته شده است ، اما وقتی آن را فعال کنید ، برای IPv6 نیز کار خواهد کرد. اگر سرور مجازی Ubuntu شما IPv6 را فعال کرده است ، اطمینان حاصل کنید که UFW برای پشتیبانی از IPv6 تنظیم شده باشد تا بتواند علاوه بر IPv4 ، قوانین فایروال را برای IPv6 نیز مدیریت کند. برای انجام این کار ، پیکربندی UFW را با nano یا ویرایشگر مورد علاقه خود باز کنید. $ sudo nano /etc/default/ufw سپس مطمئن شوید که مقدار IPV6 بله است. می بایست شبیه به این باشد: /etc/default/ufw excerpt IPV6=yes فایل را ذخیره کنید و ببندید. حال ، هنگامی که UFW فعال است ، به گونه ای تنظیم می شود که قوانین IPv4 و IPv6 را بنویسید. با این حال ، قبل از فعال کردن UFW ، می خواهیم اطمینان حاصل کنیم که فایروال شما پیکربندی شده است تا به شما امکان اتصال از طریق SSH را بدهد. بیایید با تنظیم رویکرد پیش فرض شروع کنیم. مرحله 2 – تنظیم رویکرد های پیش فرض اگر به تازگی کار با فایروال را شروع کرده اید ، اولین قوانینی که باید تعریف کنید رویکرد پیش فرض شما هستند. این قوانین نحوه کنترل ترافیک را که صریحاً با سایر قوانین مطابقت ندارد ، کنترل می کنند. به طور پیش فرض ، UFW قرار است تمام اتصالات ورودی را رد کند و به همه اتصالات خروجی اجازه دهد. این بدان معناست که هرکسی که سعی در دستیابی به سرور مجازی شما داشته باشد قادر به اتصال نخواهد بود ، در حالی که هر برنامه ای در سرور مجازی قادر به دستیابی به دنیای خارج خواهد بود. بیایید قوانین UFW را به صورت پیش فرض تنظیم کنیم ، بنابراین می توانیم اطمینان حاصل کنیم که شما قادر خواهید بود این آموزش را دنبال کنید. برای تنظیم پیش فرض های استفاده شده توسط UFW ، از این دستورات استفاده کنید: $ sudo ufw default deny incoming $ sudo ufw default allow outgoing این دستورات پیش فرض ها را برای رد ورودی و اجازه دسترسی به اتصالات تنظیم می کنند. این پیش فرض های فایروال به تنهایی ممکن است برای یک رایانه شخصی کافی باشد ، اما به طور معمول سرور مجازی ها باید به درخواست های دریافتی از کاربران خارجی پاسخ دهند. در ادامه به آن خواهیم پرداخت. مرحله 3 – اجازه اتصال به SSH اگر اکنون فایروال UFW خود را فعال کنیم ، تمام اتصالات ورودی را رد می کند. این بدان معناست که باید قوانینی را ایجاد کنیم که صریحاً اجازه ورود به اتصالات ورودی قانونی را بدهد – برای مثال اتصالات SSH یا HTTP- اگر میخواهیم سرور مجازی ما به آن نوع درخواستها پاسخ دهد. اگر از سرور مجازی ابری استفاده می کنید ، احتمالاً باید به اتصالات SSH ورودی اجازه دهید تا بتوانید به سرور مجازی خود متصل شوید و مدیریت کنید. برای پیکربندی سرور مجازی خود جهت اجازه دادن به اتصالات SSH ، می توانید از این دستور استفاده کنید: $ sudo ufw allow ssh با این کار قوانین فایروال ایجاد می شود که به کلیه اتصالات در پورت 22 اجازه می دهد ، یعنی پورتی که Daemon SSH بطور پیش فرض در آن گوش می دهد. UFW می داند که پورت allow ssh به چه معنی است زیرا به عنوان یک سرویس در فایل / etc / service لیست شده است. با این وجود ، ما در واقع می توانیم با مشخص کردن پورت به جای نام سرویس ، قانون معادل آن را بنویسیم. به عنوان مثال ، این دستور مانند دستور فوق کار می کند: $ sudo ufw allow 22 اگر Daemon SSH خود را برای استفاده از پورت دیگری پیکربندی کرده اید ، باید پورت مناسب را مشخص کنید. به عنوان مثال ، اگر سرور مجازی SSH شما پورت 2222 را گوش می دهد ، می توانید از این دستور برای اتصال در آن پورت استفاده کنید: $ sudo ufw allow 2222 اکنون که فایروال شما پیکربندی شده است تا امکان اتصال SSH ورودی را فراهم کند ، می توانیم آن را فعال کنیم. مرحله 4 – فعال کردن UFW برای فعال کردن UFW ، از این دستور استفاده کنید: $ sudo ufw enable هشداری دریافت خواهید کرد که می گوید ممکن است این فرمان اتصالات SSH موجود را مختل کند. ما قبلاً یک قانون فایروال تنظیم کرده ایم که اتصالات SSH را امکان پذیر می سازد ، بنابراین میتوان ادامه داد. در پاسخ به اعلان y را وارد کنید و ENTER را بزنید. فایروال اکنون فعال است. برای مشاهده قوانینی که تنظیم شده است ، دستور verbose status sudo ufw را اجرا کنید. بقیه این آموزش نحوه استفاده از UFW را با جزئیات بیشتر ، مانند قبول یا رد انواع مختلف اتصالات را ارائه می دهد. مرحله 5 – اجازه برقراری سایر اتصالات در این مرحله ، شما باید به سایر اتصالات مورد نیاز سرور مجازی خود برای پاسخگویی اجازه دهید. اتصالاتی که شما باید به آنها اجازه دهید بستگی به نیازهای خاص شما دارد. خوشبختانه ، شما می دانید چگونه می توانید قوانینی را بنویسید که به اتصالات مبتنی بر نام سرویس یا پورت اجازه می دهد. ما قبلاً این کار را برای SSH در پورت 22 انجام دادیم. HTTP در پورت 80 ، همان چیزی که سرور مجازی های وب رمز گذاری نشده از آن استفاده می کنند ، از sudo ufw allow http  یا sudo ufw allow 80 استفاده مینماید. HTTPS در پورت 443 ، همان چیزی که سرور مجازی های رمزگذاری شده از آن استفاده می کنند ، از sudo ufw allow https  یا sudo ufw allow 443 استفاده مینماید. به غیر از مشخص کردن پورت یا سرویس شناخته شده ، راه های دیگری برای اجازه سایر اتصالات وجود دارد. محدوده های خاص پورت شما می توانید محدوده پورت را با UFW مشخص کنید. برخی از برنا��ه ها به جای یک پورت واحد از پورت های مختلف استفاده می کنند. به عنوان مثال ، برای اجازه دادن به اتصالات X11، که از پورت های 6000-6007 استفاده می کنند ، از این دستورات استفاده کنید: $ sudo ufw allow 6000:6007/tcp $ sudo ufw allow 6000:6007/udp هنگام مشخص کردن محدوده پورت با UFW ، باید پروتکل (tcp یا udp) را مشخص کنید که قوانین باید روی آن اعمال شود. ما قبلاً به این موضوع اشاره نکرده ایم زیرا مشخص نکردن پروتکل، به طور خودکار به هر دو پروتکل اجازه می دهد ، که در اکثر موارد مطلوب است. آدرس های IP خاص هنگام کار با UFW ، می توانید آدرس IP را نیز مشخص کنید. به عنوان مثال ، اگر می خواهید از یک آدرس IP خاص مانند آدرس IP محل کار یا خانه 203.0.113.4 به اتصالات اجازه دهید ، باید from و سپس آدرس IP را مشخص کنید: $ sudo ufw allow from 203.0.113.4 همچنین می توانید با افزودن to any port به اضافه شماره پورت ، پورت خاصی را تعیین کنید که آدرس IP مجاز به اتصال به آن باشد. به عنوان مثال ، اگر می خواهید 203.0.113.4 به پورت 22 (SSH) وصل شود ، از این دستور استفاده کنید: $ sudo ufw allow from 203.0.113.4 to any port 22 زیرشبکه ها اگر می خواهید به یک زیر شبکه از آدرس های IP اجازه دهید ، می توانید با استفاده از نماد CIDR این کار را برای مشخص کردن یک netmask انجام دهید. به عنوان مثال ، اگر می خواهید تمام آدرسهای IP از 203.0.113.1 تا 203.0.113.254 را مجاز کنید ، می توانید از این دستور استفاده کنید: $ sudo ufw allow from 203.0.113.0/24 به همین ترتیب ، همچنین می توانید پورت مقصد را تعیین کنید که زیر شبکه 203.0.113.0/24 به آن وصل شود. باز هم ، ما از پورت 22 (SSH) به عنوان نمونه استفاده خواهیم کرد: $ sudo ufw allow from 203.0.113.0/24 to any port 22 اتصالات به یک رابط شبکه خاص اگر می خواهید یک قانون فایروال ایجاد کنید که فقط مربوط به یک رابط شبکه خاص باشد ، می توانید با مشخص کردن ” allow in on ” و به دنبال آن نام رابط شبکه ، این کار را انجام دهید. ممکن است بخواهید قبل از ادامه ، رابط های شبکه خود را جستجو کنید. برای انجام این کار ، از این دستور استفاده کنید: $ ip addr Output Excerpt 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state . . . 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default . . . خروجی هایلایت شده نشانگر نام های رابط شبکه است. معمولاً چیزی مانند eth0 یا enp3s2 نامگذاری میشوند. بنابراین ، اگر سرور مجازی شما یک رابط شبکه عمومی به نام eth0 دارد ، می توانید با این دستور ترافیک HTTP (پورت 80) را به آن مجاز کنید: $ sudo ufw allow in on eth0 to any port 80 این کار به سرور مجازی شما امکان می دهد درخواستهای HTTP را از طریق اینترنت عمومی دریافت کند. یا اگر می خواهید به عنوان مثال سرور مجازی پایگاه داده MySQL (پورت 3306) شما را به اتصالات رابط شبکه خصوصی eth1 گوش دهد ، می توانید از این دستور استفاده کنید: $ sudo ufw allow in on eth1 to any port 3306 این دستور به سرور مجازی های دیگر در شبکه خصوصی شما اجازه می دهد تا به پایگاه داده MySQL متصل شوند. مرحله 6 – رد اتصالات اگر رویکرد پیش فرض اتصالات ورودی را تغییر نداده اید ، UFW به گونه ای پیکربندی میشود تا تمام اتصالات ورودی را رد کند. به طور کلی ، این کار با ملزم کردن شما به ایجاد قوانینی که صریحاً اجازه ورود به پورت های خاص و آدرس های IP را میدهند ، فرایند ایجاد یک فایروال ایمن را ساده تر می کند. با این وجود ، گاهی اوقات می خواهید اتصالات خاص را بر اساس آدرس IP منبع یا زیر شبکه رد کنید ، شاید به این دلیل که می دانید که سرور مجازی شما از آنجا مورد حمله قرار می گیرد. همچنین ، اگر می خواهید رویکرد ورودی پیش فرض خود را به allow تغییر دهید (که توصیه نمی شود) ، لازم است برای هرگونه خدمات یا آدرسهای IP که نمی خواهید مجوزهای اتصال را ایجاد کنید ، قوانین deny را ایجاد کنید. برای نوشتن قوانین deny (رد)، می توانید از دستوراتی که در بالا توضیح داده شده استفاده کنید ، و allow را با deny جایگزین کنید. به عنوان مثال ، برای رد اتصالات HTTP ، می توانید از این دستور استفاده کنید: $ sudo ufw deny http یا اگر می خواهید تمام اتصالات را از 203.0.113.4 رد کنید ، می توانید از این دستور استفاده کنید: $ sudo ufw deny from 203.0.113.4 حال اجازه دهید نگاهی به نحوه حذف قوانین بیندازیم. مرحله 7 – حذف قوانین دانستن چگونگی حذف قوانین فایروال به همان اندازه مهم است که بدانید چگونه می توانید آنها را ایجاد کنید. دو روش مختلف برای تعیین اینکه کدام قوانین باید حذف شوند وجود دارد: با شماره قانون یا با قانون واقعی (شبیه به نحوه تعیین قوانین هنگام ایجاد ان ها). ما با روش حذف با شماره قانون شروع خواهیم کرد زیرا ساده تر است. به واسطه شماره قانون اگر از شماره قانون برای حذف قوانین فایروال استفاده می کنید ، اولین کاری که باید انجام دهید این است که لیستی از قوانین فایروال خود را تهیه کنید. فرمان وضعیت UFW گزینه ای برای نمایش شماره ها در کنار هر قانون دارد ، همانطور که در اینجا نشان داده شده است: $ sudo ufw status numbered Numbered Output: Status: active To Action From — —— —- [ 1] 22 ALLOW IN 15.15.15.0/24 [ 2] 80 ALLOW IN Anywhere اگر تصمیم بگیریم که می خواهیم قانون 2 را حذف کنیم ، یکی از مواردی که امکان اتصال به پورت 80 (HTTP) را فراهم می کند ، می توانیم آن را در یک فرمان حذف UFW مانند این مشخص کنیم: $ sudo ufw delete 2 یک تأیید اعلان را نشان میدهد و سپس قانون 2 را، که به اتصالات HTTP اجازه می دهد، حذف میکند. توجه داشته باشید که اگر IPv6 را فعال کرده اید ، باید قانون IPv6 مربوطه را نیز حذف کنید. به واسطه قانون واقعی گزینه جایگزین برای شماره ها ، تعیین قانون واقعی برای حذف است. به عنوان مثال ، اگر می خواهید قانون http را حذف کنید ، می توانید آن را به صورت زیر بنویسید: $ sudo ufw delete allow http همچنین می توانید به جای نام سرویس ، قانون را با allow 80 مشخص کنید: $ sudo ufw delete allow 80 این روش، در صورت وجود، هر دو قانون IPv4 و IPv6 را حذف می کند. مرحله 8 – بررسی وضعیت و قوانین UFW در هر زمان ، می توانید وضعیت UFW را با این دستور بررسی کنید: $ sudo ufw status verbose اگر UFW غیرفعال باشد ، که به طور پیش فرض چنین است ، خروجی زیر را مشاهده خواهید کرد: Output Status: inactive اگر UFW فعال باشد ، که اگر مرحله 3 را دنبال کرده باشید ، فعال خواهد بود، خروجی می گوید که فعال است و قوانینی را که تنظیم شده لیست می کند. به عنوان مثال ، اگر فایروال تنظیم شود تا اتصالات SSH (پورت 22) را از هر مکانی امکان پذیر کند ، ممکن است خروجی چیزی شبیه به این باشد: Output Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From — —— —- 22/tcp ALLOW IN Anywhere اگر می خواهید بررسی کنید چگونه UFW فایروال را تنظیم کرده است ، از دستور وضعیت استفاده کنید. مرحله 9 – غیرفعال کردن یا تنظیم مجدد UFW (اختیاری) اگر تصمیم دارید که از UFW استفاده نکنید ، می توانید با این دستور آن را غیرفعال کنید: $ sudo ufw disable هر قانونی که با UFW ایجاد کرده باشید دیگر فعال نخواهد بود. اگر لازم باشد بعداً آن را فعال کنید ، همواره می توانید sudo ufw را اجرا کنید. اگر قبلاً قوانین UFW را پیکربندی کرده اید اما تصمیم دارید که دوباره شروع کنید ، می توانید از دستور تنظیم مجدد استفاده کنید: $ sudo ufw reset با این کار UFW غیرفعال می شود و قوانینی را که قبلاً تعریف شده بودند حذف می شوند. به خاطر داشته باشید که اگر هر موقع آنها را تغییر دهید ، رویکرد پیش فرض به تنظیمات اصلی آنها تغییر نمی کند. این کار شروع تازه ای با UFW به شما ارائه میدهد. نتیجه فایروال شما اکنون پیکربندی شده است که (حداقل) اتصالات SSH را امکان پذیر کند. مطمئن شوید که هرگونه اتصالات ورودی دیگر که سرور مجازی شما نیاز دارد امکان پذیر هستند ، و در عین حال اتصالات غیر ضروری را محدود میکند ، بنابراین سرور مجازی شما عملکردی و ایمن خواهد بود. برای کسب اطلاعات بیشتر در مورد تنظیمات رایج UFW ، از راهنمای ضروریات UFW: قوانین و فرمان های معمول فایروال استفاده کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Iptables,IPv4,IPv6,nftables,SSH
0 notes
server70-blog · 4 years
Text
نظارت بر اطلاعیه و مسیر BGP با BGPalerter اوبونتو 18.04
BGP protocol Border Gateway یکی از پروتکل های اصلی مسئول مسیریابی بسته ها از طریق اینترنت است ، بنابراین هنگامی که اشتباه پیش برود ، ممکن است قطعی های قابل توجهی رخ دهد. به عنوان مثال ، در سال 2019 ، یک ISP کوچک یک پیکربندی غلط BGP ایجاد کرد که متأسفانه در بالادست منتشر شد و بخش های بزرگی از Cloudflare و AWS را بصورت آفلاین بیش از یک ساعت در اختیار گرفت. همچنین ، یک سال قبل ، یک BGP به منظور رهگیری ترافیک یک ارائه دهنده مشهور کیف پول ارز رمزی ربوده شد و وجوه مشتریان مورد سرقت قرار گرفت. BGPalerter ابزاری منبع باز برای نظارت بر شبکه BGP است که می تواند هشدارهایی را در مورد فعالیت BGP در زمان واقعی ارائه دهد ، از جمله قابلیت مشاهده مسیر و اعلام مسیر جدید و همچنین فعالیت های بالقوه نامناسب مانند ربودن مسیر یا وجود نشتی اطلاعات در مسیر. توجه: BGPalerter به طور خودکار اطلاعات مسیریابی شبکه را در دسترس عموم قرار می دهد ، به این معنی که دیگر نیازی به سطح دسترسی ممتاز یا ادغام شبکه (هایی) که مایل به نظارت آن هستید نمیباشد. کلیه نظارت ها کاملاً مطابق با قانون سوءاستفاده رایانه ای ، قانون کلاهبرداری کامپیوتری و سایر قوانین مشابه است. با این حال ، توصیه می شود هرگونه یافته مرتبط با اپراتور شبکه آسیب دیده را افشا کنید. در این آموزش ،BGPalerter را نصب و پیکربندی می کنید تا شبکه های مهم خود را برای فعالیت های مشکوک پایش کنید. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: سرور مجازی Ubuntu 18.04 که طبق راهنمای ستاپ اولیه سرور مجازی با اوبونتو 18.04 راه اندازی، و شامل یک کاربر غیر ریشه sudo باشد. یک یا چند شبکه یا دستگاهی که مایل به نظارت بر آن هستید، به عنوان مثال: o سرور مجازی که نگهداری می کنید o شبکه شرکت تان o ISP محلی تان برای هر دستگاه یا شبکه باید آدرس IP شخصی ، محدوده آدرس IP یا شماره سیستم خودمختاری را که بخشی از آن است شناسایی کنید. این قسمت در مرحله 1 پوشانده شده است. پس از آماده شدن ، به عنوان کاربر غیر ریشه خود وارد سرور مجازی شوید. مرحله 1 – شناسایی شبکه ها برای نظارت در این مرحله جزئیات مربوط به شبکه هایی که می خواهید نظارت کنید را مشخص می کنید. BGPalerter می تواند بر اساس آدرسهای IP یا پیشوندهای شبکه نظارت کند. همچنین می تواند براساس شماره سیستم خودمختار (AS) ، که یک شناساگر جهانی منحصر به فرد برای شبکه متعلق به یک نهاد اداری خاص است ، کل شبکه ها را رصد کند. برای یافتن این اطلاعات ، می توانید از سرویس جستجوی IP-to-ASN WHOIS ارائه شده توسط سرویس هوشمند تهدید Team Cymru استفاده کنید. درواقع یک سرور WHOIS سفارشی است که به دنبال جستجوی آدرس IP و اطلاعات مسیریابی شبکه است. اگر قبلاً whois  را نصب نکرده اید ، می توانید آن را با استفاده از دستورات زیر نصب کنید: $ sudo apt update $ sudo apt install whois پس از تأیید اینکه Whois نصب شده است ، با انجام جستجوی آدرس IP سرور مجازی خود ، با استفاده از آرگومان -h برای تعیین سرور مجازی اختصاصی ، شروع به کار کنید: $ whois -h whois.cymru.com your-ip-address با این کار نتیجه ای مشابه زیر حاصل می شود ، که نام و شماره AS را نشان می دهد که سرور مجازی شما بخشی از آن است. این معمولاً به عنوان ارائه دهنده میزبان سرور مجازی شما خواهد بود. Output AS | IP | AS Name 14061 | your-ip-address | vpsgol-ASN, US در مرحله بعد ، می توانید برای شناسایی پیشوند / گستره شبکه ای که سرور مجازی شما بخشی از آن است ، یک جستجو انجام دهید. این کار را با اضافه کردن آرگومان -p به درخواست خود انجام می دهید: $ whois -h whois.cymru.com ” -p your-ip-address” خروجی بسیار شبیه به دستور قبلی خواهد بود ، اما پیشوند آدرس IP را که آدرس IP سرور مجازی شما به آن تعلق دارد نشان می دهد: utput AS | IP | BGP Prefix | AS Name 14061 | your-ip-address | 157.230.80.0/20 | vpsgol-ASN, US در آخر ، می توانید جزئیات بیشتری از AS را که سرور مجازی شما بخشی از آن است ، جستجو کنید ، از جمله منطقه جغرافیایی و تاریخ تخصیص. در شماره AS که با استفاده از دستورات قبلی مشخص کرده اید جایگزین کنید. شما از آرگومان -v برای فعال کردن خروجی طویل استفاده می کنید ، که تضمین می کند تمام جزئیات مربوطه نشان داده شده اند: $ whois -h whois.cymru.com ” -v as14061″ خروجی اطلاعات بیشتری در مورد AS نشان می دهد: Output AS | CC | Registry | Allocated | AS Name 14061 | US | arin | 2012-09-25 | vpsgol-ASN, US شما جزئیات اصلی در مورد شبکه (های) را که می خواهید نظارت کنید شناسایی کرده اید. یادداشتی از این جزئیات را در جایی نگه دارید ، زیرا بعداً به آنها احتیاج دارید. در مرحله بعد ، تنظیم BGPalerter را شروع می کنید. مرحله 2 – ایجاد یک کاربر بدون امتیازت برای BGPalerter در این مرحله ، یک حساب کاربری جدید بدون امتیازات برای BGPalerter ایجاد خواهید کرد ، زیرا این برنامه نیازی به اجرای امتیازات sudo / root ندارد. در مرحله اول ، یک کاربر جدید با رمز عبور غیرفعال ایجاد کنید: $ sudo adduser –disabled-password bgpalerter نیازی به تنظیم گذرواژه یا کلیدهای SSH نیست ، زیرا از این کاربر فقط به عنوان یک حساب کاربری برای اجرا / نگهداری BGPalerter استفاده خواهید کرد. با استفاده از su به کاربر جدید سوییچ کنید: $ sudo su bgpalerter اکنون به عنوان کاربر جدید وارد سیستم می شوید: bgpalerter@droplet:/home/user$ برای رفتن به دیرکتوری اصلی کاربر جدید خود از دستور cd استفاده کنید: bgpalerter@droplet:/home/user$ cd bgpalerter@droplet:~$ یک کاربر جدید بدون امتیازت برای BGPalerter ایجاد کرده اید. در مرحله بعد ، BGPalerter را روی سیستم خود نصب و پیکربندی خواهید کرد. مرحله 3 – نصب و پیکربندی BGPalerter در این مرحله BGPalerter را نصب و پیکربندی می کنید. اطمینان حاصل کنید که هنوز به عنوان کاربر جدید بدون امتیازات خود وارد سیستم شده اید. در مرحله اول ، برای اطمینان از دانلود جدیدترین نسخه ، باید آخرین نسخه BGPalerter را شناسایی کنید. به صفحه BGPalerter Releases بروید و یک کپی از لینک دانلود برای جدیدترین نسخه Linux x64 بگیرید. اکنون می توانید یک کپی از BGPalerter را با استفاده از wget دانلود کنید ، مطمئن شوید که در لینک دانلود صحیح جایگزین می کنید: $ wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64 پس از اتمام دانلود فایل ، آن را به عنوان قابل اجرا علامت گذاری کنید: $ chmod +x bgpalerter-linux-x64 در مرحله بعد ، با بررسی شماره نسخه ، بررسی کنید که BGPalerter دانلود و نصب شده است: $ ./bgpalerter-linux-x64 –version شماره نسخه فعلی را به خروجی می فرستد: Output 1.24.0 قبل از اجرای صحیح BGPalerter ، باید شبکه هایی را که می خواهید نظارت کنید را در یک فایل پیکربندی مشخص کنید. فایل prefixes.yml را در ویرایشگر متن مورد علاقه خود ایجاد و باز کنید: $ nano ~/prefixes.yml در این فایل پیکربندی ، هر یک از آدرس های IP اختصاصی ، محدوده آدرس IP و شماره AS را که می خواهید نظارت کنید تعیین می کنید. مثال زیر را اضافه کنید و مقادیر پیکربندی را مطابق نیاز با استفاده از اطلاعات شبکه ای که در مرحله 1 مشخص کرده اید تنظیم کنید: ~/prefixes.yml your-ip-address/32: description: My Server asn: – 14061 ignoreMorespecifics: false 157.230.80.0/20: description: IP range for my Server asn: – 14061 ignoreMorespecifics: false options: monitorASns: ‘14061’: group: default شما می توانید بسیاری از محدوده های آدرس IP یا شماره AS را به صورت مورد نظر خود نظارت کنید. برای نظارت بر آدرسهای IP اختصاصی ، آنها را با استفاده از / 32 برای IPv4 و / 128 برای IPv6 نمایش دهید. مقدار injoreMorespecifics برای این استفاده میشود که کنترل کند آیا BGPalerter باید فعالیت را برای مسیرهایی که خاص تر (کوچکتر) از مسیری که مشاهده می کنید ، هستند نادیده بگیرد یا خیر. به عنوان مثال ، اگر شما یک / 20 را رصد می کنید و یک تغییر مسیر برای یک / 24 در داخل آن تشخیص داده می شود ، به نظر می رسد خاص تر باشد. در بیشتر موارد ، نباید این موارد را نادیده بگیرید ، اما اگر در حال نظارت بر شبکه بزرگی با پیشوندهای مشتری نماینده متعدد هستید ، این کار ممکن است به کاهش نویز پس زمینه کمک کند. اکنون می توانید برای اولین بار BGPalerter را برای شروع نظارت بر شبکه های خود اجرا کنید: $ ./bgpalerter-linux-x64 اگر BGPalerter با موفقیت شروع شود ، خروجی مشابه زیر را مشاهده خواهید کرد. توجه داشته باشید که بعضی اوقات ممکن است چند دقیقه طول بکشد تا مانیتورینگ شروع شود: Output Impossible to load config.yml. A default configuration file has been generated. BGPalerter, version: 1.24.0 environment: production Loaded config: /home/bgpalerter/config.yml Monitoring 157.230.80.0/20 Monitoring your-ip-address/32 Monitoring AS 14061 BGPalerter تا زمانی که با استفاده از Ctrl + C آن را متوقف کنید ، ادامه خواهد یافت. در مرحله بعد برخی از هشدارهایی را که BGPalerter می تواند ایجاد کند ، تفسیر می کنید. مرحله 4 – تفسیر هشدارهای BGPalerter در این مرحله ، چند نمونه از هشدارهای BGPalerter را مرور می کنید. BGPalerter هشدارهایی را به عنوان منبع اصلی خروجی و همچنین به صورت اختیاری برای هر نقطه انتهایی گزارش اضافی ارسال می کند که می تواند در config.yml پیکربندی شود ، همانطور که در مستندات BGPalerter شرح داده شده است. به طور پیش فرض ، BGPalerter در مورد موارد زیر هشدار می دهد: ربوده شدن مسیر: هنگامی اتفاق می افتد كه AS پیشوندی را كه مجاز به آن نیست اعلام كند و باعث می شود ترافیك به اشتباه هدایت شود. این مسئله می تواند یک حمله عمدی باشد یا یک خطای پیکربندی تصادفی. از دست رفتن دید در مسیر: وقتی اکثر روترهای BGP در اینترنت قادر به مسیریابی با اطمینان هستند ، یک مسیر قابل مشاهده است. از دست دادن دید به عدم امکان دسترسی شبکه شما مربوط می شود ، به عنوان مثال اگر همتای BGP شما متوقف شده باشد. اطلاعیه های زیر پیشوند جدید: زمانی اتفاق میافتد که AS شروع به اعلام پیشوند می کند که از آنچه پیش بینی می شود کوچکتر باشد. این می تواند حاکی از تغییر پیکربندی عمدی ، پیکربندی غلط تصادفی یا در برخی موارد نشانگر حمله باشد. فعالیت در AS: معمولاً به اطلاعیه های جدید مسیر اشاره می کند. اگر BGPalerter هنوز از آن آگاهی نداشته باشد ، به صورت “new” در نظر گرفته می شود. در زیر برخی از هشدارهای مثال ، همراه با توضیحی کوتاه از معنای آنها آمده است: Alert #1 The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540 این هشدار شواهدی از ربودن مسیر را نشان می دهد ، جایی که جایی که AS64496 ، 203.0.113.0/24 را اعلام کرده است ولی پیش بینی می شود این مسیر توسط AS65540اعلام شود. این یک نشانگر قوی از تنظیم نادرست منجر به نشت مسیر یا ربوده شدن عمدی توسط یک مهاجم میباشد. Alert #2 The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers این هشدار نشان می دهد که شبکه 203.0.113.0/24 دیگر قابل مشاهده نیست. که ممکن است به دلیل یک مشکل مسیریابی در بالادست باشد یا یک روتر دچار نقص برق شده باشد. Alert #3 A new prefix 203.0.113.0/25 is announced by AS64496. It should be instead 203.0.113.0/24 annou این هشدار نشان می دهد که پیشوند خاص تری در جایی که پیش بینی نشده است اعلام شده است ، برای مثال با اعلام یک / 25 هنگامی که فقط یک / 24 انتظار می رود. به احتمال زیاد یک پیکربندی نادرست است ، اما در برخی موارد می تواند شواهدی از ربودن مسیر باشد. Alert #4 AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of در نهایت ، این هشدار نشان می دهد كه AS64496 پیشوندی را اعلام كرده است كه BGPalerter هنوز از آن چیزی نمی داند. این امر می تواند به این دلیل باشد که شما به طور قانونی پیشوند جدید را اعلام می کنید ، یا می تواند نشان دهنده پیکربندی غلط باشد و منجر به این شود که به طور اتفاقی پیشوند متعلق به شخص دیگری را اعلام کنید. در این مرحله ، شما چندین نمونه از هشدارهای BGPalerter را مرور کردید. در مرحله بعد ، BGPalerter را پیکربندی می کنید تا به طور خودکار در بوت اجرا شود. مرحله 5 – شروع BGPalerter در Boot در این مرحله آخر ، BGPalerter را پیکربندی می کنید تا در بوت اجرا شود. اطمینان حاصل کنید که هنوز به عنوان کاربر جدید بدون امتیازت در سیستم هستید و سپس ویرایشگر crontab را باز کنید: $ crontab -e در مرحله بعد ، ورودی زیر را در انتهای فایل crontab اضافه کنید: crontab @reboot sleep 10; screen -dmS bgpalerter “./bgpalerter-linux-x64” هر بار که سیستم شما بوت می شود ، یک بخش screen جداشده با نام “bgpalerter” ایجاد می کند و BGPalerter را در داخل آن شروع می کنید. ویرایشگر crontab را ذخیره کرده و از آن خارج شوید. اکنون می توانید سیستم خود را ریبوت کنید تا مطمئن شوید که BGPalerter به درستی از بوت شروع می شود. ابتدا باید از کاربر BGPalerter خود خارج شوید: $ logout سپس با ریبوت عادی سیستم ادامه دهید: $ sudo reboot پس از ریبوت سیستم ، دوباره به سرور مجازی خود وارد شوید و برای دسترسی دوباره به کاربر BGPalerter خود ، از su استفاده کنید: $ sudo su bgpalerter سپس می توانید در هر زمان به بخش وصل شوید تا خروجی BGPalerter را مشاهده کنید: $ screen -r bgpalerter در این مرحله آخر ، شما BGPalerter را پیکربندی کرده اید تا در بوت اجرا شود. نتیجه در این مقاله BGPalerter را تنظیم کرده اید و از آن برای نظارت بر شبکه برای تغییرات مسیریابی BGP استفاده می کنید. اگر می خواهید BGPalerter کاربر پسندتر شود ، می توانید آن را برای ارسال هشدار به کانال Slack از طریق یک webhook پیکربندی کنید: Configure Slack Reporting for BGPalerter اگر می خواهید در مورد خود BGP اطلاعات بیشتری کسب کنید ، اما به یک محیط تولید BGP دسترسی ندارید ، میتوانید از DN42 برای آزمایش BGP در یک محیط امن و منزوی بهره ببرید: Decentralized Network 42 خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:BGP,BGPalerter,Cloudflare,sudo
0 notes
server70-blog · 4 years
Text
نصب و ایمن سازی phpMyAdmin در اوبونتو 20.04
در حالی که بسیاری از کاربران به عملکرد سیستم مدیریت دیتابیس مانند MySQL احتیاج دارند ، ممکن است از تعامل با سیستم فقط از طریق MySQL احساس راحتی نداشته باشند. phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب با MySQL در تعامل باشند. در این راهنما ، ما در مورد نحوه نصب و ایمن سازی phpMyAdmin بحث خواهیم کرد تا بتوانید با اطمینان از آن استفاده کنید تا پایگاه های داده خود را بر روی سیستم Ubuntu 20.04 مدیریت کنید. پیش نیازها برای تکمیل این راهنما ، به موارد زیر نیاز دارید: • سرور مجازی Ubuntu 20.04. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات ادمین و فایروال تنظیم شده با ufw باشد. برای تنظیم این برنامه ، راهنمای تنظیم اولیه سرور مجازی برای اوبونتو 20.04 را دنبال کنید. • یک پشته LAMP (Linux ، Apache ، MySQL و PHP) که روی سرور مجازی Ubuntu 20.04 شما نصب شده باشد. اگر این کار هنوز انجام نشده است ، می توانید در مورد نصب پشته LAMP در اوبونتو 20.04 این راهنما را دنبال کنید. علاوه بر این ، هنگام استفاده از نرم افزارهایی مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، زیرا: • به طور مستقیم با نصب MySQL شما ارتباط برقرار میکند • احراز هویت را با استفاده از اعتبارات MySQL انجام می دهد • نتایج را برای پرس و جوهای SQL دلخواه اجرا می کند و برمیگرداند به همین دلایل ، و از آنجا که یک برنامه PHP با استقرار گسترده است که غالباً مورد حمله قرار می گیرد ، هرگز نباید phpMyAdmin را روی سیستم های از راه دور از طریق اتصال HTTP ساده اجرا کنید. اگر دامنه موجود را با گواهی SSL / TLS پیکربندی نکرده اید ، می توانید این راهنما را در زمینه ایمن سازی Apache با Let’s encrypt در Ubuntu 20.04 دنبال کنید. با این کار شما نیاز به ثبت دامنه ، ایجاد رکوردهای DNS برای سرور مجازی خود و تنظیم یک هاست مجازی Apache دارید. مرحله 1 – نصب phpMyAdmin می توانید از APT برای نصب phpMyAdmin از مخازن پیش فرض اوبونتو استفاده کنید. به عنوان کاربر sudo غیر ریشه شما ، ایندکس بسته سرور مجازی خود را به روز کنید: ⦁ $ sudo apt update ⦁ پس از آن می توانید بسته phpmyadmin را نصب کنید. در کنار این بسته ، مستندات رسمی همچنین به شما توصیه می کنند که چند پسوند PHP را روی سرور مجازی خود نصب کنید تا قابلیت های خاص و عملکرد آن را بهبود بخشید. اگر آموزش پیش نیاز LAMP stack را دنبال کرده باشید ، چندین مورد از این ماژول ها به همراه بسته php نصب شده اند. با این حال ، توصیه می شود که این بسته ها را نیز نصب کنید: ⦁ php-mbstring: ماژولی برای مدیریت رشته های غیر ASCII و تبدیل رشته ها به رمزگذاری های مختلف ⦁ php-zip: این افزونه از آپلود فایلهای zip در phpMyAdmin پشتیبانی می کند ⦁ php-gd: پشتیبانی از کتابخانه GD Graphics را فعال می کند ⦁ php-json: پشتیبانی از PHP را برای سریال سازی JSON فراهم می کند ⦁ php-curl: به PHP اجازه می دهد تا با انواع مختلفی از سرور مجازی ها با استفاده از پروتکل های مختلف ارتباط برقرار کند برای نصب این بسته ها روی سیستم خود دستور زیر را اجرا کنید. لطفاً توجه داشته باشید که مراحل نصب نیاز دارد انتخاب هایی را برای پیکربندی صحیح phpMyAdmin انجام دهید. مختصر این انتخاب ها را بررسی میکنیم: ⦁ $ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl ⦁ در اینجا گزینه هایی که باید هنگام درخواست از شما برای پیکربندی صحیح نصب خود انتخاب کنید، آمد اند: • برای انتخاب سرور مجازی ، apache2 را انتخاب کنید هشدار: هنگامی که اعلان ظاهر می شود ، “apache2” هایلایت می شود ، اما انتخاب نشده است. اگر برای انتخاب Apache ، SPACE نزنید ، نصب کننده هنگام نصب ، فایلهای لازم را جابجا نمی کند. برای انتخاب Apache ، کلید SPACE ، TAB و سپس ENTER را بزنید. • وقتی از شما سؤال شد که آیا از dbconfig-Common برای راه‌اندازی پایگاه داده استفاده کنید ، yes را انتخاب کنید • سپس از شما خواسته می شود رمزعبور برنامه MySQL را برای phpMyAdmin انتخاب و تأیید کنید توجه: به فرض اینکه MySQL را با پیروی از مرحله 2 آموزش پیش نیاز پشته LAMP نصب کرده اید ، ممکن است تصمیم گرفته باشید که افزونه Validate Password را فعال کنید. همانند این مقاله ، هنگام تلاش برای تنظیم گذرواژه برای کاربر phpmyadmin ، فعال کردن این مؤلفه خطایی را ایجاد می کند: برای برطرف کردن این گزینه گزینه abort را انتخاب کنید تا مراحل نصب متوقف شود. سپس اعلان MySQL را باز کنید: ⦁ $ sudo mysql ⦁ یا اگر احراز هویت رمز عبور را برای کاربر ریشه MySQL فعال کرده اید ، این دستور را اجرا کرده و در صورت درخواست ، رمزعبور خود را وارد کنید: ⦁ $ mysql -u root -p ⦁ از اعلان ، دستور زیر را برای غیرفعال کردن مؤلفه Validate Password اجرا کنید. توجه داشته باشید که این کار در واقع آن را حذف نمی کند ، بلکه فقط لود مؤلفه در سرور مجازی MySQL را متوقف میکند: ⦁ Mysql> UNINSTALL COMPONENT “file://component_validate_password”; ⦁ پس از آن ، می توانید کلاینت MySQL را ببندید: ⦁ Mysql> exit ⦁ سپس مجدداً بسته phpmyadmin را نصب کنید و مطابق آنچه انتظار می رود کار خواهد کرد: ⦁ $ sudo apt install phpmyadmin ⦁ پس از نصب phpMyAdmin ، می توانید یک بار دیگر MySQL را با sudo mysql یا mysql -u root -p باز کنید و سپس دستور زیر را اجرا کنید تا مجدداً Validate Password را فعال کنید: ⦁ Mysql> INSTALL COMPONENT “file://component_validate_password”; ⦁ فرآیند نصب فایل پیکربندی phpMyAdmin Apache را به دیرکتوری / etc / apache2 / conf-enabled / اضافه می کند ، جایی که به طور خودکار خوانده می شود. برای به پایان رساندن پیکربندی Apache و PHP برای کار با phpMyAdmin ، تنها کار باقیمانده در این بخش از آموزش این است که بطور صریح افزونه mbstring PHP را فعال کنید ، که می توانید با تایپ کردن این دستور این کار را انجام دهید: ⦁ $ sudo phpenmod mbstring ⦁ پس از آن ، Apache را مجدداً راه اندازی کنید تا تغییرات شما به رسمیت شناخته شود: ⦁ $ sudo systemctl restart apache2 ⦁ اکنون phpMyAdmin برای کار با Apache نصب و تنظیم شده است. با این حال قبل از اینکه بتوانید وارد شوید و تعامل خود را با پایگاه داده های MySQL شروع کنید ، باید اطمینان حاصل کنید که کاربران MySQL از امتیازات لازم برای تعامل با برنامه برخوردار هستند. مرحله 2 – تنظیم تأیید اعتبار و امتیازات کاربر وقتی phpMyAdmin را بر روی سرور مجازی خود نصب کردید ، به طور خودکار کاربر پایگاه داده ای به نام phpmyadmin ایجاد کرد که فرآیندهای پایه خاصی را برای این برنامه انجام می دهد. به جای اینکه به عنوان این کاربر با گذرواژه اداری که در حین نصب تنظیم کرده اید وارد شوید ، توصیه می شود که به عنوان کاربر ریشه MySQL یا به عنوان کاربر اختصاصی برای مدیریت پایگاه داده از طریق رابط phpMyAdmin وارد شوید. پیکربندی دسترسی رمز ورود برای حساب ریشه MySQL در سیستم های اوبونتو که MySQL 5.7 (و نسخه های بعدی) را اجرا می کنند ، تأیید اعتبار کاربر ریشه MySQL بصورت پیش فرض با استفاده از افزونه auth_socket و نه با گذرواژه تنظیم شده است. این امر امکان امنیت و قابلیت استفاده بیشتر را در بسیاری از موارد فراهم می کند ، اما همچنین می تواند مواردی را پیچیده تر کند که شما نیاز به دسترسی به یک برنامه خارجی – مانند phpMyAdmin – برای دسترسی به کاربر دارید. برای ورود به سیستم phpMyAdmin به عنوان کاربر ریشه MySQL ، باید روش احراز هویت آن را از auth_socket به شخصی که از رمز عبور استفاده می کند ، تغییر دهید ، اگر قبلاً این کار را نکرده اید. برای این کار ، اعلان MySQL را از پایانه خود باز کنید: ⦁ $ sudo mysql ⦁ سپس ، با دستور زیر بررسی کنید که هر یک از حسابهای کاربری MySQL از کدام روش تأیید اعتبار استفاده میکنند: ⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; ⦁ Output +——————+——————————————-+———————–+———–+ | user | authentication_string | plugin | host | +——————+——————————————-+———————–+———–+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +——————+——————————————-+———————–+———–+ 5 rows in set (0.00 sec) در این مثال ، می بینید که کاربر اصلی با استفاده از افزونه auth_socket ، در واقع تأیید اعتبار می کند. برای پیکربندی حساب اصلی برای تأیید اعتبار با یک رمز عبور ، دستور ALTER USER زیر را اجرا کنید. حتما گذرواژه را به رمز عبور قوی تغییر دهید: ⦁ Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’; ⦁ توجه: جمله قبلی ALTER USER کاربر ریشه MySQL را برای تأیید اعتبار با افزونه caching_sha2_password تنظیم می کند. طبق اسناد رسمی MySQL ، caching_sha2_password افزونه تأیید هویت MySQL است ، زیرا رمزگذاری پسورد ایمن تری نسبت به نسخه قدیمی ارائه میدهد ، اما هنوز به طور گسترده استفاده می شود ، mysql_native_password. با این حال ، برخی از نسخه های PHP قابل اعتماد با caching_sha2_password کار نمی کنند. PHP گزارش داده است که این مشکل در PHP 7.4 رفع شده است ، اما اگر در هنگام تلاش برای ورود به سایت phpMyAdmin بعدا با خطایی روبرو شدید ، میتوانید به جای آن ،root را برای تأیید اعتبار خود تنظیم کنید. ⦁ Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; ⦁ سپس روش تأیید اعتبار استفاده شده توسط هریک از کاربران خود را دوباره بررسی کنید تا تأیید کنید که root دیگر با استفاده از افزونه auth_socket تایید اعتبار نمیکند: ⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; ⦁ Output +——————+——————————————-+———————–+———–+ | user | authentication_string | plugin | host | +——————+——————————————-+———————–+———–+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +——————+——————————————-+———————–+———–+ 5 rows in set (0.00 sec) می توانید از این خروجی مشاهده کنید که کاربر اصلی با استفاده از یک رمز عبور تأیید اعتبار می کند. اکنون می توانید به عنوان کاربر اصلی خود با گذرواژه ای که در اینجا برای آن تنظیم کرده اید وارد رابط phpMyAdmin شوید. پیکربندی دسترسی رمز ورود برای یک کاربر اختصاصی MySQL از طرف دیگر ، برخی ممکن است عقیده داشته باشند که اتصال به phpMyAdmin با یک کاربر اختصاصی ، بیشتر با گردش کار آن ها تناسب دارد. برای انجام این کار ، یکبار دیگر پوسته MySQL را باز کنید: ⦁ $ sudo mysql ⦁ اگر احراز هویت رمز عبور را برای کاربر اصلی خود فعال کرده اید ، همانطور که در قسمت قبل توضیح داده شد ، لازم است دستور زیر را اجرا کنید و در صورت درخواست ، رمز ورود خود را وارد کنید: ⦁ $ mysql -u root -p ⦁ از آنجا ، یک کاربر جدید ایجاد کرده و یک رمزعبور قوی به آن بدهید: ⦁ Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’; ⦁ توجه: باز هم بسته به نوع نسخه PHP که نصب کرده اید ، ممکن است بخواهید کاربر جدید خود را به جای caching_sha2_password ، با mysql_native_password تأیید هویت کنید: ⦁ Mysql> ALTER USER ‘sammy’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; ⦁ سپس به کاربر جدید خود امتیازات مناسب اعطا کنید. به عنوان مثال ، شما می توانید امتیازات کاربر را به تمام جداول موجود در دیتابیس و همچنین قدرت اضافه کردن ، تغییر و حذف امتیازهای کاربر با این دستور اعطا کنید: ⦁ Mysql> GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION; ⦁ پس از آن ، از پوسته MySQL خارج شوید: ⦁ Mysql> exit ⦁ اکنون می توانید با مراجعه به نام دامنه سرور مجازی یا آدرس IP عمومی و به دنبال آن / phpmyadmin به رابط وب دسترسی پیدا کنید: https://your_domain_or_IP/phpmyadmin به عنوان روت یا با نام کاربری و رمزعبور جدیدی که پیکربندی کرده اید ، وارد رابط شوید. وقتی وارد سیستم می شوید ، رابط کاربری را مشاهده خواهید کرد که چیزی شبیه به این خواهد بود: اکنون که می توانید به phpMyAdmin متصل شده و با آنها ارتباط برقرار کنید ، تمام کارهایی که انجام شده است ، تضمین امنیت سیستم شما برای محافظت از آن در برابر مهاجمان است. مرحله 3 – ایمن سازی نمونه phpMyAdmin phpMyAdmin به دلیل فراگیر بودن آن ، یک هدف محبوب برای مهاجمین است و برای جلوگیری از دسترسی غیرمجاز باید مراقبت بیشتری کنید. یکی از ساده ترین راه های انجام این کار ، قرار دادن یک دروازه در جلوی کل برنامه با استفاده از ویژگی های تأیید اعتبار داخلی .htaccessدر Apache است. برای انجام این کار ، ابتدا باید فایل .htaccessرا که با ویرایش فایل پیکربندی Apache نصب phpMyAdmin لغو شده را فعال کنید. از ویرایشگر متن دلخواه خود برای ویرایش فایل phpmyadmin.conf که در دیرکتوری تنظیمات Apache شما قرار گرفته است ، استفاده کنید. در اینجا ، ما از nano استفاده خواهیم کرد: ⦁ $ sudo nano /etc/apache2/conf-available/phpmyadmin.conf ⦁ یک دستورالعمل AllowOverride All را در بخش <Directory / usr / share / phpmyadmin> فایل پیکربندی ، مانند این اضافه کنید: /etc/apache2/conf-available/phpmyadmin.conf <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All . . . وقتی این خط را اضافه کردید ، فایل را ذخیره کنید و ببندید. اگر از nano برای ویرایش فایل استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y و سپس enter انجام دهید. برای اجرای تغییراتی که ایجاد کرده اید ، Apache را مجدداً راه اندازی کنید: ⦁ $ sudo systemctl restart apache2 ⦁ اکنون که استفاده از .htaccess را برای برنامه خود فعال کرده اید ، باید یک مورد از آن را ایجاد کنید تا در واقع برخی از اقدامات امنیتی را پیاده سازی کنید. برای موفقیت در این امر ، فایل باید در دیرکتوری برنامه کاربردی ایجاد شود. با تایپ کردن این دستور می توانید فایل لازم را ایجاد کرده و در ویرایشگر متن خود با امتیازات اصلی باز کنید: ⦁ $ sudo nano /usr/share/phpmyadmin/.htaccess ⦁ در این فایل اطلاعات زیر را وارد کنید: /usr/share/phpmyadmin/.htaccess AuthType Basic AuthName “Restricted Files” AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user در اینجا منظور از هریک از این خطوط آورده شده است: ⦁ AuthType Basic: در این خط نوع تأیید هویت مورد استفاده شما مشخص می شود. این نوع، تأیید اعتبار رمز عبور را با استفاده از یک فایل رمز عبور پیاده سازی می کند. ⦁ AuthName: پیام را برای کادر گفتگوی تأیید اعتبار تنظیم می کند. شما باید آن را سری نگه دارید تا کاربران غیرمجاز هیچ اطلاعاتی درباره چیزی که محافظت می شود کسب نکنند. ⦁ AuthUserFile: مکان فایل رمز عبور را که برای تأیید اعتبار استفاده می شود را تعیین می کند. باید خارج از دایرکتوری هایی باشد که ارائه می شوند. به زودی این فایل را ایجاد خواهیم کرد. ⦁ Require valid-user : مشخص می کند که فقط کاربران معتبر باید به این منبع دسترسی داشته باشند. همان چیزی است که در واقع ورود کاربران غیرمجاز را متوقف می کند. پس از اتمام ، فایل را ذخیره کنید و ببندید. محلی که برای فایل رمز عبور خود انتخاب کردید /etc/phpmyadmin/.htpasswd بود. اکنون می توانید این فایل را ایجاد کرده و آن را به عنوان کاربر اولیه با ابزار htpasswd وارد کنید: ⦁ $ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username ⦁ از شما خواسته می شود یک رمز عبور را برای کاربر مورد نظر خود انتخاب و تأیید کنید. پس از آن ، فایل با رمز عبور hashed که وارد کرده اید ایجاد می شود. از شما خواسته می شود یک رمز عبور برای کاربر مورد نظر خود انتخاب و تأیید کنید. پس از آن ، فایل با رمز عبور hashed که وارد کرده اید ایجاد می شود. ⦁ $ sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser ⦁ اگر می خواهید یک کاربر اضافی وارد کنید ، باید بدون پرچم -c این کار را انجام دهید ، مانند این: https://domain_name_or_IP/phpmyadmin پس از وارد کردن شناسه Apache ، برای وارد کردن اعتبار MySQL به صفحه تأیید صحت phpMyAdmin منتقل می شوید. این تنظیم، لایه امنیتی بیشتری را اضافه می کند ، که از آنجایی که phpMyAdmin قبلا آسیب پذیر بود ، مطلوب خواهد بود. نتیجه اکنون باید phpMyAdmin را در سرور مجازی Ubuntu 20.04 خود تنظیم و آماده استفاده کرده باشید. با استفاده از این رابط ، می توانید به راحتی پایگاه داده ، کاربران ، جداول و غیره ایجاد کرده و عملیات معمول مانند حذف و اصلاح ساختارها و داده ها را انجام دهید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Apache,LAMP stack,MySQL,phpMyAdmin
0 notes
server70-blog · 4 years
Text
نصب و استفاده از Composer در اوبونتو 20.04
Composer یک ابزار مدیریت وابستگی محبوب برای PHP است که عمدتاً برای تسهیل نصب و به روزرسانی برای متعلقات پروژه ایجاد شده است. این ابزار بررسی خواهد کرد که یک پروژه خاص به چه بسته های دیگری متکی است و با استفاده از نسخه های مناسب با توجه به نیاز پروژه ، آنها را برای شما نصب می کند. Composer همچنین معمولاً برای راه اندازی پروژه های جدید بر اساس چارچوب های محبوب PHP مانند Symfony و Laravel استفاده می شود. در این آموزش ، نصب و شروع Composer را روی یک سیستم Ubuntu 20.04 بررسی می کنید. پیش نیازها برای دنبال کردن این راهنما ، به عنوان یک کاربر sudo غیر ریشه به یک سرور مجازی Ubuntu 20.04 و یک فایروال فعال شده روی سرور مجازی خود نیاز دارید. برای انجام این کار، می توانید راهنمای تنظیم اولیه سرور مجازی ما برای اوبونتو 20.04 را دنبال کنید. مرحله 1 – نصب PHP و متعلقات اضافی علاوه بر متعلقاتی که قبلاً باید درون سیستم اوبونتو 20.04 شما مانند git و curl وجود داشته باشد ، Composer برای اجرای اسکریپت های PHP در خط فرمان ، به php-cli نیز و برای اکسترکت بایگانی های zip شده به unzip نیاز دارد. اکنون این وابستگی ها را نصب خواهیم کرد. ابتدا حافظه نهان مدیر بسته را با اجرای این دستور به روز کنید: ⦁ $ sudo apt update ⦁ در مرحله بعدی ، برای نصب بسته های مورد نیاز ، دستور زیر را اجرا کنید: ⦁ $ sudo apt install php-cli unzip ⦁ از شما خواسته می شود كه نصب را با تایپ Y و سپس ENTER تأیید كنید. پس از نصب پیش نیازها ، می توانید به سراغ نصب Composer بروید. مرحله 2 – دانلود و نصب Composer Composer اسکریپت نصب کننده ای را فراهم می کند که به زبان PHP نوشته شده است. آن را دانلود خواهیم کرد ، و تأیید می کنیم که مشکلی ندارد ، و سپس از آن برای نصب Composer استفاده خواهیم کرد. مطمئن شوید که در دیرکتوری هوم خود قرار دارید ، سپس نصب را با استفاده از curl بازیابی کنید: ⦁ $ cd ~ ⦁ ⦁ $ curl -sS https://getcomposer.org/installer -o composer-setup.php در مرحله بعد ، تأیید خواهیم کرد که نصب کننده دانلود شده با هش SHA-384 برای جدیدترین نصب کننده در صفحه کلیدهای عمومی Composer / امضاها مطابقت دارد. برای تسهیل مرحله تأیید ، می توانید از دستور زیر استفاده کنید تا آخرین hash را از صفحه Composer به طور برنامه وار بدست آورید و آن را در متغیر پوسته ذخیره کنید: ⦁ $ HASH=`curl -sS https://composer.github.io/installer.sig` ⦁ اگر می خواهید مقدار به دست آمده را تأیید کنید ، می توانید این دستور را اجرا کنید: ⦁ $ echo $HASH ⦁ Output e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a اکنون کد PHP زیر را ، همانطور که در صفحه دانلود Composer ارائه شده است ، اجرا کنید تا تأیید کنید که اسکریپت نصب برای اجرا امن است: ⦁ $ php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;” ⦁ خروجی زیر را مشاهده خواهید کرد: Output Installer verified اگر خروجی می گوید نصب کننده مشکل دارد ، باید اسکریپت نصب را بار دیگر دانلود کنید و بررسی کنید که از هش درست استفاده می کنید. سپس فرایند تأیید را تکرار کنید. وقتی یک نصب تأیید شده داشتید ، می توانید ادامه دهید. برای نصب Composer در سطح جهانی ، از دستور زیر استفاده کنید که Composer را به عنوان یک فرمان در گستره سیستم به نام Composer تحت ، usr / local / bin دانلود و نصب می کند: ⦁ $ sudo php composer-setup.php –install-dir=/usr/local/bin –filename=composer ⦁ خروجی مشابه این را مشاهده خواهید کرد: Output All settings correct for using Composer Downloading… Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer برای آزمایش نصب خود ، اجرا کنید: ⦁ $ composer ⦁ Output ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.10.5 2020-04-10 11:44:22 Usage: command [options] [arguments] Options: -h, –help Display this help message -q, –quiet Do not output any message -V, –version Display this application version –ansi Force ANSI output –no-ansi Disable ANSI output -n, –no-interaction Do not ask any interactive question –profile Display timing and memory usage information –no-plugins Whether to disable plugins. -d, –working-dir=WORKING-DIR If specified, use the given directory as working directory. –no-cache Prevent use of the cache -v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug … تأیید می کند که Composer با موفقیت روی سیستم شما نصب شده است و در سطح سیستم در دسترس است. توجه: اگر ترجیح می دهید Composer قابل اجرای جداگانه برای هر پروژه ای که در این سرور مجازی میزبانی میکنید ، داشته باشید ، می توانید آن را به صورت محلی در هر پروژه نصب کنید. این روش همچنین زمانی مفید است که کاربر سیستم شما اجازه نصب نرم افزارهای گسترده در سیستم را ندارد. برای این کار از دستور php Composer -setup.php استفاده کنید. با این کار یک فایل composer.phar در دایرکتوری فعلی شما ایجاد می شود ، که می تواند با php comper.phar اجرا شود. اکنون بیایید به استفاده از Composer برای مدیریت وابستگی ها بپردازیم. مرحله 3 – استفاده از Composer در یک پروژه PHP پروژه های PHP اغلب به کتابخانه های خارجی متکی هستند ، و مدیریت آن وابستگی ها و نسخه های آنها می تواند مشکل باشد. Composer با پیگیری نسخه های پروژه و متعلقات آن ، این مشکل را حل می کند ، ضمن اینکه روند پیدا کردن ، نصب و به روزرسانی بسته های مورد نیاز یک پروژه را نیز تسهیل می کند. برای استفاده از Composer در پروژه خود ، به یک فایل Composer .json احتیاج دارید. فایل composer.json به Composer می گوید که به کدام متعلقات برای دانلود برای پروژه شما نیاز دارد و نصب کدام نسخه های هر بسته مجاز است. بسیار مهم است که پروژه خود را ثابت نگه دارید و از نصب نسخه های ناپایدار که به طور بالقوه می تواند باعث ایجاد مشکلات سازگاری شود ، خودداری کنید. لازم نیست این فایل را به صورت دستی ایجاد کنید – معمولا در هنگام انجام این کار با خطاهای نحوی روبرو میشوید. Composer یک روش تعاملی برای ایجاد یک فایل جدید Composer .json بر اساس ورودی کاربر ارائه می دهد ، اگر قصد دارید پروژه خود را بعدا به عنوان یک بسته عمومی در Packagist به اشتراک بگذارید ، گزینه خوبی است. وقتی فرمان composer require را اجرا میکنید، Composer همچنین یک فایل Composer .json ایجاد می کند تا یک وابستگی را در یک پروژه تازه ایجاد شده شامل شود. مراحل استفاده از Composer برای نصب بسته به عنوان متعلقات در یک پروژه شامل مراحل زیر است: • شناسایی کنید که برنامه به چه نوع کتابخانه ای نیاز دارد. • در مورد كتابخانه منبع باز مناسب در Packagist.org ، مخزن رسمی بسته بندی Composer تحقیق کنید. ⦁ بسته ای را که می خواهید به آن متکی باشید انتخاب کنید. • composer require را اجرا کنید تا وابستگی را در فایل Composer .json شامل شده و بسته را نصب کنید. بیایید این کار را با یک برنامه آزمایشی امتحان کنیم. هدف از این برنامه تبدیل یک جمله معین به یک رشته سازگار با URL است- یعنی یک slug. این معمولاً برای تبدیل عناوین صفحه به مسیرهای URL استفاده می شود (مانند قسمت نهایی URL برای این آموزش) بیایید با ایجاد دایرکتوری برای پروژه خود شروع کنیم. آن را slugify می نامیم: ⦁ $ cd ~ ⦁ ⦁ $ mkdir slugify ⦁ ⦁ $ cd slugify اگرچه لازم نیست ، اکنون می توانید یک دستور composer init را اجرا کنید تا یک فایل composer.jso مفصل را برای پروژه خود ایجاد کنید. از آنجا که تنها هدف پروژه ما نشان دادن چگونگی نصب متعلقات با Composer است ، از یک فایل ساده تر Composer .json استفاده خواهیم کرد که وقتی به اولین بسته خود احتیاج داریم ، به صورت خودکار تولید می شود. اکنون زمان آن رسیده است که Packagist.org را برای بسته ای جستجو کنیم که می تواند در تولید slugs به ما کمک کند. اگر اصطلاح Slug را در Packagist جستجو کنید ، نتیجه ای مشابه این دریافت خواهید کرد: در سمت راست هر بسته در لیست ، دو عدد مشاهده خواهید کرد. عدد بالا نشان می دهد که چند بار بسته از طریق Composer نصب شده است ، و عدد پایین نشان می دهد که چند بار بسته بندی در GitHub ستاره دار شده است. به طور کلی ، بسته هایی با نصب بیشتر و تعداد بیشتری ستاره ، پایداری بیشتری دارند ، زیرا بسیاری از افراد از آنها استفاده می کنند. همچنین مهم است که توضیحات بسته را برای میزان ارتباط بررسی کنید تا اطمینان حاصل کنید که به چه چیز نیاز دارید. ما به مبدل string به slug نیاز داریم. از نتایج جستجو ، بسته Cocur / slugify که به عنوان اولین نتیجه در آن صفحه ظاهر می شود ، با تعداد معینی نصب و ستاره گزینه خوبی به نظر میرسد. بسته های Packagist دارای نام vendor  و نام package  هستند. هر بسته دارای یک شناسه منحصر به فرد (یک فضای نام) در همان قالب است که GitHub برای مخازن خود استفاده می کند: vendor/package. کتابخانه ای که می خواهیم نصب کنیم از فضای نام cocur / slugify استفاده می کند. برای اینکه در پروژه خود آن را به کار بگیرید ، به فضای نام بسته نیاز دارید. اکنون که می دانید دقیقاً کدام پکیج را می خواهید نصب کنید ، می توانید composer require را اجرا کنید ، باید آن را به عنوان یک وابستگی در نظر بگیرید و همچنین فایل Composer .json را برای پروژه خود تولید کنید. نکته ای که هنگام به کارگیری بسته ها باید توجه کنیم این است که Composer هم متعلقات سطح برنامه و هم متعلقات سطح سیستم را ردیابی می کند. متعلقات سطح سیستم برای نشان دادن اینکه بسته به کدامیک از ماژول های PHP متکی است مهم هستند. بسته Cocur / slugify ، به یک ماژول PHP نیاز دارد که ما هنوز نصب نکرده ایم. هنگامی که یک بسته مورد نیاز به یک کتابخانه سیستمی که در حال حاضر روی سرور مجازی شما نصب نشده است متکی است ، با خطایی مبنی بر اینکه چه چیزی مورد نیاز است ، مواجه می شوید: ⦁ $ composer require cocur/slugify ⦁ Output Using version ^4.0 for cocur/slugify ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 – Installation request for cocur/slugify ^4.0 -> satisfiable by cocur/slugify[v4.0.0]. – cocur/slugify v4.0.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system. … برای حل مشکل وابستگی سیستم ، می توانیم با استفاده از apt search ، بسته گمشده را جستجو کنیم: ⦁ $ apt search mbstring ⦁ Output Sorting… Done Full Text Search… Done php-mbstring/focal 2:7.4+75 all MBSTRING module for PHP [default] php-patchwork-utf8/focal 1.3.1-1 all UTF-8 strings handling for PHP php7.4-mbstring/focal 7.4.3-4ubuntu1 amd64 MBSTRING module for PHP پس از یافتن نام درست بسته ، می توانید بار دیگر از apt برای نصب وابستگی سیستم استفاده کنید: ⦁ $ sudo apt install php-mbstring ⦁ پس از اتمام نصب ، مجدداً می توانید composer require را اجرا کنید: ⦁ $ composer require cocur/slugify ⦁ Output Using version ^4.0 for cocur/slugify ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals – Installing cocur/slugify (v4.0.0): Downloading (100%) Writing lock file Generating autoload files همانطور که از خروجی مشاهده می کنید ، Composer به طور خودکار تصمیم گرفت از کدام نسخه از بسته استفاده کند. اگر اکنون دایرکتوری پروژه خود را بررسی کنید ، شامل دو فایل جدید خواهد بود: composer.json و composer.lock ، و یک دیرکتوری vendor: ⦁ $ ls -l ⦁ Output total 12 -rw-rw-r– 1 sammy sammy 59 May 4 13:56 composer.json -rw-rw-r– 1 sammy sammy 3229 May 4 13:56 composer.lock drwxrwxr-x 4 sammy sammy 4096 May 4 13:56 vendor از فایل composer.lock برای ذخیره اطلاعات در مورد این كه کدام یک از نسخه های هر بسته نصب شده است استفاده می شود و اطمینان حاصل می كند اگر شخص دیگری پروژه شما را كلون كند و متعلقات آن را نصب كند ، از نسخه های مشابه استفاده می شود. دایرکتوری vendor جایی است که وابستگی پروژه در آن واقع شده باشد. پوشه vendor نباید به کنترل نسخه متعهد باشد – فقط باید فایل های Composer .json و composer.lock را شامل شوید. هنگام نصب پروژه ای که از قبل حاوی یک فایل composer.json است ، به منظور دانلود متعلقات پروژه ، composer install را اجرا کنید. بیایید نگاهی اجمالی به محدودیت های نسخه بیندازیم. اگر محتویات فایل Composer .json خود را بررسی کنید ، چنین چیزی را مشاهده خواهید کرد: ⦁ $ cat composer.json ⦁ Output { “require”: { “cocur/slugify”: “^4.0” } } ممکن است متوجه کاراکتر خاص ^ قبل از شماره نسخه در Composer .json شوید. Composer از چندین محدودیت و فرمت مختلف برای تعریف نسخه بسته مورد نیاز پشتیبانی می کند ، به منظور ارائه انعطاف پذیری و در عین حال ثابت نگه داشتن پروژه شما. اپراتور caret (^) که توسط فایل تولید شده توسط composer.json ایجاد شده است ، طبق  semantic versioning ، اپراتور توصیه شده برای حداکثر قابلیت همکاری است. در این حالت ،  4.0 را به عنوان حداقل نسخه سازگار تعریف می کند و به روزرسانی های هر نسخه بعدی زیر  5.0 را امکان پذیر می کند. به طور کلی ، لازم نیست که محدودیت های نسخه را در فایل Composer .json خود دستکاری کنید. با این حال ، در برخی از شرایط ممکن است نیاز باشد که شما محدودیت ها را به صورت دستی ویرایش کنید – برای مثال ، هنگامی که نسخه اصلی جدیدی از کتابخانه مورد نیاز شما منتشر میشود و می خواهید آن را ارتقا دهید ، یا وقتی کتابخانه ای که می خواهید از آن استفاده کنید ، نسخه معنایی (semantic versioning) را دنبال نمی کند. در اینجا چند مثال برای درک بهتر نحوه عملکرد محدودیتهای نسخه Composer آورده شده است: Constraint Meaning Example Versions Allowed ^1.0 >= 1.0 < 2.0 1.0, 1.2.3, 1.9.9 ^1.1.0 >= 1.1.0 < 2.0 1.1.0, 1.5.6, 1.9.9 ~1.0 >= 1.0 < 2.0.0 1.0, 1.4.1, 1.9.9 ~1.0.0 >= 1.0.0 < 1.1 1.0.0, 1.0.4, 1.0.9 1.2.1 1.2.1 1.2.1 1.* >= 1.0 < 2.0 1.0.0, 1.4.5, 1.9.9 1.2.* >= 1.2 < 1.3 1.2.0, 1.2.3, 1.2.9 برای مشاهده دقیق تر محدودیت های نسخه Composer ، به مقالات رسمی مراجعه کنید. در مرحله بعدی ، بیایید ببینیم که چگونه متعلقات را به طور خودکار با Composer لود کنیم. مرحله 4 – مشمولیت اسکریپت Autoload از آنجایی که خود PHP کلاسها را به طور خودکار لود نمی کند ، Composer یک اسکریپت autoload را فراهم می کند که می توانید در پروژه خود بگنجانید تا بتوانید از عملکرد لود خودکار برای پروژه خود استفاده کنید. این فایل با افزودن اولین وابستگی ، توسط Composer به طور خودکار تولید می شود. تنها کاری که شما باید انجام دهید اینست که فایل vendor/autoload.php را در اسکریپت های PHP خود قبل معرفی و نمو��ه سازی کلاس بگنجانید. بیایید آن را در برنامه نسخه ی نمایشی خود امتحان کنیم. فایل جدیدی به نام test.php را در ویرایشگر متن خود باز کنید: ⦁ $ nano test.php ⦁ کد زیر را اضافه کنید که فایل vendor/autoload.php را وارد می کند ، وابستگی Cocur / slugify را لود می کند ، و از آن برای ایجاد یک slug استفاده می کند: test.php <?php require __DIR__ . ‘/vendor/autoload.php’; use Cocur\Slugify\Slugify; $slugify = new Slugify(); echo $slugify->slugify(‘Hello World, this is a long sentence and I need to make a slug from it!’); فایل را ذخیره کنید و از ویرایشگر خود خارج شوید. اکنون اسکریپت را اجرا کنید: ⦁ $ php test.php ⦁ خروجی زیر را ایجاد میکند: hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it هنگام انتشار نسخه های جدید، متعلقات به آپدیت نیاز دارند ، بنابراین بیایید ببینیم چگونه این کار را انجام دهیم مرحله 5 – بروزرسانی متعلقات پروژه هر زمان که می خواهید متعلقات پروژه خود را به نسخه های جدیدتر بروزرسانی کنید ، دستور update  را اجرا کنید: ⦁ $ composer update ⦁ با این کار نسخه های جدیدتری از کتابخانه های مورد نیاز پروژه شما جستجو می شوند. اگر نسخه جدیدتری پیدا شود و با محدودیت نسخه تعریف شده در فایل composer.json سازگار باشد ، Composer نسخه جدید را جایگزین قبلی می کند. فایل composer.lock به روز خواهد شد تا این تغییرات را منعکس کند. همچنین می توانید یک یا چند کتابخانه خاص را با مشخص کردن آنها مانند این به روز کنید: ⦁ $ composer update vendor/package vendor2/package2 ⦁ بعد از به روزرسانی متعلقات خود ، حتماً فایل های Composer .json و composer.lock را در سیستم کنترل نسخه خود بررسی کنید تا دیگران بتوانند این نسخه های جدیدتر را نیز نصب کنند. نتیجه Composer ابزاری قدرتمند است که می تواند کارآیی مدیریت متعلقات را در پروژه های PHP تا حد زیادی تسهیل کند. و یک روش مطمئن برای کشف ، نصب و به روز رسانی بسته های PHP فراهم می کند که یک پروژه به آن بستگی دارد. در این راهنما ، ما چگونگی نصب Composer ، چگونگی گنجاندن متعلقات جدید در یک پروژه و نحوه به روزرسانی این متعلقات را در صورت وجود نسخه های جدید ، بررسی کردیم. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Cocur / slugify,Composer,Laravel,Symfony
0 notes
server70-blog · 4 years
Text
ریست کردن رمز ورود ریشه MySQL یا MariaDB
فراموش کردن رمزهای عبور برای اکثر ما اتفاق می افتد. اگر رمز عبور ریشه برای ورود به پایگاه داده MySQL یا MariaDB خود را فراموش یا گم کرده اید، در صورت دسترسی به سرور مجازی و یک حساب کاربری دارای قابلیت sudo ، باز هم می توانید دسترسی پیدا کرده و پسورد را ریست کنید. در این آموزش نحوه تنظیم مجدد رمز عبور ریشه برای نسخه های قدیمی تر و جدیدتر MySQL و MariaDB ارائه می شود. پیش نیازها برای بازیابی رمز عبور ریشه MySQL / MariaDB ، به این موارد نیاز دارید: • دسترسی به سرور مجازی لینوکس که MySQL یا MariaDB را با یک کاربر sudo اجرا کند. مرحله 1 – شناسایی نسخه بانک اطلاعاتی بیشتر توزیع های مدرن لینوکس با MySQL یا MariaDB همراه هستند ، یک جایگزین محبوب که کاملاً با MySQL سازگار است. بسته به پایگاه داده استفاده شده و نسخه آن ، برای بازیابی رمز اصلی باید از دستورات مختلفی استفاده کنید. می توانید نسخه خود را با دستور زیر بررسی کنید: $ mysql –version خروجی مانند این را برای MySQL مشاهده خواهید کرد: MySQL output mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper یا خروجی مانند این برای MariaDB: MariaDB output mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1 توجه داشته باشید که کدام بانک اطلاعاتی و کدام نسخه را اجرا می کنید ، زیرا بعداً از آنها استفاده خواهید کرد. در مرحله بعد باید پایگاه داده را متوقف کنید تا بتوانید به صورت دستی به آن دسترسی پیدا کنید. مرحله 2 – توقف سرور مجازی بانک اطلاعاتی برای تغییر رمز عبور ریشه ، باید از قبل سرور مجازی پایگاه داده را خاموش کنید. می توانید با دستور زیر این کار را برای MySQL انجام دهید: $ sudo systemctl stop mysql و برای MariaDB با: $ sudo systemctl stop mariadb پس از متوقف کردن سرور مجازی پایگاه داده ، برای تنظیم مجدد رمزعبور ریشه به صورت دستی به آن دسترسی پیدا می کنید. مرحله 3 – راه اندازی مجدد سرور مجازی بانک اطلاعاتی بدون بررسی مجوز اگر MySQL و MariaDB را بدون بارگذاری اطلاعات در مورد امتیازات کاربر اجرا کنید ، به شما این امکان را می دهد تا بدون ارائه رمز عبور ، به خط فرمان پایگاه داده با امتیازات اصلی دسترسی پیدا کنید. این امر به شما امکان می دهد بدون شناختن آن به پایگاه داده دسترسی پیدا کنید. برای انجام این کار ، شما باید از بارگذاری جداول امتیازدهی ، که اطلاعات امتیازات کاربر را ذخیره می کند ، توسط پایگاه داده جلوگیری کنید. از آنجا که این کار کمی خطر امنیتی دارد ، باید از ایجاد شبکه نیز صرفنظر کنید تا از اتصال سایر کلاینت ها جلوگیری کنید. پایگاه داده را بدون لود جداول امتیاز یا فعال کردن شبکه شروع کنید: $ sudo mysqld_safe –skip-grant-tables –skip-networking & علامت & در انتهای این دستور باعث می شود این روند در پس زمینه اجرا شود ، بنابراین می توانید به استفاده از ترمینال خود ادامه دهید. اکنون می توانید به عنوان کاربر اصلی به بانک اطلاعاتی متصل شوید که نباید از شما پسورد بخواهد. $ mysql -u root در عوض بلافاصله پوسته پایگاه داده را مشاهده خواهید کرد. MySQL prompt Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement. mysql> MariaDB prompt Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement. MariaDB [(none)]> اکنون که دسترسی ریشه دارید ، می توانید رمز عبور اصلی را تغییر دهید. مرحله 4 – تغییر رمز عبور Root یک روش ساده برای تغییر رمز عبور اصلی برای نسخه های مدرن MySQL ، استفاده از دستور ALTER USER است. با این حال ، این دستور اکنون کار نمی کند زیرا جداول امتیاز لود نمی شوند. بیایید به سرور مجازی پایگاه داده بگوییم که جداول امتیاز را با صدور فرمان FLUSH PRIVILEGES مجدد لود کند. Mysql> FLUSH PRIVILEGES; اکنون می توانیم کلمه عبور اصلی را تغییر دهیم. برای MySQL 5.7.6 و نسخه های جدیدتر و همچنین MariaDB 10.1.20 و جدیدتر از دستور زیر استفاده کنید. Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’; برای MySQL 5.7.5 و نسخه های قبل تر و همچنین MariaDB 10.1.20 و قبل تر از این دستور استفاده کنید: Mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘new_password’); حتماً new_password را با رمز جدید انتخابی خود جایگزین کنید. توجه: اگر فرمان ALTER USER کار نکند ، معمولاً نشان دهنده یک مشکل بزرگتر است. با این حال ، می توانید UPDATE …SET را امتحان کنید تا رمزعبور ریشه را تنظیم کنید. Mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘new_password’) WHERE User = ‘root’ AND Host = ‘localhost’; به یاد داشته باشید که جدولهای اعطای امتیاز را پس از این مجدد لود کنید. در هر صورت ، باید تأیید کنید که فرمان با موفقیت انجام شده است. Output Query OK, 0 rows affected (0.00 sec) گذرواژه تغییر کرده است ، بنابراین شما هم اکنون می توانید نمونه دستی سرور مجازی پایگاه داده را متوقف کرده و آن را به حالت قبل ریستارت کنید. مرحله 5 – سرور مجازی پایگاه داده را به طور عادی ریستارت کنید ابتدا نمونه سرور مجازی پایگاه داده را که به طور دستی در مرحله 3 شروع کرده اید متوقف کنید. این دستور PID یا شناسه پردازش MySQL یا MariaDB را جستجو میکند و SIGTERM را ارسال می کند تا به آن بگوید که پس از انجام عملیات پاکسازی از آن خارج شود. در این لینک آموزش مدیریت فرآیند لینوکس می توانید اطلاعات بیشتری کسب کنید. برای MySQL ، از این دستور استفاده کنید: $ sudo kill `cat /var/run/mysqld/mysqld.pid` برای MariaDB : $ sudo kill `/var/run/mariadb/mariadb.pid` سپس سرویس را با استفاده از systemctl مجدداً راه اندازی کنید. برای MySQL ، از این دستور استفاده کنید: $ sudo systemctl start mysql برای MariaDB : $ sudo systemctl start mariadb اکنون می توانید با این دستور تأیید کنید که رمز عبور جدید به صورت صحیح اعمال شده است: $ mysql -u root -p این دستور باید رمز عبور تازه تخصیص یافته را از شما بخواهد. پسورد را وارد کنید ، و باید همانطور که انتظار می رود ، به دیتابیس دسترسی پیدا کنید. نتیجه اکنون دسترسی ادمین به MySQL یا سرور مجازی MariaDB بازگردانی شده است. اطمینان حاصل کنید که رمزعبور ریشه جدیدی که انتخاب کرده اید قوی و ایمن است و آن را در جای امن نگه دارید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:MariaDB,MySQL
0 notes
server70-blog · 4 years
Text
استفاده از نوع داده MySQL BLOB برای ذخیره تصاویر
Binary Large Object (BLOB) به معنی شئ بزرگ دودویی، یک نوع داده MySQL است که می تواند داده های باینری مانند تصاویر ، چندرسانه ای و فایل های PDF را ذخیره کند. هنگام ایجاد برنامه هایی که نیاز به یک بانک اطلاعاتی منسجم دارند که در آن تصاویر باید با داده های مرتبط هماهنگ شوند (به عنوان مثال ، یک پورتال کارمند ، یک پایگاه داده دانشجویی یا یک برنامه مالی) ، ذخیره کردن تصاویر مانند عکس گذرنامه دانشجویی و امضاها در یک پایگاه داده MySQL در کنار سایر اطلاعات مرتبط میتواند راحت باشد. اینجاست که نوع داده MySQL BLOB وارد می شود. این رویکرد برنامه نویسی نیاز به ایجاد یک سیستم فایل جداگانه برای ذخیره تصاویر را از بین می برد. این طرح همچنین پایگاه داده را متمرکز کرده و آن را قابل حمل تر و ایمن تر می کند زیرا داده ها از سیستم فایل جدا شده اند. ایجاد نسخه پشتیبان نیز نیز آسان تر است زیرا می توانید یک فایل MySQL dump ایجاد کنید که شامل تمام داده های شما باشد. بازیابی اطلاعات سریعتر است و هنگام ایجاد سوابق می توانید مطمئن باشید که قوانین اعتبار سنجی داده ها و تمامیت ارجاع به ویژه هنگام استفاده از معاملات MySQL حفظ می شوند. در این آموزش از نوع داده MySQL BLOB برای ذخیره تصاویر با PHP در اوبونتو 18.04 استفاده می کنید. پیش نیازها برای پیروی از این راهنما به موارد زیر نیاز دارید: ⦁ سرور مجازی Ubuntu 18.04 که با استفاده از راهنمای ستاپ اولیه سرور با Ubuntu 18.04 تنظیم و شامل یک کاربر غیر ریشه با امتیازات sudoباشد. ⦁ Apache ، MySQL و PHP که طبق راهنمای نحوه نصب پشته Linux ، Apache ، MySQL ، PHP (LAMP) در اوبونتو 18.04 تنظیم شده باشند. برای این آموزش ، نیازی به ایجاد هاست مجازی نیست ، بنابراین می توانید مرحله 4 را نادیده بگیرید. مرحله 1 – ایجاد یک بانک اطلاعاتی با ایجاد یک پایگاه داده نمونه برای پروژه خود شروع می کنید. برای این کار ، به سرور مجازی خود SSH کرده و دستور زیر را اجرا کنید تا به عنوان ریشه به سرور مجازی MySQL خود وارد شوید: ⦁ $ sudo mysql -u root -p ⦁ رمز عبور ریشه پایگاه داده MySQL خود را وارد کرده و برای ادامه ، ENTER بزنید. سپس دستور زیر را برای ایجاد بانک اطلاعاتی اجرا کنید. در این آموزش ما آن را test_company می نامیم: ⦁ Mysql> CREATE DATABASE test_company; ⦁ پس از ایجاد دیتابیس ، خروجی زیر را مشاهده خواهید کرد: Output Query OK, 1 row affected (0.01 sec) در مرحله بعد ، یک حساب test_user در سرور مجازی MySQL ایجاد کنید و به یاد داشته باشید که PASSWORD را با یک رمزعبور قوی جایگزین کنید: ⦁ Mysql> CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘PASSWORD’; ⦁ خروجی زیر را مشاهده خواهید کرد: Output Query OK, 0 rows affected (0.01 sec) برای اعطای امتیازات کامل به test_user در پایگاه داده test_company ، این دستور را اجرا کنید: ⦁ Mysql> GRANT ALL PRIVILEGES ON test_company.* TO ‘test_user’@’localhost’; ⦁ اطمینان حاصل کنید که خروجی زیر را دریافت می کنید: Output Query OK, 0 rows affected (0.01 sec) سرانجام ، جدول امتیازات را flush کنید تا MySQL مجدداً مجوزها را لود کند: ⦁ Mysql> FLUSH PRIVILEGES; ⦁ اطمینان حاصل کنید که خروجی زیر را مشاهده می کنید: Output Query OK, 0 rows affected (0.01 sec) اکنون که پایگاه داده test_company و test_user آماده هستند ، می توانید به سراغ ایجاد جدول محصولات برای ذخیره سازی نمونه محصولات بروید. بعداً از این جدول برای درج و بازیابی سوابق برای نشان دادن نحوه کار MySQL BLOB استفاده خواهید کرد. از سرور مجازی MySQL خارج شوید: ⦁ Mysql> QUIT; ⦁ سپس ، مجدداً با اعتبارات test_user که ایجاد کردید وارد سیستم شوید: ⦁ $ mysql -u test_user -p ⦁ هنگامی که از شما خواسته شد ، رمز عبور test_user را وارد کنید و برای ادامه ENTER را بزنید. سپس ، با تایپ دستور زیر به پایگاه داده test_company بروید: ⦁ Mysql> USE test_company; ⦁ پس از انتخاب پایگاه داده test_company ، MySQL نمایش داده می شود: Output Database changed سپس ، با اجرای دستور زیر یک جدول محصولات ایجاد کنید: ⦁ Mysql> CREATE TABLE `products` (product_id BIGINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(50), price DOUBLE, product_image BLOB) ENGINE = InnoDB; ⦁ این دستور یک جدول با نام محصولات ایجاد می کند. جدول دارای چهار ستون است: ⦁ product_id: این ستون از یک نوع داده BIGINT استفاده می کند تا بتواند لیست بزرگی از محصولات را تا حداکثر 2⁶³-1 آیتم در خود جای دهد. برای تعیین منحصر به فرد محصولات ، این ستون را به عنوان PRIMARY KEY علامت گذاری کرده اید. برای اینکه MySQL بتواند نسل شناساگرهای جدید ستون های درج شده را مدیریت کند ، از کلمه کلیدی AUTO_INCREMENT استفاده کرده اید. ⦁ product_name: این ستون نام محصولات را در خود جا�� داده است. از نوع داده VARCHAR استفاده کرده اید ، زیرا این فیلد به طور کلی تا حداکثر 50 کاراکتر را مدیریت خواهد کرد – حد 50 فقط یک مقدار فرضی است که در این آموزش استفاده می شود. ⦁ price: برای اهداف نمایشی ، جدول محصولات شما شامل ستون قیمت برای ذخیره قیمت خرده فروشی محصولات است. از آنجا که ممکن است برخی محصولات دارای مقادیر شناور باشند (برای مثال ، 23.69 ، 45.36 ، 102.99) ، از نوع داده DOUBLE استفاده کرده اید. ⦁ product_image: این ستون از یک نوع داده BLOB برای ذخیره داده های باینری واقعی تصاویر محصولات استفاده می کند. برای پشتیبانی از طیف گسترده ای از ویژگی ها از جمله معاملات MySQL از ENGINE ذخیره سازی InnoDB استفاده کرده اید. پس از اجرای این برای ایجاد جدول محصولات ، خروجی زیر را مشاهده خواهید کرد: Output Query OK, 0 rows affected (0.03 sec) از سرور مجازی MySQL خود خارج شوید: ⦁ mysql> QUIT; ⦁ خروجی زیر را دریافت خواهید کرد Output Bye در حال حاضر جدول محصولات برای ذخیره برخی سوابق از جمله تصاویر محصولات آماده است و در مرحله بعدی آن را با برخی محصولات پر می کنید. مرحله 2 – ایجاد اسکریپت های PHP برای اتصال و پر کردن بانک اطلاعاتی در این مرحله ، یک اسکریپت PHP ایجاد خواهید کرد که به پایگاه داده MySQL که در مرحله اول 1 ایجاد کرده اید متصل خواهد شد. اسکریپت سه محصول نمونه را آماده کرده و آنها را در جدول محصولات قرار می دهد. برای ایجاد کد PHP ، یک فایل جدید را با ویرایشگر متن خود باز کنید: ⦁ $ sudo nano /var/www/html/config.php ⦁ سپس اطلاعات زیر را در فایل وارد کرده و PASSWORD را با گذرواژه test_user که در مرحله 1 ایجاد کرده اید جایگزین کنید: /var/www/html/config.php <?php define(‘DB_NAME’, ‘test_company’); define(‘DB_USER’, ‘test_user’); define(‘DB_PASSWORD’, ‘PASSWORD’); define(‘DB_HOST’, ‘localhost’); $pdo = new PDO(“mysql:host=” . DB_HOST . “; dbname=” . DB_NAME, DB_USER, DB_PASSWORD); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); فایل را ذخیره کنید و ببندید. در این فایل از چهار PHP ثابت برای اتصال به پایگاه داده MySQL که در مرحله 1 ایجاد کردید، استفاده نموده اید: ⦁ DB_NAME: این ثابت دارای نام بانک اطلاعاتی test_company است. ⦁ DB_USER: این متغیر دارای نام کاربری test_user است. ⦁ DB_PASSWORD: این ثابت پسورد MySQL حساب test_user را ذخیره می کند. ⦁ DB_HOST: نشان دهنده سرور مجازی ی است که دیتابیس در آن قرار دارد. در این حالت ، شما از سرور مجازی localhost استفاده می کنید. خط زیر در فایل شما یک PHP Data Object (PDO) را آغاز کرده و به پایگاه داده MySQL متصل می شود: … $pdo = new PDO(“mysql:host=” . DB_HOST . “; dbname=” . DB_NAME, DB_USER, DB_PASSWORD); … در پایان فایل ، چند ویژگی PDO تنظیم کرده اید: ⦁ ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION : این ویژگی به PDO دستور می دهد استثنائی را که می تواند برای اهداف اشکال زدایی وارد شود ، ارائه کند. ⦁ ATTR_EMULATE_PREPARES, false : این گزینه با اطلاع به موتور پایگاه داده MySQL برای آماده سازی به جای PDO ، امنیت را بیشتر می کند. فایل /var/www/html/config.php را در دو اسکریپت PHP که به ترتیب برای درج و بازیابی سوابق ایجاد خواهید کرد ، در نظر خواهید گرفت. ابتدا اسکریپت PHP /var/www/html/insert_products.php را برای درج سوابق در جدول محصولات ایجاد کنید: ⦁ $ sudo nano /var/www/html/insert_products.php ⦁ سپس اطلاعات زیر را در فایل /var/www/html/insert_products.php اضافه کنید: /var/www/html/insert_products.php <?php require_once ‘config.php’; $products = []; $products[] = [ ‘product_name’ => ‘VIRTUAL SERVERS’, ‘price’ => 5, ‘product_image’ => file_get_contents(“https://i.imgur.com/VEIKbp0.png”) ]; $products[] = [ ‘product_name’ => ‘MANAGED KUBERNETES’, ‘price’ => 30, ‘product_image’ => file_get_contents(“https://i.imgur.com/cCc9Gw9.png”) ]; $products[] = [ ‘product_name’ => ‘MySQL DATABASES’, ‘price’ => 15, ‘product_image’ => file_get_contents(“https://i.imgur.com/UYcHkKD.png” ) ]; $sql = “INSERT INTO products(product_name, price, product_image) VALUES (:product_name, :price, :product_image)”; foreach ($products as $product) { $stmt = $pdo->prepare($sql); $stmt->execute($product); } echo “Records inserted successfully”; فایل را ذخیره کنید و ببندید. در فایل بالا، فایل config.php را در بالا وارد کرده اید. این اولین فایلی است که شما برای تعیین متغیرهای دیتابیس و اتصال به پایگاه داده ایجاد کرده اید. این فایل همچنین یک شی PDO را آغاز می کند و آن را در یک متغیر pdo $ ذخیره می کند. در مرحله بعد ، مجموعه ای از داده های محصولات را ایجاد کرده اید تا در بانک اطلاعاتی درج شوند. به غیر از product_name و price ، که به ترتیب به عنوان رشته ها و مقادیر عددی تهیه شده اند ، اسکریپت از تابع file_get_contents داخلی PHP برای خواندن تصاویر از یک منبع خارجی استفاده می کند و آنها را به صورت رشته به ستون product_image منتقل می کند. در مرحله بعد ، یک عبارت SQL آماده کرده اید و از عبارت PHP foreach {…} برای وارد کردن هر محصول در پایگاه داده استفاده کرده اید. برای اجرای فایل /var/www/html/insert_products.php ، آن را با استفاده از آدرس زیر در پنجره مرورگر خود اجرا کنید. به یاد داشته باشید که your-server-IP را با آدرس IP عمومی سرور مجازی خود جایگزین کنید: http://your-server-IP/insert_products.php پس از اجرای فایل ، یک پیام موفقیت در مرورگر خود مشاهده خواهید کرد که تأیید میکند سوابق در پایگاه داده درج شده است. شما با موفقیت سه رکورد حاوی تصاویر محصول را در جدول محصولات وارد کرده اید. در مرحله بعد ، یک اسکریپت PHP برای بازیابی این سوابق و نمایش آنها در مرورگر خود ایجاد خواهید کرد. مرحله 3 – نمایش اطلاعات محصولات از پایگاه داده MySQL با اطلاعات و تصاویر محصولات موجود در بانک اطلاعاتی ، اکنون می خواهید اسکریپت PHP دیگری را رمزگذاری کنید که اطلاعات محصولات را در یک جدول HTML در مرورگر شما پستجو کرده و نمایش می دهد. برای ایجاد فایل ، دستور زیر را تایپ کنید: ⦁ $ sudo nano /var/www/html/display_products.php ⦁ سپس اطلاعات زیر را در فایل وارد کنید: /var/www/html/display_products.php <html> <title>Using BLOB and MySQL</title> <body> <?php require_once ‘config.php’; $sql = “SELECT * FROM products”; $stmt = $pdo->prepare($sql); $stmt->execute(); ?> <table border = ‘1’ align = ‘center’> <caption>Products Database</caption> <tr> <th>Product Id</th> <th>Product Name</th> <th>Price</th> <th>Product Image</th> </tr> <?php while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo ‘<tr>’; echo ‘<td>’ . $row[‘product_id’] . ‘</td>’; echo ‘<td>’ . $row[‘product_name’] . ‘</td>’; echo ‘<td>’ . $row[‘price’] . ‘</td>’; echo ‘<td>’ . ‘<img src = “data:image/png;base64,’ . base64_encode($row[‘product_image’]) . ‘” width = “50px” height = “50px”/>’ . ‘</td>’; echo ‘</tr>’; } ?> </table> </body> </html> تغییرات را در فایل ذخیره کنید و آن را ببندید. در اینجا شما مجدداً فایل config.php را برای اتصال به پایگاه داده وارد کرده اید. سپس ، با استفاده از PDO ، یک عبارت SQL را با استفاده از دستور SELECT * FROM products برای بازیابی همه موارد از جدول محصولات تهیه و اجرا کرده اید. در مرحله بعد ، یک جدول HTML ایجاد کرده و آن را با داده های محصولات با استفاده از while() {…} PHP پر کرده اید. خط $ row = $ stmt-> fetch (PDO :: FETCH_ASSOC) از پایگاه داده پرس و جو می کند و نتیجه را در متغیر $row به عنوان یک آرایه چند بعدی ذخیره می کند ، که می توانید با استفاده از $row[‘column_name’] در یک ستون جدول HTML نمایش دهید. تصاویر از ستون product_image درون برچسب های <img src = “”> محصور شده اند. برای تغییر اندازه تصاویر در اندازه کوچکتر که می تواند در ستون جدول HTML قرار بگیرد از صفات عرض و ارتفاع استفاده کرده اید. به منظور تبدیل داده های نگهداشته شده توسط نوع داده BLOB به تصاویر ، از عملکرد داخلی PHP base64_encode و عبارت زیر برای طرح داده URI استفاده کرده اید: data:media_type;base64, base_64_encoded_data در این حالت ، image/png ، Media_type است و رشته رمزگذاری شده Base64 از ستون product_image، base_64_encoded_data میباشد. در مرحله بعد ، با وارد کردن آدرس زیر ، فایل Display_products.php را در یک مرورگر وب اجرا کنید: http://your-server-IP/display_products.php پس از اجرای فایل display_products.php در مرورگر خود ، یک جدول HTML با لیستی از محصولات و تصاویر همراه مشاهده خواهید کرد. این تأیید می کند که متن PHP برای بازیابی تصاویر از MySQL همانطور که انتظار می رود کار می کند. نتیجه در این راهنما از نوع داده MySQL BLOB برای ذخیره و نمایش تصاویر با PHP در اوبونتو 18.04 استفاده کرده اید. همچنین مزایای پایه ذخیره کردن تصاویر در یک پایگاه داده را در مقایسه با ذخیره آنها در یک سیستم فایل مشاهده کردید. این موارد شامل قابلیت حمل ، امنیت و سهولت تهیه نسخه پشتیبان است. اگر در حال ساخت برنامه ای مانند پورتال دانشجویی یا بانک اطلاعاتی کارمندان هستید که نیاز به ذخیره سازی اطلاعات و تصاویر مرتبط دارد ، این فناوری می تواند برای شما بسیار مفید باشد. برای اطلاعات بیشتر در مورد انواع داده پشتیبانی شده در MySQL ، راهنمای انواع داده MySQL را دنبال کنید. اگر علاقه مند به مطالب بیشتر مربوط به MySQL و PHP هستید، آموزش های زیر را بررسی کنید: • نحوه پیاده سازی صفحه بندی در MySQL با PHP در اوبونتو 18.04 • نحوه استفاده از افزونه PDO PHP برای انجام تراکنش های MySQL در PHP در اوبونتو 18.04 خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Apache,MySQL,MySQL BLOB
0 notes
server70-blog · 4 years
Text
نصب Nginx در اوبونتو 18.04
Nginx یکی از محبوب ترین سرور مجازی های وب در جهان است و مسئولیت میزبانی برخی از بزرگترین و پر ترافیک ترین سایتها در اینترنت را دارد. یک انتخاب ساده است که می تواند به عنوان سرور مجازی وب یا پروکسی معکوس استفاده شود. در این راهنما ، ما در مورد چگونگی نصب Nginx در سرور مجازی Ubuntu 18.04 صبت خواهیم کرد. پیش نیازها قبل از شروع این راهنما ، باید یک کاربر معمولی و غیر ریشه با امتیازات sudo در سرور مجازی خود تنظیم کنید. با پیروی از راهنمای ستاپ اولیه سرور مجازی برای اوبونتو 18.04 می توانید نحوه پیکربندی یک حساب کاربری معمولی را یاد بگیرید. هنگامی که یک حساب کاربری در دسترس داشتید ، به عنوان کاربر غیر ریشه خود وارد شوید. مرحله 1 – نصب Nginx از آنجا که Nginx در مخازن پیش فرض اوبونتو موجود است ، می توان آن را از طریق این مخازن با استفاده از سیستم بسته بندی apt نصب کرد. از آنجا که این اولین تعامل ما با سیستم بسته بندی apt در این بخش است ، دیرکتوری بسته های محلی خود را به روز می کنیم تا به جدیدترین لیست های بسته دسترسی داشته باشیم. پس از آن ، می توانیم nginx را نصب کنیم: ⦁ $ sudo apt update ⦁ ⦁ $ sudo apt install nginx پس از پذیرش روال ، apt ، Nginx و هرگونه متعلقات لازم را برای سرور مجازی شما نصب می کند. مرحله 2 – تنظیم فایروال قبل از آزمایش Nginx ، برای دسترسی به سرویس باید نرم افزار فایروال تنظیم شود. Nginx پس از نصب ، خود را به عنوان سرویسی با ufw ثبت می کند ، و این باعث می شود دسترسی Nginx ساده باشد. با تایپ دستور زیر تنظیمات برنامه را که ufw می داند چگونه با آن کار کند لیست کنید: ⦁ $ sudo ufw app list ⦁ باید لیستی از پروفایل های برنامه را دریافت کنید: Output Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH همانطور که از خروجی نشان داده شده است ، سه پروفایل برای Nginx در دسترس است: ⦁ Nginx Full: این پروفایل هر دو پورت 80 (ترافیک وب عادی و بدون رمزگذاری) و پورت 443 (ترافیک رمزگذاری شده TLS / SSL) را باز می کند ⦁ Nginx HTTP: این نمایه فقط پورت 80 را باز می کند (ترافیک وب عادی و بدون رمزگذاری) ⦁ Nginx HTTPS:این پروفایل فقط پورت 443 را باز می کند (ترافیک رمزگذاری شده TLS / SSL) توصیه می شود محدودترین نمایه ای را که هنوز امکان ترافیک تنظیم شده خود را فراهم می کند ، فعال کنید. در حال حاضر ، ما فقط نیاز به ترافیک در پورت 80 داریم. می توانید آن را با تایپ کردن دستور زیر فعال کنید: ⦁ $ sudo ufw allow ‘Nginx HTTP’ ⦁ می توانید تغییر را با تایپ این دستور تأیید کنید: ⦁ $ sudo ufw status ⦁ در خروجی نمایش داده شده، ترافیک HTTP مجاز را مشاهده میکنید: Output Status: active To Action From — —— —- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6) مرحله 3 – بررسی سرور مجازی وب خود در پایان مراحل نصب ، اوبونتو 18.04 ، Nginx را شروع می کند. وب سرور مجازی اکنون راه اندازی و در حال کار میباشد. ما می توانیم با تایپ کردن این دستور زیر سیستم شروع کار systemd  را بررسی کنیم تا مطمئن شویم که این سرویس در حال اجراست: ⦁ $ systemctl status nginx ⦁ Output ● nginx.service – A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process همانطور که با این دستور تأیید شده است ، این سرویس با موفقیت شروع به کار نموده است. با این حال ، بهترین راه برای آزمایش آن، درخواست صفحه از Nginx است. شما می توانید با رفتن به آدرس IP سرور مجازی خود به صفحه فرود پیش فرض Nginx دسترسی داشته باشید تا تأیید کنید که نرم افزار به درستی کار می کند. اگر آدرس IP سرور مجازی خود را نمی دانید ، می توانید آن را به چند روش مختلف دریافت کنید. سعی کنید این را در اعلان فرمان سرور مجازی خود تایپ کنید: ⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’ ⦁ چند خط دریافت خواهید کرد. می توانید هرکدام را در مرورگر وب خود امتحان کنید تا ببینید که آیا کار می کنند. راه جایگزین دیگر تایپ آن است که باید آدرس IP عمومی شما را همانطور که از یک مکان دیگر در اینترنت مشاهده می شود به شما بدهد: ⦁ $ curl -4 icanhazip.com ⦁ اکنون که آدرس IP سرور مجازی خود را دارید ، آن را در نوار آدرس مرورگر خود وارد کنید: http://your_server_ip باید صفحه فرود پیش فرض Nginx را دریافت کنید: این صفحه برای این در Nginx گنجانده شده که نشان دهد سرور مجازی شما به درستی کار می کند. مرحله 4 – مدیریت فرایند Nginx اکنون که سرور مجازی وب خود را فعال کرده اید ، اجازه دهید برخی دستورات مدیریت پایه را مرور کنیم. برای متوقف کردن سرور مجازی وب خود ، تایپ کنید: ⦁ $ sudo systemctl stop nginx ⦁ برای شروع سرور مجازی وب هنگام متوقف بودن ، تایپ کنید: ⦁ $ sudo systemctl start nginx ⦁ برای متوقف کردن و شروع مجدد سرویس ، تایپ کنید: ⦁ $ sudo systemctl restart nginx ⦁ اگر فقط تغییرات پیکربندی را انجام می دهید ، Nginx اغلب می تواند بدون افت اتصالات مجدد لود شود. برای انجام این کار ، تایپ کنید: ⦁ $ sudo systemctl reload nginx ⦁ به طور پیش فرض ، Nginx به گونه ای پیکربندی شده است تا وقتی سرور مجازی بوت میشود ، به طور خودکار شروع گردد. اگر این چیزی نیست که شما می خواهید ، می توانید با تایپ کردن دستور زیر، این رفتار را غیرفعال کنید: ⦁ $ sudo systemctl disable nginx ⦁ برای فعال کردن مجدد سرویس برای راه اندازی در هنگام بوت شدن ، می توانید این دستور را تایپ کنید: ⦁ $ sudo systemctl enable nginx مرحله 5 – تنظیم بلوک های سرور مجازی (توصیه می شود) هنگام استفاده از وب سرور مجازی Nginx ، می توان از بلوک های سرور مجازی (مشابه هاست های مجازی در Apache) برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور مجازی واحد استفاده کرد. دامنه ای به نام example.com را راه اندازی می کنیم ، اما شما باید این نام را با نام دامنه خود جایگزین کنید. Nginx در اوبونتو 18.04 دارای یک بلوک سرور مجازی است که بصورت پیش فرض فعال شده است تا برای ارائه اسناد از یک دیرکتوری در / var / www / html پیکربندی شود. اگرچه برای یک سایت واحد به خوبی کار می کند ، اگر میزبان چندین سایت باشید ، می تواند مشکل ساز شود. به جای تغییر / var / www / html ، بیایید یک ساختار دایرکتوری در / var / www برای سایت example.com ایجاد کنیم ، و / var / www / html را به عنوان دایرکتوری پیش فرض رها کنیم تا در صورت عدم تطابق درخواست کلاینت با هیچ سایت دیگر، این دیرکتوری ارائه شود. دایرکتوری برای example.com را به شرح زیر ایجاد کنید ، از پرچم -p برای ایجاد هرگونه دیرکتوری parent لازم استفاده نمایید. ⦁ $ sudo mkdir -p /var/www/example.com/html ⦁ سپس ، مالکیت دایرکتوری را به متغیر محیط USER $ اختصاص دهید ⦁ $ sudo chown -R $USER:$USER /var/www/example.com/html ⦁ اگر مقدار umask خود را تغییر نداده باشید ، مجوزهای ریشه وب شما باید صحیح باشد، اما میتوانید با تایپ دستور زیر از این بابت مطمئن شوید: ⦁ $ sudo chmod -R 755 /var/www/example.com ⦁ سپس ، با استفاده از nano یا ویرایشگر مورد علاقه خود ، صفحه index.html نمونه را ایجاد کنید: ⦁ $ nano /var/www/example.com/html/index.html ⦁ در داخل ، نمونه HTML زیر را اضافه کنید: /var/www/example.com/html/index.html <html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com server block is working!</h1> </body> </html> پس از اتمام فایل را ذخیره کنید و ببندید. برای اینکه Nginx بتواند این محتوا را ارائه دهد ، لازم است یک بلوک سرور مجازی را با دستورالعمل های درست ایجاد کنید. به جای تغییر مستقیم پیکربندی پیش فرض ، بیایید فایل جدیدی را در /etc/nginx/sites-available/example.com ایجاد کنیم: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ در بلوک پیکربندی زیر پیست کنید که مشابه پیش فرض است ، اما برای دیرکتوری جدید و نام دامنه به روز میباشد: /etc/nginx/sites-available/example.com server { listen 80; listen [::]:80; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } } توجه کنید که پیکربندی ریشه را به دیرکتوری جدید و server_name را به نام دامنه خود به روز کرده ایم. در مرحله بعد ، با ایجاد پیوندی از آن به دیرکتوری sites-enabled ، که Nginx هنگام راه اندازی از آن می خواند ، فایل را فعال میکنیم: $ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ اکنون دو بلوک سرور مجازی فعال و پیکربندی شده اند تا به درخواست ها بر اساس دستورالعمل های listen و server_name آنها پاسخ دهند (می توانید درباره نحوه پردازش Nginx این دستورالعمل ها در این لینک بیشتر بخوانید): ⦁ example.com: به درخواست های example.com و www.example.com پاسخ خواهد داد. ⦁ •default: به هر درخواست در پورت 80 که با دو بلوک دیگر مطابقت ندارد پاسخ خواهد داد. برای جلوگیری از بروز مشکل حافظه که می تواند ناشی از افزودن نام سرور مجازی اضافی باشد ، لازم است یک مقدار واحد را در فا��ل /etc/nginx/nginx.conf تنظیم کنید. فایل را باز کنید: ⦁ $ sudo nano /etc/nginx/nginx.conf ⦁ دستورالعمل server_names_hash_bucket_size را پیدا کنید و نماد # را حذف کنید تا خط را باطل کنید. /etc/nginx/nginx.conf … http { … server_names_hash_bucket_size 64; … } … پس از اتمام فایل را ذخیره کنید و ببندید. سپس ، بررسی کنید تا مطمئن شوید که هیچ خطای نحوی در هیچ یک از فایل های Nginx شما وجود ندارد: ⦁ $ sudo nginx -t ⦁ اگر مشکلی وجود ندارد ، Nginx را ریستارت کنید تا تغییرات خود را فعال نمایید: ⦁ $ sudo systemctl restart nginx ⦁ Nginx اکنون باید نام دامنه شما را ارائه دهد. می توانید با رفتن به http://example.com ، جایی که باید چیزی شبیه به این تصویر را مشاهده کنید ، این فرآیند را آزمایش کنید: مرحله ششم – آشنایی با فایل ها و دستورالعمل های مهم Nginx اکنون که می دانید چگونه خود سرویس Nginx را مدیریت کنید ، باید چند دقیقه وقت بگذارید تا با چند دیرکتوری و فایل مهم آشنا شوید. محتوا ⦁ / var / www / html: محتوای وب واقعی ، که به طور پیش فرض فقط شامل صفحه پیش فرض Nginx است که قبلاً دیدید ، از دیرکتوری / var / www / html ارائه می شود. با تغییر فایل های پیکربندی Nginx قابل تغییر است. پیکربندی ر ⦁ / etc / nginx: دیرکتوری پیکربندی Nginx . همه فایل های پیکربندی Nginx در اینجا قرار دارند. ⦁ /etc/nginx/nginx.conf: فایل اصلی پیکربندی Nginx . می تواند برای ایجاد تغییر در تنظیمات جهانی Nginx اصلاح شود. ⦁ / etc / nginx / sites-available /: دایرکتوری که می توان در آن بلوک های سرور مجازی هر سایت ذخیره شود. Nginx از فایل های پیکربندی موجود در این دیرکتوری استفاده نمی کند مگر اینکه به دیرکتوری sites-enabled مرتبط باشند. به طور معمول ، تمام پیکربندی بلوک سرور مجازی در این دایرکتوری انجام می شود ، و سپس با پیوند دادن به دایرکتوری دیگر فعال می شود. ⦁ / etc / nginx / sites-enabled /: دایرکتوری که در آن بلوکهای سرور مجازی فعال در هر سایت ذخیره میشوند. به طور معمول ، با پیوند دادن به فایلهای پیکربندی موجود در دیرکتوری sites-available ایجاد می شوند. ⦁ / etc / nginx / snippets: این دیرکتوری شامل قطعات پیکربندی است که می توان در جایی دیگر در پیکربندی Nginx گنجانید. بخش های پیکربندی قابل تکرار بالقوه گزینه های خوبی برای تجزیه قطعات هستند. ورودهای مربوط به سرور مجازی ⦁ /var/log/nginx/access.log: هر درخواستی به سرور مجازی وب شما در این فایل log ثبت می شود ، مگر اینکه Nginx به گونه ای پیکربندی شده باشد که کاری غیر از این انجام دهد. ⦁ /var/log/nginx/error.log: هرگونه خطای Nginx در این ورود ثبت می شود. نتیجه اکنون که سرور مجازی وب خود را نصب کرده اید ، گزینه های بسیاری برای نوع محتوا و فناوری هایی که می خواهید از آنها استفاده کنید در اختیار دارید تا یک تجربه غنی تر ایجاد نمایید. اگر مایلید یک پشته برنامه کامل تر بسازید، مقاله نحوه نصب پشته LEMP در اوبونتو 18.04 را بررسی کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:LEMP,Nginx
0 notes
server70-blog · 4 years
Text
نصب توزیع Anaconda پایتون در اوبونتو 20.04
Anaconda یک مدیر بسته منبع آزاد ، مدیر محیط و توزیع زبانهای برنامه نویسی پایتون و R است. معمولاً برای علوم داده ، یادگیری ماشین ، پردازش داده در مقیاس بزرگ ، محاسبات علمی و تحلیل پیش بینی استفاده می شود. Anaconda با ارائه مجموعه ای از بیش از 1000 بسته علمی اطلاعات ، در هر دو نسخه بصورت رایگان و پولی در دسترس است. توزیع Anaconda با ابزار خط فرمان conda ارسال می شود. می توانید با خواندن مطالب رسمی Anaconda ، در مورد Anaconda و conda اطلاعات بیشتری کسب کنید. این آموزش با نصب نسخه پایتون 3 Anaconda روی سرور مجازی اوبونتو 20.04 آشنا میشوید. پیش نیازها قبل از شروع این راهنما ، باید یک کاربر غیر ریشه با امتیازات sudo در سرور مجازی خود تنظیم کنید. شما می توانید با تکمیل راهنمای تنظیم اولیه سرور مجازی Ubuntu 20.04 این کار را انجام دهید. نصب Anaconda بهترین راه برای نصب Anaconda ، دانلود جدیدترین اسکریپت bash نصب کننده Anaconda ، تأیید صحت آن و سپس اجرای آن است. آخرین نسخه Anaconda را برای پایتون 3 در صفحه دانلود Anaconda پیدا کنید. در زمان نوشتن ، آخرین نسخه 2020.02 است ، اما در صورت وجود نسخه جدیدتر باید از نسخه پایدار بعدی استفاده کنید. سپس ، به دیرکتوری / tmp در سرور مجازی خود بروید. این یک دیرکتوری خوب برای دانلود آیتم های موقت است ، مانند اسکریپت bash Anaconda ، که ما پس از اجرا نیازی به آن نداریم. $ cd /tmp برای دانلود پیوندی که از وب سایت Anaconda کپی کرده اید ، از curl استفاده کنید. برای استفاده سریعتر آن را به فایلی به نام anaconda.sh ارسال خواهیم کرد. $ curl https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh –output anaconda.sh اکنون می توانیم صحت داده های نصب کننده را با تأیید هش رمزنگاری از طریق بررسی نهایی SHA-256 بررسی کنیم. ما از دستور sha256sum به همراه نام فایل اسکریپت استفاده خواهیم کرد: $ sha256sum anaconda.sh خروجی دریافت خواهید کرد که شبیه به این است: Output 2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb anaconda.sh باید خروجی را در برابر HASH های موجود در Anaconda با پایتون 3 در صفحه 64 بیتی لینوکس برای نسخه مناسب Anaconda بررسی کنید. تا زمانی که خروجی شما با هشی که در ردیف sha2561 نمایش داده شده مطابقت دارد ، میتوانید ادامه دهید. اکنون می توانیم اسکریپت را اجرا کنیم: $ bash anaconda.sh خروجی زیر را دریافت خواهید کرد: Output Welcome to Anaconda3 2020.02 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>> ENTER را ��رای ادامه فشار دهید و سپس ENTER بزنید تا مجوز را بخوانید. هنگامی که خواندن مجوز به پایان رسید ، از شما خواسته می شود که شرایط مجوز را تأیید کنید: Output Do you approve the license terms? [yes|no] اگر موافق بودید ، بله را تایپ کنید. در این مرحله از شما خواسته می شود که محل نصب را انتخاب کنید. برای پذیرش مکان پیش فرض می توانید ENTER را فشار دهید ، یا برای تغییر آن مکان دیگری را مشخص کنید. Output Anaconda3 will now be installed into this location: /home/sammy/anaconda3 – Press ENTER to confirm the location – Press CTRL-C to abort the installation – Or specify a different location below [/home/sammy/anaconda3] >>> مراحل نصب ادامه خواهد یافت. توجه داشته باشید که ممکن است مدتی طول بکشد. پس از اتمام نصب ، خروجی زیر را دریافت خواهید کرد: Output … Preparing transaction: done Executing transaction: done installation finished. Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>> بله را تایپ کنید تا بتوانید Anaconda3 را مقداردهی اولیه کنید. خروجی دریافت خواهید کرد که تغییرات ایجاد شده در دیرکتوریهای مختلف را بیان می کند. یکی از خطوطی که دریافت میکنید خطی است که از شما برای نصب Anaconda تشکر می کند. Output … Thank you for installing Anaconda3! … اکنون می توانید با وارد کردن فایل ~ / .bashrc ، نصب را فعال کنید: $ source ~/.bashrc پس از انجام این کار ، در محیط برنامه نویسی پایه پیش فرض Anaconda قرار خواهید گرفت و اعلان دستور شما به شرح زیر تغییر می کند: (base) Sammy@ubuntu: ~$ اگرچه Anaconda با این محیط برنامه نویسی پایه پیش فرض همراه است ، اما باید محیط های جداگانه ای برای برنامه های خود ایجاد کنید و آنها را از یکدیگر جدا کنید. می توانید با استفاده از دستور conda ، به عنوان مثال با list ، نصب خود را تأیید کنید: (base) Sammy@ubuntu: ~$ conda list از طریق نصب Anaconda می توانید تمام بسته هایی را که در دسترس دارید دریافت کنید: Output # packages in environment at /home/sammy/anaconda3: # # Name Version Build Channel _ipyw_jlab_nb_ext_conf 0.1.0 py37_0 _libgcc_mutex 0.1 main alabaster 0.7.12 py37_0 anaconda 2020.02 py37_0 … اکنون که Anaconda نصب شده است ، می توانیم به تنظیم محیط های Anaconda بپردازیم. تنظیم محیط های Anaconda محیط های مجازی Anaconda به شما امکان می دهد پروژه هایی را که توسط نسخه های پایتون و بسته های مورد نیاز سازماندهی شده اند ، نگه دارید. برای هر محیط Anaconda که تنظیم کرده اید ، می توانید مشخص کنید که از کدام نسخه Python استفاده شود و می توانید تمام فایل های برنامه نویسی مرتبط خود را در آن دیرکتوری نگه دارید. ابتدا می توانیم بررسی کنیم که کدام نسخه های پایتون برای استفاده در دسترس ما است: (base) Sammy@ubuntu: ~$ conda search “^python$” خروجی با نسخه های مختلف Python که می توانید هدف قرار دهید دریافت می کنید ، از جمله نسخه های Python 3 و Python 2. از آنجا که ما در این آموزش از Anaconda با پایتون 3 استفاده می کنیم ، شما فقط به نسخه های بسته های پایتون 3 دسترسی خواهید داشت. بیایید با استفاده از جدیدترین نسخه Python 3. یک محیط ایجاد کنیم. می توانیم با اختصاص نسخه 3 به آرگومان پایتون به این مهم دست یابیم. محیط را my_env می نامیم ، اما شما بهتر است از یک نام توصیفی برای محیط خود استفاده کنید ، به خصوص اگر از محیط ها برای دسترسی به بیش از یک نسخه Python استفاده می کنید. (base) Sammy@ubuntu: ~$ conda create –name my_env python=3 خروجی با اطلاعاتی درباره موارد دانلود شده و بسته های نصب شده ، دریافت خواهیم کرد و از شما خواسته می شود که y یا n را انتخاب کنید. اگر موافق هستید ، y را تایپ کنید. ابزار conda اکنون بسته های محیط را به دست می آورد و اتمام کار را به شما اطلاع می دهد. با تایپ دستور زیر می توانید محیط جدید خود را فعال کنید: (base) Sammy@ubuntu: ~$ conda activate my_env با فعال کردن محیط تان ، پیشوند اعلان فرمان شما نشان می دهد که شما دیگر در محیط base نیستید ، بلکه در محیط جدیدی هستید که اخیرا ایجاد کرده اید. (base) Sammy@ubuntu: ~$ در داخل محیط می توانید تأیید کنید که از نسخه پایتونی که قصد استفاده از آن را داشتید استفاده می کنید: (base) Sammy@ubuntu: ~$ python –version Output Python 3.8.2 وقتی آماده غیرفعال کردن محیط Anaconda بودید ، می توانید با تایپ کردن دستور زیر این کار را انجام دهید: (base) Sammy@ubuntu: ~$ conda deactivate توجه داشته باشید که برای رسیدن به نتایج مشابه می توانید کلمه source را با . جایگزین کنید. برای هدف قرار دادن نسخه خاص تری از پایتون ، می توانید نسخه خاصی را به آرگومان پایتون منتقل کنید مثلاً 3.5: (base) Sammy@ubuntu: ~$ conda create -n my_env35 python=3.5 می توانید تمام محیط هایی که با این دستور تنظیم کرده اید را بازرسی کنید: (base) Sammy@ubuntu: ~$ conda info –envs Output # conda environments: # base * /home/sammy/anaconda3 my_env /home/sammy/anaconda3/envs/my_env my_env35 /home/sammy/anaconda3/envs/my_env35 ستاره نشانگر محیط فعال فعلی است. هر محیطی که با conda create ایجاد می کنید با چندین بسته پیش فرض همراه است: _libgcc_mutex ca-certificates certifi libedit libffi libgcc-ng libstdcxx-ng ncurses openssl pip python readline setuptools sqlite tk wheel xz zlib با دستور زیر می توانید بسته های اضافی مانند numpy را اضافه کنید: (base) Sammy@ubuntu: ~$ conda install –name my_env35 numpy اگر می دانید که پس از ایجاد ، یک محیط numpy  می خواهید ، می توانید آن را در دستور conda create خود هدف قرار دهید: (base) Sammy@ubuntu: ~$ conda create –name my_env python=3 numpy اگر دیگر در حال کار روی یک پروژه خاص هستید و دیگر نیازی به محیط مرتبط ندارید ، می توانید آن را حذف کنید. برای انجام این کار ، دستور زیر را تایپ کنید: (base) Sammy@ubuntu: ~$ conda remove –name my_env35 –all حال ، هنگامی که فرمان conda info –envs را تایپ می کنید ، محیطی که حذف کرده اید دیگر لیست نمی شود. به روزرسانی Anaconda شما باید به طور مرتب از بروزرسانی Anaconda اطمینان حاصل کنید ، تا با آخرین نسخه های بسته کار کنید. برای انجام این کار ، ابتدا باید ابزار conda را به روز کنید: (base) Sammy@ubuntu: ~$ conda update conda هنگامی که از شما خواسته شد ، y را برای ادامه به روزرسانی تایپ کنید. پس از اتمام بروزرسانی conda ، می توانید توزیع Anaconda را به روز کنید: (base) Sammy@ubuntu: ~$ conda update anaconda دوباره ، هنگامی که از شما خواسته شد ، y را تایپ کنید تا ادامه دهید. این کار اطمینان حاصل خواهد کرد که شما از آخرین نسخه های conda و Anaconda استفاده می کنید. حذف Anaconda اگر دیگر از Anaconda استفاده نمی کنید و متوجه شدید که باید آن را حذف کنید ، باید از ماژول anaconda-cleanشروع کنید ، که هنگام حذف Anaconda ، فایل های پیکربندی را حذف می کند. $ conda install anaconda-clean هنگامی که از شما خواسته شد y را تایپ کنید. پس از نصب ، می توانید دستور زیر را اجرا کنید. قبل از حذف هر یک از شما خواسته می شود y را پاسخ دهید. اگر ترجیح می دهید که هر بار از شما سوال نشود ، –yesرا به پایان فرمان خود را اضافه کنید: $ anaconda-clean با این کار یک پوشه پشتیبان به نام .anaconda_backup در دیرکتوری هوم شما ایجاد می شود: Output Backup directory: /home/sammy/.anaconda_backup/2020-05-06T024432 اکنون با وارد کردن دستور زیر می توانید کل دایرکتوری Anaconda را حذف کنید: $ rm -rf ~/anaconda3 سرانجام می توانید خط PATH را از فایل .bashrc خود که Anaconda اضافه کرده است حذف کنید. برای انجام این کار ، ابتدا یک ویرایشگر متنی مانند nano را باز کنید: $ nano ~/.bashrc سپس به انتهای فایل بروید (در صورتی که آخرین نصب است) یا برای جستجوی Anaconda ،CTRL + W را تایپ کنید. این بلوک Anaconda را حذف یا باطل میکند: /home/sammy/.bashrc … # >>> conda initialize >>> # !! Contents within this block are managed by ‘conda init’ !! __conda_setup=”$(‘/home/sammy/anaconda3/bin/conda’ ‘shell.bash’ ‘hook’ 2> /dev/null)” if [ $? -eq 0 ]; then eval “$__conda_setup” else if [ -f “/home/sammy/anaconda3/etc/profile.d/conda.sh” ]; then . “/home/sammy/anaconda3/etc/profile.d/conda.sh” else export PATH=”/home/sammy/anaconda3/bin:$PATH” fi fi unset __conda_setup # <<< conda initialize <<< وقتی ویرایش فایل را انجام دادید ، CTRL + X را تایپ کنید تا از آن خارج شوید و y را برای ذخیره تغییرات تایپ کنید. اکنون Anaconda از سرور مجازی شما حذف شده است. اگر محیط برنامه نویسی base را غیرفعال نکردید ، می توانید از سرور مجازی خارج شده و مجدداً وارد شوید تا آن را حذف کنید. نتیجه این آموزش شما را با نصب Anaconda ، کار با ابزار خط فرمان conda ، تنظیم محیط ، به روزرسانی Anaconda و حذف Anaconda در صورت عدم نیاز به آن ، آشنا کرد. شما می توانید از Anaconda برای مدیریت بارهای کاری برای علوم داده ، محاسبات علمی ، تجزیه و تحلیل و پردازش داده های بزرگ استفاده کنید. از اینجا ، می توانید آموزش های ما در مورد تجزیه و تحلیل داده ها و یادگیری ماشین را مطالعه تا در مورد ابزارهای مختلف موجود برای استفاده و پروژه هایی که می توانید انجام دهید اطلاعات بیشتری کسب کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Anaconda,bash Anaconda
0 notes
server70-blog · 4 years
Text
نحوه نصب جاوا با Apt در اوبونتو 18.04
توسعه دهنده جاوا (JDK) را با استفاده از apt نصب خواهید کرد. همچنین OpenJDK و بسته های رسمی را از Oracle نصب خواهید کرد. سپس نسخه مورد نظر خود را برای پروژه های تان انتخاب خواهید کرد. پس از اتمام کار ، می توانید از JDK برای توسعه نرم افزار یا استفاده از Java Runtime برای اجرای نرم افزار استفاده کنید. پیش نیازها برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید: • یک سرور مجازی Ubuntu 18.04 که طبق آموزش راهنمای ستاپ اولیه سرور مجازی Ubuntu 18.04 تنظیم شده باشد و شامل یک کاربر sudo غیر ریشه و فایروال باشد. نصب JRE / JDK پیش فرض ساده ترین گزینه برای نصب جاوا استفاده از نسخه بسته بندی شده با اوبونتو است. به طور پیش فرض ، اوبونتو 18.04 شامل OpenJDK نسخه 11 است که متغیری منبع باز از JRE و JDK میباشد. برای نصب این نسخه ، ابتدا ایندکس بسته را به روز کنید: $ sudo apt update سپس ، بررسی کنید که جاوا قبلاً نصب شده باشد: $ java -version اگر جاوا در حال حاضر نصب نشده است ، خروجی زیر را مشاهده خواهید کرد: Output Command ‘java’ not found, but can be installed with: apt install default-jre apt install openjdk-11-jre-headless apt install openjdk-8-jre-headless دستور زیر را برای نصب پیش فرض محیط اجرای جاوا (JRE) اجرا کنید که JRE را از OpenJDK 11 نصب خواهد کرد: $ sudo apt install default-jre JRE به شما امکان می دهد تقریباً تمام نرم افزارهای جاوا را اجرا کنید. با دستور زیر نصب را تأیید کنید: $ java -version خروجی زیر را مشاهده خواهید کرد: Output openjdk version “11.0.7” 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing) برای تهیه و اجرای برخی از نرم افزارهای خاص مبتنی بر جاوا ممکن است علاوه بر JRE به کیت توسعه جاوا (JDK) نیاز داشته باشید. برای نصب JDK ، دستور زیر را اجرا کنید ، که JRE را نیز نصب می کند: $ sudo apt install default-jdk با بررسی نسخه javac ، کامپایلر جاوا ، JDK را نصب کنید: $ javac -version خروجی زیر را مشاهده خواهید کرد: Output javac 11.0.7 بعد ، بیایید ببینیم چگونه JDK و JRE رسمی Oracle را نصب کنیم. نصب Oracle JDK 11 توافق مجوز Oracle برای جاوا اجازه نصب خودکار را از طریق مدیران بسته نمی دهد. برای نصب Oracle JDK ، که نسخه رسمی توزیع شده توسط Oracle است ، باید یک حساب Oracle ایجاد کنید و JDK را به صورت دستی دانلود کنید تا یک مخزن بسته جدید برای نسخه مورد نظر خود اضافه کنید. سپس می توانید با استفاده از apt و با کمک اسکریپت نصب شخص ثالث ، آن را نصب کنید. نسخه JDK’s Oracle که باید دانلود کنید باید با نسخه اسکریپت نصب کننده مطابقت داشته باشد. برای اطلاع از اینکه به کدام نسخه نیاز دارید ، به صفحه oracle-java11-installer مراجعه کنید. بسته بندی مربوط به Bionic را پیدا کنید ، همانطور که در شکل زیر نشان داده شده است: در این تصویر نسخه اسکریپت 11.0.7 است. در این حالت ، به Oracle JDK 11.0.7 نیاز خواهید داشت. نیازی نیست چیزی را از این صفحه دانلود کنید. در ادامه اسکریپت نصب را به وسیله apt دانلود خواهید کرد. سپس به صفحه دانلود ها مراجعه کرده و نسخه مورد نیاز خود را پیدا کنید. بر روی دکمه JDK Download کلیک کنید و به صفحه ای منتقل می شوید که نسخه های موجود را نشان می دهد. روی بسته .tar.gz برای لینوکس کلیک کنید. صفحه ای نمایش داده می شود که از شما می خواهد موافقت نامه مجوز Oracle را بپذیرید. کادر را انتخاب کنید تا توافق نامه مجوز را بپذیرید و دکمه دانلود را فشار دهید. دانلود شما شروع خواهد شد. شاید لازم باشد یک بار دیگر قبل از شروع دانلود به حساب Oracle خود وارد شوید. پس از دانلود فایل ، باید آن را به سرور مجازی خود منتقل کنید. در دستگاه محلی خود ، فایل را روی سرور مجازی خود بارگذاری کنید. در macOS ، لینوکس یا ویندوز که از ساب سیستم ویندوز برای لینوکس استفاده می کند ، از دستور scp برای انتقال فایل به دیرکتوری اصلی کاربر sammy خود استفاده کنید. دستور زیر فرض می کند که شما فایل Oracle JDK را در پوشه دانلود دستگاه محلی خود ذخیره کرده اید: $ scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~ پس از اتمام بارگذاری فایل ، به سرور مجازی خود برگردید و مخزن شخص ثالث را اضافه کنید که به شما در نصب جاوا Oracle کمک می کند. بسته software-properties-common را نصب کنید که دستور add-apt-repository را به سیستم شما اضافه می کند : $ sudo apt install software-properties-common در مرحله بعد ، کلید امضای استفاده شده برای تأیید نرم افزاری را که قصد نصب آن را دارید وارد کنید: $ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys EA8CACC073C3DB2A این خروجی را مشاهده خواهید کرد: Output gpg: key EA8CACC073C3DB2A: public key “Launchpad PPA for Linux Uprising” imported gpg: Total number processed: 1 gpg: imported: 1 سپس از دستور add-apt-repository استفاده کنید تا بتوانید دوباره به لیست منابع بسته خود اضافه کنید: $ sudo add-apt-repository ppa:linuxuprising/java این پیام را مشاهده خواهید کرد: Output Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian. Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required. The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java Created for users of https://www.linuxuprising.com/ Installation instructions (with some tips), feedback, suggestions, bug reports etc.: . . . Press [ENTER] to continue or ctrl-c to cancel adding it برای ادامه نصب ، ENTER را فشار دهید. ممکن است پیامی به صورت no valid OpenPGP data found مشاهده کنید ، اما می توانید با اطمینان ان را نادیده بگیرید. لیست بسته های خود را به روز کنید تا نرم افزار جدید برای نصب در دسترس باشد: $ sudo apt update نصب کننده به دنبال Oracle JDK است که شما در / var / cache / oracle-jdk11-installer-local دانلود کرده اید. این دیرکتوری را ایجاد کنید و بایگانی Oracle JDK را به آنجا جابجا کنید: ⦁ $ sudo mkdir -p /var/cache/oracle-jdk11-installer-local/ ⦁ ⦁ $ sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/ ⦁ در آخر ، بسته را نصب کنید: $ sudo apt install oracle-java11-installer-local نصب کننده ابتدا از شما می خواهد موافقت نامه مجوز Oracle را بپذیرید. توافق نامه را بپذیرید ، سپس نصب کننده، بسته جاوا را اکسترکت و نصب میکند. اکنون ببینیم که چگونه نسخه ای از Java را که می خواهید استفاده کنید انتخاب نمایید. مدیریت جاوا می توانید چندین نصب جاوا روی یک سرور مجازی داشته باشید. با استفاده از دستور update-alternatives می توانید پیکربندی کنید که کدام نسخه به طور پیش فرض در خط فرمان استفاده شود. $ sudo update-alternatives –config java اگر در این آموزش هر دو نسخه جاوا را نصب کنید ، خروجی اینگونه خواهد بود: Output There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ———————————————————— 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode * 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode شماره مرتبط با نسخه جاوا را انتخاب کنید تا به عنوان پیش فرض استفاده شود، یا ENTER را فشار دهید تا تنظیمات فعلی به همان صورت خود باقی بماند. می توانید این کار را برای سایر دستورات جاوا ، مانند کامپایلر (javac) انجام دهید: $ sudo update-alternatives –config javac دستورات دیگری که می توان این دستور را برایشان اجرا کرد شامل موارد زیر است: keytool, javadoc و jarsigner اما به همین فرمان ها محدود نمی شود. تنظیم متغیر محیطی JAVA_HOME بسیاری از برنامه هایی که با استفاده از جاوا نوشته شده اند از متغیر محیط JAVA_HOME برای تعیین محل نصب جاوا استفاده می کنند. برای تنظیم این متغیر محیط ، ابتدا تعیین کنید جاوا در کجا نصب شود. از دستورupdate-alternatives استفاده کنید: $ sudo update-alternatives –config java این دستور هر نصب جاوا را به همراه مسیر نصب آن نشان می دهد: Output There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ———————————————————— 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode * 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode Press <enter> to keep the current choice[*], or type selection number: در این حالت مسیرهای نصب به شرح زیر است: ⦁ OpenJDK 11 در /usr/lib/jvm/java-11-openjdk-amd64/bin/java قرار میگیرد. ⦁ Oracle Java در /usr/lib/jvm/java-11-oracle/jre/bin/java قرار میگیرد. مسیر نصب مورد نظر خود را کپی کنید. سپس با استفاده از nano یا ویرایشگر متن مورد علاقه خود /etc/environment را باز کنید: $ sudo nano /etc/environment در پایان این فایل خط زیر را اضافه کنید ، مطمئن شوید که مسیر هایلایت شده را با مسیر کپی شده خود جایگزین کنید ، اما قسمت /bin را در مسیر درج نکنید: /etc/environment JAVA_HOME=”/usr/lib/jvm/java-11-openjdk-amd64″ با تغییر این فایل مسیر JAVA_HOME برای همه کاربران سیستم شما تنظیم می شود. فایل را ذخیره کرده و از ویرایشگر خارج شوید. اکنون این فایل را مجدد لود کنید تا تغییرات در بخش فعلی شما اعمال شود: $ source /etc/environment تأیید کنید که متغیر محیط تنظیم شده است: $ echo $JAVA_HOME مسیری را که تازه تعیین کرده اید خواهید دید: Output /usr/lib/jvm/java-11-openjdk-amd64 سایر کاربران برای اجرای این تنظیم نیاز به اجرای فرمان source /etc/environment یا خروج از سیستم و ورود دوباره به سیستم دارند. نتیجه در این آموزش چندین نسخه جاوا را نصب کردید و نحوه مدیریت آنها را یاد گرفتید. اکنون می توانید نرم افزاری را نصب کنید که بر روی جاوا اجرا می شود ، مانند Tomcat ، Jetty ، Glassfish ، Cassandra یا Jenkins. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:APT,Java Runtime,OpenJDK
0 notes
server70-blog · 4 years
Text
نحوه نصب Django و تنظیم محیط توسعه در اوبونتو 16.04
Django یک چارچوب وب آزاد و منبع باز است که در پایتون نوشته شده است و از الگوی معماری نرم افزار نمای الگوی مدل (MTV) پیروی می کند. الگوی MTV الگوی  model–view–controller (MVC) در Django است. طبق گفته بنیاد نرم افزار Django ، این مدل تنها منبع قطعی داده های شما است ، view  داده هایی که از طریق یک عملکرد برگشتی Python به یک URL خاص به کاربر نشان داده می شوند ، توصیف می کند و template  چگونگی تولید Django HTML به صورت پویا میباشد. اصول اساسی Django مقیاس پذیری ، قابلیت استفاده مجدد و توسعه سریع است. همچنین به دلیل پایداری چارچوب و کوپلینگ سست آن ، شناخته شده است و باعث می شود اجزای جداگانه از یکدیگر مستقل باشند. برنامه نویسی Don’t repeat yourself (DRY) بخشی جدایی ناپذیر از اصول Django است. در این آموزش محیط توسعه Django را تنظیم خواهیم کرد. ما Python 3، pip3 ، Django و virtualenv را نصب خواهیم کرد تا ابزار لازم برای توسعه برنامه های وب با Django را در اختیار شما قرار دهیم. پیش نیازها یک حساب کاربری غیر ریشه با امتیازات sudo که بر روی یک سرور مجازی Debian یا Ubuntu Linux تنظیم شده باشد. با دنبال کردن و تکمیل ستاپ اولیه سرور مجازی برای Debian 8 یا مراحل 1-4 در ستاپ اولیه سرور مجازی برای آموزش اوبونتو 16.04 می توانید به این پیش نیازها برسید. مرحله 1 – Python و pip را نصب کنید برای نصب پایتون ابتدا باید مخزن محلی APT را به روز کنیم. در پنجره ترمینال خود ، فرمان زیر را وارد خواهیم کرد. توجه داشته باشید که پرچم -y به درخواستهای مربوط به فرآیند ارتقا پاسخهای “بله” می دهد. در صورت تمایل به روزرسانی برای توقف هر اعلان ، پرچم را حذف کنید. ⦁ $ sudo apt-get update && sudo apt-get -y upgrade ⦁ هنگامی که از شما خواسته شد grub-pc را پیکربندی کنید ، می توانید ENTER را فشار دهید تا پیش فرض را بپذیرد ، یا مطابق دلخواه پیکربندی کند. از طرف بنیاد نرم افزار Django استفاده از پایتون 3 توصیه می شود ، بنابراین پس از بروزرسانی همه چیز ، می توانیم پایتون 3 را با استفاده از دستور زیر نصب کنیم: ⦁ $ sudo apt-get install python3 ⦁ برای تأیید نصب موفق پایتون 3 ، یک بررسی نسخه را با دستور python3 اجرا کنید: ⦁ $ python3 -V ⦁ خروجی حاصل شبیه به این است: Output python 3.5.2 اکنون که پایتون 3 را نصب کردیم ، برای نصب بسته هایی از PyPi ، مخزن بسته Python ، به pip نیز احتیاج خواهیم داشت. ⦁ $ sudo apt-get install -y python3-pip ⦁ برای تأیید نصب موفقیت آمیز pip ، دستور زیر را اجرا کنید: ⦁ $ pip3 -V ⦁ باید خروجی مشابه این را ببینید: Output pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5) اکنون که pip نصب کردیم ، این توانایی را داریم که به سرعت بسته های لازم دیگر را برای یک محیط پایتون نصب کنیم. مرحله 2 – virtualenv را نصب کنید virtualenv یک محیط مجازی است که می توانید نرم افزارها و بسته های Python را در یک فضای توسعه یافته نصب کنید ، که این نرم افزار و بسته های نصب شده را از بقیه محیط جهانی دستگاه شما جدا می کند. این جداسازی از تعامل بسته ها یا نرم افزار با یکدیگر جلوگیری می کند. برای نصب virtualenv ، از دستور pip3 استفاده خواهیم کرد ، مانند زیر: ⦁ $ pip3 install virtualenv ⦁ پس از نصب ، یک بررسی نسخه را اجرا کنید تا تأیید کنید که نصب با موفقیت انجام شده است: ⦁ $ virtualenv –version ⦁ باید خروجی زیر یا مشابه آن را ببینیم: Output virtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py با موفقیت virtualenv را نصب کرده اید. در این مرحله ، می توانیم برنامه وب Django و متعلقات نرم افزاری مرتبط با آن را از سایر بسته ها یا پروژه های Python در سیستم خود جدا کنیم. مرحله 3 – Django را نصب کنید سه راه برای نصب Django وجود دارد. ما از روش نصب pip این آموزش استفاده خواهیم کرد ، اما همه گزینه های موجود برای شما را ارجاع می دهیم. • گزینه 1: نصب Django درون یک virtualenv این روش زمانی ایده آل است که نیاز دارید نسخه Django جدا از محیط جهانی سرور مجازی باشد. • گزینه 2: نصب Django از منبع اگر جدیدترین نرم افزار را می خواهید یا چیزی جدیدتر از آنچه مخزن Ubuntu APT شما ارائه می دهد ، می توانید مستقیماً از منبع آن رانصب کنید. توجه داشته باشید که اگر می خواهید نسخه نرم افزار شما به روز باشد ، انتخاب این روش مستلزم توجه و نگهداری مداوم است. • گزینه 3: نصب Django به صورت جهانی با pip روشی که با آن همراه میشویم ، pip 3 است زیرا نصب Django را در سطح جهانی انجام خواهیم داد. ما می خواهیم Django را با استفاده از pip در یک محیط مجازی نصب کنیم. برای راهنمایی بیشتر و اطلاع در مورد راه اندازی و استفاده از محیط های برنامه نویسی ، این آموزش مربوط به تنظیم یک محیط مجازی را بررسی کنید. در دیرکتوری هوم سرور مجازی ، باید دایرکتوری ایجاد کنیم که شامل برنامه Django ما باشد. دستور زیر را اجرا کنید تا دایرکتوری به نام django-apps یا نام دیگری به انتخاب خود ایجاد کنید. سپس به داخل پوشه بروید. ⦁ $ mkdir django-apps ⦁ ⦁ $ cd django-apps درون دیرکتوری django-apps ، محیط مجازی خود را ایجاد کنید. بیایید آن را env بنامیم. ⦁ $ virtualenv env اکنون محیط مجازی را با دستور زیر فعال کنید: ⦁ $ . env/bin/activate ⦁ پس از تغییر پیشوند به (env) مطلع میشوید که فعال شده است ، که بسته به اینکه در کدام دیرکتوری قرار دارید ، مشابه زیر خواهد بود: (env) Sammy@ubuntu:$ در داخل محیط ، بسته Django را با استفاده از pip نصب کنید. نصب Django به ما امکان می دهد برنامه های Django را ایجاد و اجرا کنیم. برای کسب اطلاعات بیشتر در مورد Django ، سری آموزش های ما را در مورد توسعه Django را بخوانید ⦁ (env) Sammy@ubuntu:$ pip install django ⦁ پس از نصب ، با اجرای بررسی نسخه ، نصب Django خود را تأیید کنید: ⦁ (env) Sammy@ubuntu:$ django-admin –version ⦁ نتیجه خروجی به صورت زیر یا مشابه آن خواهد بود: Output 2.2.12 با نصب Django بر روی سرور مجازی تان، می توانیم به سراغ ایجاد یک پروژه آزمایشی برویم تا مطمئن شویم که همه چیز به درستی کار می کند. مرحله 4 – ایجاد یک پروژه تست Django برای تست نصب Django ، یک برنامه وب اسکلتی ایجاد می کنیم. تنظیم قوانین فایروال در مرحله اول ، در صورت وجود ، باید پورت مورد استفاده را در فایروال سرور مجازی خود باز کنیم. اگر از UFW استفاده می کنید (همانطور که در راهنمای راه اندازی سرور مجازی اولیه توضیح داده شده است) ، می توانید پورت را با دستور زیر باز کنید: ⦁ (env) Sammy@ubuntu:$ sudo ufw allow 8000 ⦁ شروع پروژه اکنون می توانیم با استفاده از django-admin ، ابزار خط فرمان برای کارهای مدیریتی در پایتون ، برنامه ای تولید کنیم. سپس می توانیم از دستور startproject برای ایجاد ساختار دایرکتوری پروژه برای وب سایت تستی خود استفاده کنیم. در حالی که در دیرکتوری برنامه django هستید ، دستور زیر ر�� اجرا کنید: ⦁ (env) Sammy@ubuntu:$ django-admin startproject testsite ⦁ توجه: اجرای دستور django-admin startproject <projectname> ، نام دایرکتوری پروژه و بسته پروژه را <projectname> می نامد و پروژه را در دایرکتوری که در آن فرمان اجرا شده است ، ایجاد می کند. اگر پارامتر <destination> اختیاری ارائه شود ، Django از دیرکتوری مقصد ارائه شده به عنوان دایرکتوری پروژه استفاده می کند ، و management.py و بسته پروژه را درون آن ایجاد می کند. حال می توانیم ببینیم که چه فایل های پروژه ای به تازگی ساخته شده اند. به فهرست راهنمای testite بروید و سپس محتویات آن دیرکتوری را فهرست کنید تا ببینید چه فایل هایی ایجاد شده اند: ⦁ (env) Sammy@ubuntu:$ cd testsite ⦁ ⦁ (env) Sammy@ubuntu:$ ls ⦁ Output manage.py testsite خروجی را مشاهده خواهید کرد که نشان می دهد این دایرکتوری حاوی فایلی به نام manage.py و پوشه ای به نام testsite است. فایل manage.py شبیه django-admin است و بسته پروژه را در sys.path قرار می دهد. همچنین متغیر محیط DJANGO_SETTINGS_MODULE را تنظیم می کند تا به فایل تنظیمات پروژه شما نشان دهد. با اجرای دستور less مانند زیر می توانید اسکریپت manage.py را در ترمینال خود مشاهده کنید: ⦁ (env) Sammy@ubuntu:$ less manage.py ⦁ هنگامی که خواندن اسکریپت را تمام کردید ، برای خروج از فایل ، Q را فشار دهید. اکنون برای مشاهده سایر فایل های ایجاد شده به دایرکتوری Testite بروید: ⦁ (env) Sammy@ubuntu:$ cd testsite/ ⦁ سپس دستور زیر را برای لیست کردن محتوای دیرکتوری اجرا کنید: ⦁ (env) Sammy@ubuntu:$ ls ⦁ چهار فایل را مشاهده خواهید کرد: Output __init__.py settings.py urls.py wsgi.py بیایید ببینیم هر یک از این فایل ها چگونه اند: ⦁ __init__.py به عنوان نقطه ورود پروژه Python شما عمل می کند. ⦁ settings.py تنظیمات نصب Django شما را توصیف می کند و به Django اطلاع می دهد که کدام تنظیمات در دسترس است. ⦁ urls.py حاوی لیست urlpatterns است ، که URL ها را به نمای آنها مسیریابی و نگاشت می کند. ⦁ wsgi.py شامل پیکربندی مربوط به رابط گیت وب سرور مجازی است. رابط گیت وب سرور مجازی (WSGI) استاندارد پلتفرم پایتون برای استقرار سرور مجازی ها و برنامه های وب است. توجه: اگرچه یک فایل پیش فرض ایجاد شده است ، اما شما هنوز هم می توانید wsgi.py را در هر زمان متناسب با نیازهای استقرار خود تغییر دهید. وب سایت خود را شروع و مشاهده کنید اکنون می توانیم سرور مجازی را راه اندازی کنیم و با اجرای دستور runserver ، وب سایت را بر روی هاست و پورت تعیین شده مشاهده کنیم. باید آدرس IP سرور مجازی شما را به لیست ALLOWED_HOSTS در فایل settings.py واقع در ~ / test_django_app / Testite / Testite / اضافه کنیم. همانطور که در مقاله های Django گفته شد ، متغیر ALLOWED_HOSTS شامل “لیستی از رشته های نماینده هاست / دامنه هایی است که این سایت Django می تواند ارائه کند. این یک اقدام امنیتی برای جلوگیری از حملات هدر هاست HTTP است ، که حتی در بسیاری از تنظیمات سرور مجازی وب به ظاهر بی خطر امکان پذیر است. ” برای افزودن آدرس IP می توانید از ویرایشگر متن مورد علاقه خود استفاده کنید. به عنوان مثال ، اگر از nano استفاده می کنید ، دستور زیر را به سادگی اجرا کنید: ⦁ (env) Sammy@ubuntu:$ nano ~/django-apps/testsite/testsite/settings.py ⦁ پس از اجرای فرمان ، بهتر است به بخش مجاز هاست ها بروید و آدرس IP سرور مجازی خود را درون براکت ها با یک یا دو کاما اضافه کنید. settings.py “”” Django settings for testsite project. Generated by ‘django-admin startproject’ using Django 2.0. … “”” … # SECURITY WARNING: don’t run with debug turned on in production! DEBUG = True # Edit the line below with your server IP address ALLOWED_HOSTS = [‘your-server-ip’] … می توانید با نگه داشتن کلیدهای CTRL + x و سپس فشار دادن کلید y ، تغییرات را ذخیره کنید و از nano خارج شوید. با انجام این کار ، حتماً به دایرکتوری که management.py در آن قرار دارد بروید: ⦁ (env) Sammy@ubuntu:$ cd ~/django-apps/testsite/ ⦁ اکنون در دستور زیر your-server-ip را با IP سرور مجازی خود جایگزین کنید: ⦁ (env) Sammy@ubuntu:$ python manage.py runserver your-server-ip:8000 ⦁ در آخر ، می توانید به لینک زیر بروید تا ببینید وب سایت اسکلتی شما چگونه است ، دوباره متن هایلایت شده را با IP واقعی سرور مجازی خود جایگزین کنید: http://your-server-ip:8000/ پس از لود صفحه ، یک صفحه وب دریافت خواهید کرد که مشابه زیر است: این تأیید می کند که Django به درستی نصب شده است و پروژه آزمایش ما به درستی کار می کند. هنگامی که آزمایش برنامه تان به پایان رسید ، می توانید CTRL + C را فشار دهید تا دستور Runnerver متوقف شود. با این کار به محیط برنامه نویسی خود باز خواهید گشت. هنگامی که آماده ترک محیط Python خود هستید ، می توانید دستور غیرفعال کردن را اجرا کنید: ⦁ (env) Sammy@ubuntu:$ deactivate ⦁ غیرفعال کردن محیط برنامه نویسی، شما را به سمت فرمان نهایی ترمینال باز می گرداند. نتیجه در این آموزش شما با موفقیت آخرین نسخه پایتون 3 که از طریق مخزن Ubuntu APT در دسترس شماست ، به روزرسانی کرده اید. همچنین pip 3 ، virtualenv و django را نصب کردید. اکنون ابزارهای مورد نیاز برای شروع ساخت برنامه های وب Django را در اختیار دارید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Debian,Django,python3,Ubuntu APT,Ubuntu Linux
0 notes
server70-blog · 4 years
Text
نصب جنگو و تنظیم محیط توسعه در اوبونتو 20.04
جنگو یک چارچوب وب آزاد و منبع باز است که در پایتون نوشته شده است و اصول اصلی آن مقیاس پذیری ، قابلیت استفاده مجدد و توسعه سریع است. همچنین به دلیل قوام چارچوب و جفت شدن سست آن ، شناخته شده است و باعث می شود اجزای جداگانه از یکدیگر مستقل باشند. در این آموزش ، ما یک محیط Django را برای اهداف توسعه بر روی سرور مجازی Ubuntu 20.04 تنظیم خواهیم کرد. برای یک وب سایت زنده ، ملاحظات دیگری از جمله اتصال به یک بانک اطلاعاتی ، تنظیم نام دامنه و اضافه کردن لایه هایی از امنیت را دراختیار خواهید داشت. ما آموزشهای مختلفی در مورد جنگو داریم که می توانید در ساختن برچسب “جنگو” از شما در حمایت از شما کمک کند. پیش نیازه�� برای تکمیل این آموزش ، شما نیاز دارید: • یک حساب کاربری غیر ریشه با امتیازات sudo ، که می توانید با دنبال کردن و تکمیل تنظیم اولیه سرور مجازی برای آموزش اوبونتو 20.04 به آن برسید. • پایتون 3 با یک محیط برنامه نویسی مجازی تنظیم شده است. می توانید این کار را از طریق راهنمای نصب Python 3 دریافت کنید. مرحله 1 – نصب جنگو روش های مختلفی برای نصب Django وجود دارد ، مدیر بسته بسته پایتون در یک محیط مجازی. در حالی که در فهرست اصلی سرور مجازی هستیم ، دایرکتوری ایجاد خواهیم کرد که شامل برنامه Django ما باشد. دستور زیر را اجرا کنید تا دایرکتوری به نام django-apps یا نام دیگری از انتخاب خود ایجاد کنید. سپس به پوشه بروید. در حالی که درون فهرست برنامه django هستید ، محیط مجازی خود را ایجاد کنید. ما آن را محیط عمومی می نامیم ، اما شما باید از اسمی استفاده کنید که برای شما و پروژه شما معنی دار باشد. اکنون محیط مجازی را با دستور زیر فعال کنید: شما می دانید پس از تغییر پیشوند به (env) فعال می شود ، بسته به نوع فهرست شما در این لیست شبیه به موارد زیر خواهد بود: در داخل محیط ، بسته Django را با استفاده از pip نصب کنید. نصب Django به ما امکان می دهد برنامه های Django را ایجاد و اجرا کنیم. پس از نصب ، با اجرای نسخه نسخه ، نصب Django خود را تأیید کنید: این یا چیزی مشابه نتیجه خروجی حاصل خواهد شد: با نصب Django بر روی سرور مجازی شما ، می توانیم به سمت ایجاد یک پروژه آزمایشی حرکت کنیم تا مطمئن شویم که همه چیز به درستی کار می کند. ما یک برنامه وب اسکلت ایجاد خواهیم کرد. مرحله 2 – تنظیمات تنظیمات فایروال اگر آموزش اولیه راه اندازی سرور مجازی ما را دنبال کرده اید یا فایروال در سرور مجازی خود را اجرا می کنید ، باید پورت مورد نظر را در فایروال سرور مجازی خود باز کنیم. برای فایروال UFW می توانید پورت را با دستور زیر باز کنید: اگر از vpsgol Firewalls استفاده می کنید ، می توانید HTTP را از بین قوانین ورودی انتخاب کنید. می توانید در مورد vpsgol Firewalls بیشتر بخوانید و با تغییر قوانین ورودی ، قوانینی را برای آنها ایجاد کنید. مرحله 3 – شروع پروژه اکنون می توانیم با استفاده از django-admin ، ابزار خط فرمان برای کارهای مدیریتی در پایتون ، برنامه ای تولید کنیم. سپس می توانیم از دستور startproject برای ایجاد ساختار دایرکتوری پروژه برای وب سایت آزمون خود استفاده کنیم. در حالی که در فهرست برنامه django هستید ، دستور زیر را اجرا کنید: توجه: در حال اجرای دستور django-admin startproject <projectname> ، نام دایرکتوری پروژه و بسته پروژه را <projectname> می نامید و پروژه را در دایرکتوری که در آن فرمان اجرا شده است ، ایجاد می کنید. اگر پارامتر <destination> اختیاری ارائه شود ، جنگو از فهرست مقصد ارائه شده به عنوان دایرکتوری پروژه استفاده می کند ، و management.py و بسته پروژه را درون آن ایجاد می کند. حال می توانیم ببینیم که پرونده های پروژه به تازگی ساخته شده اند. به فهرست راهنمای testite بروید و سپس محتویات آن فهرست را فهرست کنید تا ببینید چه پرونده هایی ایجاد شده اند: شما خروجی را مشاهده خواهید کرد که نشان می دهد این دایرکتوری حاوی پرونده ای به نام management.py و پوشه ای به نام testite است. پرونده management.py شبیه django-admin است و بسته پروژه را در sys.path قرار می دهد. این همچنین متغیر محیط DJANGO_SETTINGS_MODULE را تنظیم می کند تا به پرونده تنظیمات پروژه شما نشان دهد. با اجرای دستور کمتر مانند می توانید اسکریپت management.py را در ترمینال خود مشاهده کنید: هنگامی که خواندن اسکریپت را تمام کردید ، برای ترک پرونده ، Q را فشار دهید. اکنون برای مشاهده سایر پرونده های ایجاد شده به دایرکتوری Testite بروید: سپس دستور زیر را برای لیست کردن محتوای فهرست راهنما اجرا کنید: چهار پرونده را مشاهده خواهید کرد: بیایید به آنچه که هر یک از این پرونده ها هستند بپردازیم: • __init__.py به عنوان نقطه ورود پروژه Python شما عمل می کند. • asgi.py شامل پیکربندی مربوط به استقرار اختیاری در Asynchronous Server Gateway Interface یا ASGI است که استانداردی را برای برنامه های همگام و ناهمزمان فراهم می کند ، و جانشین WSGI محسوب می شود (به تصویر زیر مراجعه کنید). • settings.py تنظیمات نصب Django شما را توصیف می کند و به Django اجازه می دهد تا بدانید که کدام تنظیمات در دسترس است. • urls.py حاوی لیست urlpatterns است ، که URL ها را به نمای آنها مسیریابی و نقشه می کند. • wsgi.py شامل پیکربندی مربوط به رابط Gateway Web Server یا WSGI است که استانداردی را برای برنامه های همزمان Python فراهم می کند. توجه: اگرچه پرونده های پیش فرض تولید می شوند ، شما هنوز هم می توانید فایل های asgi.py یا wsgi.py را هر وقت بخواهید متناسب با نیازهای استقرار خود تغییر دهید. مرحله 4 – پیکربندی جنگو اکنون می توانیم سرور مجازی را راه اندازی کنیم و با اجرای دستور runserver ، وب سایت را بر روی هاست و پورت تعیین شده مشاهده کنیم. ما باید آدرس IP سرور مجازی شما را به لیست ALLOWED_HOSTS در پرونده settings.py واقع در ~ / test_django_app / Testite / Testite / اضافه کنیم. همانطور که در اسناد جنگو گفته شد ، متغیر ALLOWED_HOSTS شامل “لیستی از رشته های نماینده میزبان / دامنه هایی است که این سایت جنگو می تواند در خدمت آنها باشد. این یک اقدام امنیتی برای جلوگیری از حملات هدر HTTP Host است ، که حتی در بسیاری از تنظیمات سرور مجازی وب به ظاهر بی خطر امکان پذیر است. ” برای افزودن آدرس IP می توانید از ویرایشگر متن مورد علاقه خود استفاده کنید. به عنوان مثال ، اگر از nano استفاده می کنید ، دستور زیر را اجرا کنید: پس از اجرای فرمان ، می خواهید به بخش مجاز میزبان ها از سند بروید و آدرس IP سرور مجازی خود را درون براکت های مربع با قیمت های یک یا دو به اضافه کنید. می توانید با نگه داشتن کلیدهای CTRL + x و سپس فشار دادن کلید y ، تغییر و خروج نانو را ذخیره کنید. در مرحله بعد ، ما به دسترسی به برنامه وب خود از طریق یک مرورگر ادامه خواهیم داد. در آخر ، اجازه دهید یک کاربر اداری ایجاد کنیم تا بتوانید از رابط مدیر Djano استفاده کنید. بیایید این کار را با دستور Creatuperuser انجام دهیم: از شما خواسته می شود یک نام کاربری ، یک آدرس ایمیل و یک رمز عبور برای کاربر خود دریافت کنید. مرحله 5 – دسترسی به برنامه وب Django با پیکربندی کامل ما ، حتماً به دایرکتوری که در آن management.py قرار دارد بروید: اکنون دستور زیر را جایگزین متن سرور مجازی-IP خود با IP سرور مجازی خود کنید: در آخر ، می توانید به پیوند زیر بروید تا ببینید وب سایت اسکلت شما چگونه است ، دوباره متن برجسته شده را با IP واقعی سرور مجازی خود جایگزین کنید: پس از بارگیری صفحه ، موارد زیر را مشاهده خواهید کرد: این تأیید می کند که Django به درستی نصب شده است و پروژه آزمایش ما به درستی کار می کند. برای دسترسی به رابط سرور مجازی ، / مدیر / به انتهای آدرس اینترنتی خود اضافه کنید: با این کار شما به صفحه ورود به سیستم می روید: اگر نام کاربری و رمز عبوری را که به تازگی ایجاد کرده اید وارد کنید ، به بخش اصلی مدیر سایت دسترسی خواهید داشت: برای کسب اطلاعات بیشتر در مورد کار با رابط کاربری Django ، لطفاً به “چگونه می توان رابط کاربری Django Admin را فعال و وصل کرد.” هنگامی که شما با آزمایش برنامه خود به پایان رسیدید ، می توانید CTRL + C را فشار دهید تا دستور Runnerver متوقف شود. این شما را به محیط برنامه نویسی شما باز می گرداند. هنگامی که آماده ترک محیط Python خود هستید ، می توانید دستور غیرفعال کردن را اجرا کنید: غیرفعال کردن محیط برنامه نویسی شما را به سمت فرمان نهایی ترمینال باز می گرداند. نتیجه در این آموزش شما با موفقیت Django را نصب کرده اید و یک محیط توسعه را برای شروع کار بر روی برنامه Django خود تنظیم کرده اید. اکنون پایه و اساس لازم برای شروع کار در ساخت برنامه های وب Django را دارید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان–
0 notes
server70-blog · 4 years
Text
نحوه ایجاد سرور Minecraft در اوبونتو 18.04
Minecraft یک بازی ویدیویی محبوب sandbox است. در ابتدا در سال 2009 منتشر شد ، و امکان ساخت ، جستجو ، دستکاری ، و زنده ماندن در جهان تولید شده در بلوک سه بعدی را فراهم میکند. از اواخر سال 2019 ، به دومین بازی ویدیویی پرفروش در تمام دوران تبدیل شد. در این آموزش سرور مجازی Minecraft خود را ایجاد خواهید کرد تا با دوستانتان بتوانید بازی کنید. به طور خاص ، بسته های نرم افزاری لازم را برای اجرای Minecraft ، پیکربندی سرور مجازی برای اجرا ، و سپس استقرار بازی نصب خواهید کرد. در این آموزش از نسخه جاوا Minecraft استفاده شده است. اگر نسخه Minecraft خود را از طریق Microsoft App Store خریداری کرده باشید ، نمی توانید به این سرور مجازی وصل شوید. اکثر نسخه های Minecraft خریداری شده در کنسول های بازی مانند PlayStation 4 ،Xbox One یا Nintendo Switch نیز نسخه مایکروسافت Minecraft هستند. این کنسول ها همچنین قادر به اتصال به سرور مجازی ساخته شده در این آموزش نیستند. می توانید نسخه جاوا Minecraft را از اینجا دریافت کنید. پیش نیازها برای دنبال کردن این راهنما ، به موارد زیر نیاز دارید: ⦁ سرور مجازی ی با نصب جدید اوبونتو 18.04 ، کاربر غیر ریشه با امتیازات sudo و SSH فعال شده. برای راه اندازی سرور مجازی خود و انجام این مراحل می توانید این راهنما را دنبال کنید. Minecraft می تواند منابع فشرده ای داشته باشد ، بنابراین هنگام انتخاب اندازه سرور مجازی خود ، این را بخاطر بسپارید. ⦁ یک کپی از Minecraft Java Edition که روی یک دستگاه محلی Mac ، Windows یا Linux نصب شده است. مرحله 1 – نصب بسته های نرم افزاری لازم و پیکربندی فایروال پس از مقداردهی اولیه سرور مجازی ، اولین قدم شما نصب جاوا میباشد. برای اجرای Minecraft به آن احتیاج خواهید داشت. ایندکس بسته بندی را برای مدیر بسته APT به روز کنید: ⦁ $ sudo apt update ⦁ در مرحله بعد ، نسخه OpenJDK 8 جاوا ، به طور خاص JRE را نصب کنید. این یک نسخه حداقل از جاوا است که پشتیبانی از برنامه های GUI را از بین می برد. این ویژگی آن را برای اجرای برنامه های جاوا بر روی سرور مجازی ایده آل میکند: ⦁ $ sudo apt install openjdk-8-jre-headless ⦁ همچنین برای ایجاد بخش های متمایز سرور مجازی باید از نرم افزاری به نام screen  استفاده کنید. screen  به شما اجازه می دهد تا یک بخش پایانه ایجاد کرده و از آن جدا شوید و اجازه دهید روند کار روی آن شروع شود. این مسئله از این حیث مهم است که اگر می خواستید سرور مجازی خود را راه اندازی کنید و سپس ترمینال خود را ببندید ، این کار باعث می شود بخش از بین برود و سرور مجازی شما متوقف شود. اکنون screen  را نصب کنید: ⦁ $ sudo apt install screen ⦁ اکنون که بسته های خود را نصب کردید ، باید فایروال را فعال کنیم تا ترافیک به سرور مجازی Minecraft وارد شود. در تنظیمات اولیه سرور مجازی که انجام داده اید ، فقط اجازه عبور از SSH را داده اید. اکنون باید اجازه دهید تا ترافیک از طریق پورت 25565 وارد شود ، که پورت پیش فرض مورد استفاده Minecraft برای اجازه اتصال است. با اجرای دستور زیر ، قانون فایروال لازم را اضافه کنید: ⦁ $ sudo ufw allow 25565 ⦁ اکنون که جاوا را نصب کرده اید و فایروال خود را به درستی پیکربندی کرده است ، سرور مجازی Minecraft را از وب سایت Minecraft دانلود خواهید کرد. مرحله 2 – دانلود آخرین نسخه Minecraft حال باید نسخه فعلی سرور مجازی Minecraft را دانلود کنید. می توانید با رفتن به وب سایت Minecraft و کپی کردن لینکی تحت عنوان Download minecraft_server.X.X.X.jar ، که در آن X آخرین نسخه سرور است ، این کار را انجام دهید. هم اکنون می توانید از wget و لینک کپی شده برای دانلود سرور مجازی استفاده کنید: ⦁ $ wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar ⦁ اگر قصد دارید سرور مجازی Minecraft خود را به روزرسانی کنید ، یا اگر می خواهید نسخه های مختلف Minecraft را اجرا کنید ، سرور مجازی دانلود شده را به minecraft_server_1.15.2.jar تغییر نام دهید ، که مطابق با شماره های نسخه هایلایت شده با هر نسخه ای که تازه دانلود کرده اید: ⦁ $ mv server.jar minecraft_server_1.15.2.jar ⦁ اگر می خواهید نسخه قدیمی تر Minecraft را دانلود کنید ، می توانید آنها را در mcversions.net بایگانی کنید. اما این آموزش بر آخرین نسخه فعلی تمرکز خواهد کرد. اکنون که دانلود را انجام داده اید، پیکربندی سرور مجازی Minecraft خود را شروع خواهیم کرد. مرحله 3 – پیکربندی و اجرای سرور مجازی Minecraft اکنون که Minecraft jar را دانلود کردید ، آماده اجرای آن هستید. ابتدا با اجرای دستور screen  یک بخش screen را شروع کنید: ⦁ $ screen ⦁ پس از خواندن بنری که ظاهر شده است ، نوار SPACE را فشار دهید. screen به شما یک بخش ترمینال مانند حالت عادی ارائه می دهد. این بخش اکنون قابل جدا شدن است ، به این معنی که می توانید یک فرمان را از اینجا شروع کنید و آن را اجرا کنید. اکنون می توانید پیکربندی اولیه خود را انجام دهید. وقتی این دستور بعدی با خطا مواجه میشود، نگران نشوید. Minecraft نصب خود را از این طریق طراحی کرده است که کاربران ابتدا باید موافقت نامه مجوز شرکت را قبول کنند. این کار را در ادامه انجام خواهید داد: ⦁ $ java -Xms1024M -Xmx1024M -jar minecraft_server_1.15.2.jar nogui ⦁ قبل از بررسی خروجی این دستور ، اجازه دهید نگاهی دقیق تر به همه این آرگومان های خط فرمان بیندازیم، که سرور مجازی شما را تنظیم میکند: ⦁ Xms1024M – سرور مجازی را پیکربندی می کند تا با اجرای 1024مگابایت یا 1 گیگابایت رم شروع به کار کند. اگر می خواهید سرور مجازی شما با RAM بیشتری شروع کند ، می توانید این حد را بالا ببرید. هم M برای مگابایت و هم G برای گیگابایت گزینه های پشتیبانی شده هستند. به عنوان مثال: Xms2G سرور را با 2 گیگابایت رم شروع می کند. ⦁ Xmx1024M – سرور مجازی را برای ما پیکربندی می کند، حداکثر 1024مگابایت رم . اگر می خواهید سرور مجازی تان در سایز بزرگتری اجرا شود و به بازیکنان بیشتری اجازه دهد، یا اگر احساس می کنید که سرور شما به کندی کار می کند می توانید این حد را افزایش دهید . ⦁ jar – این پرچم مشخص می کند که کدام فایل jar سرور مجازی اجرا شود. ⦁ nogui – به سرور مجازی می گوید که GUI را راه اندازی نکند زیرا یک سرور مجازی است ، و شما رابط کاربری گرافیکی ندارید. اولین باری که این دستور را اجرا می کنید ، که به طور معمول سرور مجازی خود را راه اندازی می کند ، خطای زیر را ایجاد می کند: Output [22:05:31] [22:05:31] [main/ERROR]: Failed to load properties from file: server.properties [22:05:31] [main/WARN]: Failed to load eula.txt [22:05:31] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info. این خطاها به این دلیل ایجاد شده اند که سرور مجازی نمی تواند دو فایل لازم برای اجرا را پیدا کند:EULA (توافق نامه مجوز کاربر نهایی) ، موجود در eula.txt ، و فایل پیکربندی server.properties. خوشبختانه از آنجا که سرور مجازی قادر به یافتن این فایل ها نبود ، آنها را در دیرکتوری کاری فعلی شما ایجاد کرد. ابتدا ، eula.txt را در nano یا ویرایشگر متن مورد علاقه خود باز کنید: ⦁ $ nano eula.txt ⦁ در داخل این فایل ، پیوندی با Minecraft EULA مشاهده خواهید کرد. URL را کپی کنید. ~/eula.txt #By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Tue Mar 24 22:05:31 UTC 2020 eula=false URL را در مرورگر وب خود باز کنید و توافق نامه را بخوانید. سپس به ویرایشگر متن خود بازگردید و آخرین خط را در eula.txt پیدا کنید. در اینجا ، eula = false را به eula = true تغییر دهید. اکنون فایل را ذخیره کنید و ببندید. اکنون که EULA را پذیرفتید ، زمان آن رسیده است که سرور مجازی را با مشخصات خود پیکربندی کنید. در دیرکتوری کاری فعلی خود ، فایل جدید server.properties را نیز پیدا خواهید کرد. این فایل شامل همه گزینه های پیکربندی سرور مجازی Minecraft شما است. می توانید لیست مفصلی از کلیه ویژگی های سرور مجازی را در Official Minecraft Wiki پیدا کنید. قبل از شروع سرور مجازی خود ، این فایل را با تنظیمات دلخواه خود تغییر دهید. این آموزش خصوصیات اساسی را شامل می شود: ⦁ $ nano server.properties ⦁ فایل شما به این صورت ظاهر می شود: ~/server.properties #Minecraft server properties #Thu Apr 30 23:42:29 UTC 2020 spawn-protection=16 max-tick-time=60000 query.port=25565 generator-settings= force-gamemode=false allow-nether=true enforce-whitelist=false gamemode=survival broadcast-console-to-ops=true enable-query=false player-idle-timeout=0 difficulty=easy spawn-monsters=true broadcast-rcon-to-ops=true op-permission-level=4 pvp=true snooper-enabled=true level-type=default hardcore=false enable-command-block=false max-players=20 network-compression-threshold=256 resource-pack-sha1= max-world-size=29999984 function-permission-level=2 rcon.port=25575 server-port=25565 server-ip= spawn-npcs=true allow-flight=false level-name=world view-distance=10 resource-pack= spawn-animals=true white-list=false rcon.password= generate-structures=true online-mode=true max-build-height=256 level-seed= prevent-proxy-connections=false use-native-transport=true motd=A Minecraft Server enable-rcon=false بیایید نگاهی دقیق تر به برخی از مهمترین خصوصیات این لیست بیاندازیم: ⦁ difficulty (پیش فرض روی easy است) – سطح دشواری بازی را تعیین می کند ، از جمله اینکه چه میزان آسیب ایجاد شود و المان ها چگونه روی بازیکن شما تأثیر بگذارند. گزینه های موجود peaceful, easy, normal, و hard به ترتیب به معنی صلح آمیز ، آسان ، عادی و سخت هستند. ⦁ gamemode (پیش فرض روی survival قرار دارد) – این ویژگی حالت بازی را تنظیم می کند. گزینه ها شامل survival, creative,adventure, و spectator به معنی نجات ، خلاق ، ماجراجویی و تماشاگر هستند. ⦁ level-name (پیش فرض روی world) – نام سرور مجازی شما را نشان می دهد که در کلاینت ظاهر می شود. ممکن است نیاز به گذر از کاراکترهایی مانند آپوستروف با بک اسلش ( /) باشد. ⦁ motd (پیش فرض A Minecraft Server است) – پیامی که در لیست سرور مجازی کلاینت Minecraft نمایش داده می شود. ⦁ pvp (پیش فرض روی true) – بازیکن را در مقابل مبارزات فعال می کند. در صورت تنظیم روی true ، بازیکنان قادر به درگیری و آسیب رساندن به یکدیگر خواهند بود. پس از تنظیم گزینه های مورد نظر ، فایل را ذخیره کنید و ببندید. اکنون که EULA را به true تغییر داده و تنظیمات خود را پیکربندی کرده اید ، می توانید سرور مجازی خود را با موفقیت شروع کنید. مانند آخرین بار ، بیایید سرور مجازی را با 1024مگابایت رم شروع کنیم. در حال حاضر ، بیایید به Minecraft امکان استفاده تا 4 گیگ رم را در صورت نیاز اعطا کنیم. به یاد داشته باشید ، میتوانید این شماره را متناسب با محدودیت های سرور مجازی یا نیازهای کاربر خود تنظیم می کنید: ⦁ $ java -Xms1024M -Xmx4G -jar minecraft_server_1.15.2.jar nogui ⦁ به مقدمات چند لحظه زمان دهید. به زودی سرور مجازی جدید Minecraft شما تولید خروجی شبیه به این را آغاز می کند: Output [21:08:14] [Server thread/INFO]: Starting minecraft server version 1.15.2 [21:08:14] [Server thread/INFO]: Loading properties [21:08:14] [Server thread/INFO]: Default game type: SURVIVAL [21:08:14] [Server thread/INFO]: Generating keypair [21:08:15] [Server thread/INFO]: Starting minecraft server on *:25565 پس از به روزرسانی و راه اندازی سرور مجازی ، خروجی زیر را مشاهده خواهید کرد: Output [21:15:37] [Server thread/INFO]: Done (30.762s)! For help, type “help” اکنون سرور مجازی شما در حال اجرا است و شما به صفحه کنترل ادمین سرور مجازی وارد شده اید. اکنون help را تایپ کنید: [21:15:37] [server thread/INFO] : help خروجی مانند این ظاهر می شود: Output [21:15:37] [Server thread/INFO]: /advancement (grant|revoke) [21:15:37] [Server thread/INFO]: /ban <targets> [<reason>] [21:15:37] [Server thread/INFO]: /ban-ip <target> [<reason>] [21:15:37] [Server thread/INFO]: /banlist [ips|players] … از این ترمینال می توانید دستورات ادمین را اجرا کرده و سرور مجازی Minecraft خود را کنترل کنید. اکنون بیایید از screen  استفاده کنیم تا سرور مجازی جدید شما، حتی پس از ورود به سیستم در حال اجرا باشد. سپس می توانید به کلاینت Minecraft خود متصل شوید و یک بازی جدید را شروع کنید. مرحله 4 – در حال اجرا نگه داشتن سرور مجازی اکنون که سرور مجازی خود را در حال اجرا دارید ، می خواهید که حتی پس از قطع شدن از بخش SSH خود ، همچنان کار خود را ادامه دهد. از آنجا که قبلاً از screen  استفاده کرده اید ، می توانید با فشار دادن Ctrl + A + Dاز این بخش جدا شوید. اکنون به پوسته اصلی خود برگشته اید. برای دیدن همه بخ هاش screen خود این دستور را اجرا کنید: ⦁ $ screen -list ⦁ یک خروجی با شناسه بخش خود دریافت خواهید کرد ، که باید آن بخش را از سر بگیرید: Output There is a screen on: 26653.pts-0.minecraft (03/25/20 21:18:31) (Detached) 1 Socket in /run/screen/S-root. برای از سرگیری بخش ، پرچم -r را به فرمان screen  وارد کنید و سپس شناسه بخش خود را وارد کنید: ⦁ $ screen -r 26653 ⦁ هنگامی که آماده خروج از سرور مجازی خود هستید ، حتماً با زدن Ctrl + A + D از بخش جدا شوید و سپس از سیستم خارج شوید. مرحله 5 – اتصال به سرور مجازی تان از طریق کلاینت Minecraft اکنون که سرور مجازی شما در حال کار است ، اجازه دهید از طریق کلاینت Minecraft به آن وصل شویم. سپس می توانید بازی کنید! کپی خود را از Minecraft Java Edition راه اندازی کنید و Multiplayer را از منو انتخاب کنید. در مرحله بعد ، برای اتصال به یک سرور مجازی نیاز دارید ، بنابراین بر روی دکمه Add Server کلیک کنید. در صفحه ویرایش اطلاعات سرور مجازی که نمایش داده میشود ، نامی به سرور مجازی خود بدهید و در آدرس IP سرور مجازی خود آن را تایپ کنید. این همان آدرس IP است که برای اتصال از طریق SSH استفاده می کنید. پس از وارد کردن نام سرور مجازی و آدرس IP خود ، به صفحه Multiplayer که اکنون سرور مجازی شما در آن لیست شده است ، باز می گردید. از این پس ، سرور مجازی شما همیشه در این لیست ظاهر می شود. آن را انتخاب کرده و روی Join Server کلیک کنید. شما در سرور مجازی خود قرار گرفتید و آماده بازی هستید! نتیجه اکنون یک سرور مجازی Minecraft در اوبونتو 18.04 در حال اجرا دارید که با تمام دوستان خود بتوانید بازی کنید! با جستجو، نیرنگ زدن و تلاش برای بقا در دنیای خام سه بعدی لذت ببرید و به یاد داشته باشید: مراقب grieferها باشید.d خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:GUI,Minecraft,Minecraft Java Edition,screen,Windows
0 notes
server70-blog · 4 years
Text
نحوه راه اندازی یک پروژه Node با Typescript
Node یک محیط زمان اجرا میباشد که امکان نوشتن JavaScript در سمت سرور مجازی را ممکن می کند. از زمان انتشار آن در سال 2011 به صورت گسترده پذیرفته شده است. نوشتن جاوا اسکریپت در سمت سرور مجازی می تواند چالش برانگیز باشد زیرا پایه کد به دلیل ماهیت زبان JavaScriptیعنی تایپ دینامیک و سست گسترده می شود. توسعه دهندگان که از زبان های دیگر به سراغ JavaScript می آیند غالباً از عدم وجود تایپ استاتیک قوی شکایت دارند ، اما اینجاست که TypeScript به کار می آید تا این شکاف را برطرف کند. TypeScript یک فوق مجموعه تایپ شده (اختیاری) از JavaScript است که می تواند در ساخت و مدیریت پروژه های بزرگ JavaScript کمک کند. می تواند به عنوان JavaScript با ویژگیهای اضافی مانند تایپ استاتیک قوی ، کامپایل و برنامه نویسی شی گرا در نظر گرفته شود. توجه: از نظر فنی TypeScript مجموعه ای فوق العاده از JavaScript است ، بدین معنی که کلیه کد های JavaScript کدهای TypeScript معتبر هستند. در اینجا مزایای استفاده از TypeScript آورده شده است: 1- تایپ استاتیک اختیاری. 2- استنباط تایپ. 3- امکان استفاده از رابط ها. در این آموزش یک پروژه Node با TypeScript تنظیم می کنید. یک برنامه Express با استفاده از TypeScript ایجاد خواهید کرد و آن را به کد JavaScript شسته و رفته و معتبر تبدیل می کنید. پیش نیازها قبل از شروع این راهنما ، به Node.js نصب شده بر روی دستگاه تان نیاز خواهید داشت. شما می توانید این کار را با دنبال کردن آموزش نحوه نصب Node.js و ایجاد یک راهنمای توسعه محلی برای سیستم عامل خود انجام دهید. مرحله 1 – شروع یک پروژه npm برای شروع ، یک پوشه جدید با نام node_project ایجاد کنید و به آن دیرکتوری بروید. ⦁ $ mkdir node_project ⦁ ⦁ $ cd node_project سپس ، آن را به عنوان یک پروژه npm آغاز کنید: ⦁ $ npm init ⦁ بعد از اجرای npm init ، باید اطلاعاتی در مورد پروژه خود به npm ارائه کنید. اگر ترجیح می دهید npm پیش فرض های معقولی را تصور کند ، می توانید پرچم y را اضافه کنید تا اعلان های درخواست اطلاعات بیشتر را رد کند: ⦁ $ npm init -y ⦁ اکنون که فضای پروژه شما تنظیم شده است ، آماده هستید تا به نصب متعلقات لازم بپردازید. مرحله 2 – نصب متعلقات با شروع یک پروژه npm برهنه ، مرحله بعدی نصب متعلقاتی است که برای اجرای TypeScript لازم است. برای نصب متعلقات دستورات زیر را از دیرکتوری پروژه خود اجرا کنید: ⦁ $ npm install -D [email protected] ⦁ ⦁ $ npm install -D [email protected] پرچم -D میانبر برای: –save-dev است. می توانید در مستندات npmjs اطلاعات بیشتری در مورد این پرچم کسب کنید. اکنون زمان آن رسیده است که فریم ورک Express را نصب کنید: ⦁ $ npm install -S [email protected] ⦁ ⦁ $ npm install -D ⦁ @types/[email protected] دستور دوم انواع Express را برای پشتیبانی TypeScript نصب می کند. انواع در TypeScript فایلهایی هستند که معمولاً دارای پسوند .d.ts هستند. از فایل ها برای تهیه نوع اطلاعات در مورد یک API ، در این حالت چارچوب Express استفاده می شود. این بسته لازم است زیرا TypeScript و Express بسته های مستقل هستند. بدون بسته @types/express ، هیچ راهی برای TypeScript برای اطلاع از انواع کلاس های Express وجود ندارد. مرحله 3 – پیکربندی TypeScript در این بخش TypeScript را تنظیم می کنید و linting را برای TypeScript پیکربندی می کنید. TypeScript برای پیکربندی گزینه های کامپایلر برای یک پروژه از فایلی به نام tsconfig.json استفاده می کند. یک فایل tsconfig.json را در ریشه دایرکتوری پروژه ایجاد کنید و در قسمت زیر جایگذاری کنید: tsconfig.json { “compilerOptions”: { “module”: “commonjs”, “esModuleInterop”: true, “target”: “es6”, “moduleResolution”: “node”, “sourceMap”: true, “outDir”: “dist” }, “lib”: [“es2015”] } بیایید برخی از کلیدهای موجود در قسمت JSON را بررسی کنیم: ⦁ module: روش تولید کد ماژول را مشخص می کند. Node از Commonjs استفاده می کند. ⦁ target: سطح زبان خروجی را مشخص می کند. ⦁ moduleResolution: به کامپایلر کمک می کند تا بفهمد ورودی به چه چیزی اطلاق می شود. مقدار Node از مکانیزم وضوح ماژول Node تقلید می کند. ⦁ outDir: مکان خروجی فایل های .js پس از transpilation است. در این آموزش آن را به عنوان dist ذخیره می کنیم. جایگزینی برای ایجاد و پر کردن فایل tsconfig.json به صورت دستی اجرای دستور زیر است: ⦁ tsc –init ⦁ این دستور یک فایل tsconfig.json به خوبی کامنت شده را تولید می کند. برای کسب اطلاعات بیشتر در مورد گزینه های مقدار کلیدی موجود ، اسناد رسمی TypeScript توضیحات مربوط به هر گزینه را ارائه می دهد. اکنون می توانید linting TypeScript را برای پروژه پیکربندی کنید. در ترمینالی که در ریشه دایرکتوری پروژه شما اجرا میشود ، و این آموزش آن را با عنوان node_project بنا نهاده است ، دستور زیر را برای تولید یک فایل tslint.json اجرا کنید: ⦁ $ ./node_modules/.bin/tslint –init ⦁ فایل tslint.json تازه تولید شده را باز کنید و قانون no-console را نیز بر این اساس اضافه کنید: tslint.json { “defaultSeverity”: “error”, “extends”: [“tslint:recommended”], “jsRules”: {}, “rules”: { “no-console”: false }, “rulesDirectory”: [] } به طور پیش فرض ،TypeScript linter مانع استفاده از اشکال زدایی با استفاده از عبارات console  می شود ، از این رو باید صراحتا به linter گفته شود که قانون پیش فرض no-console را باطل کند. مرحله 4 – بروزرسانی فایل pack.json در این مرحله از آموزش ، می توانید توابع را در ترمینال به صورت جداگانه اجرا کنید ، یا یک اسکریپت npm برای اجرای آنها ایجاد کنید. در این مرحله یک اسکریپت شروع می کنید که کد TypeScript را کامپایل و transpile می کند ، و سپس برنامه .js حاصل را اجرا می کند. فایل pack.json را باز کنید و بر این اساس آن را به روز کنید: package.json { “name”: “node-with-ts”, “version”: “1.0.0”, “description”: “”, “main”: “dist/app.js”, “scripts”: { “start”: “tsc && node dist/app.js”, “test”: “echo \”Error: no test specified\” && exit 1″ }, “author”: “”, “license”: “ISC”, “devDependencies”: { “@types/express”: “^4.16.1”, “tslint”: “^5.12.1”, “typescript”: “^3.3.3” }, “dependencies”: { “express”: “^4.16.4” } } در قطعه کد بالا مسیر اصلی را به روز کردید و دستور start را به بخش اسکریپت ها اضافه کردید. هنگام مشاهده فرمان شروع ، خواهید دید که ابتدا دستور tsc اجرا می شود ، و سپس دستور node. این کار خروجی تولید شده را با node کامپایل و اجرا می کند. دستور tsc به TypeScript می گوید که برنامه را کامپایل کرده و خروجی تولید شده .js را همانطور که در فایل tsconfig.json تنظیم شده است در دیرکتوری پوشه outDir قرار دهد. مرحله 5 – ایجاد و اجرای یک سرور مجازی اصلی اکسپرس اکنون که پیکربندی TypeScript و linter آن صورت گرفته است ، زمان آن رسیده که یک سرور مجازی Node Express بسازید. ابتدا یک پوشه src در ریشه دیرکتوری پروژه خود ایجاد کنید: ⦁ $ mkdir src ⦁ سپس فایلی به نام app.ts را درون آن ایجاد کنید: ⦁ $ touch src/app.ts ⦁ در این مرحله ، ساختار پوشه باید به شکل زیر باشد: ├── node_modules/ ├── src/ ├── app.ts ├── package-lock.json ├── package.json ├── tsconfig.json ├── tslint.json فایل app.ts را با یک ویرایشگر متن مورد نظر خود باز کنید و در قسمت کد زیر قرار دهید: src/app.ts import express from ‘express’; const app = express(); const port = 3000; app.get(‘/’, (req, res) => { res.send(‘The sedulous hyena ate the antelope!’); }); app.listen(port, err => { if (err) { return console.error(err); } return console.log(`server is listening on ${port}`); }); کد بالا Node Server را ایجاد می کند که پورت 3000 را برای درخواست ها گوش می دهد. برنامه را با استفاده از دستور زیر اجرا کنید: ⦁ $ npm start ⦁ اگر با موفقیت اجرا شود ، پیامی به ترمینال وارد می شود: Output ⦁ $ server is listening on 3000 اکنون می توانید در مرورگر خود از http: // localhost: 3000 بازدید کنید و باید این پیام را مشاهده کنید: Output ⦁ $ The sedulous hyena ate the antelope! فایل dist / app.js را باز کنید و نسخه تعویض شده کد TypeScript را پیدا خواهید کرد: dist/app.js “use strict”; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { “default”: mod }; }; Object.defineProperty(exports, “__esModule”, { value: true }); const express_1 = __importDefault(require(“express”)); const app = express_1.default(); const port = 3000; app.get(‘/’, (req, res) => { res.send(‘The sedulous hyena ate the antelope!’); }); app.listen(port, err => { if (err) { return console.error(err); } return console.log(`server is listening on ${port}`); }); //# sourceMappingURL=app.js.map در این مرحله شما با موفقیت پروژه Node خود را برای استفاده از TypeScript تنظیم کرده اید. نتیجه در این آموزش ، آموختید که چرا TypeScript برای نوشتن کد قابل اعتماد JavaScript مفید است . همچنین در مورد برخی از مزایای کار با TypeScript اطلاعات کسب کردید. سرانجام ، یک پروژه Node را با استفاده از چارچوب Express تنظیم کرده اید ، اما پروژه را با استفاده از TypeScript کامپایل و اجرا می کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:Express,JavaScript,TypeScript
0 notes
server70-blog · 4 years
Text
نحوه نصب و پیکربندی VNC در اوبونتو 18.04
Virtual Network Computing یا VNC یک سیستم اتصال است که به شما امکان می دهد از صفحه کلید و ماوس خود برای تعامل با یک محیط دسکتاپ گرافیکی روی یک سرور مجازی از راه دور استفاده کنید. این امر باعث می شود مدیریت فایل ها ، نرم افزارها و تنظیمات روی یک سرور مجازی از راه دور برای کاربرانی که همچنان با خط فرمان احساس راحتی نمیکنند ، آسانتر شود. در این راهنما ، سرور مجازی VNC را روی یک سرور مجازی اوبونتو 18.04 تنظیم کرده و از طریق یک تونل SSH با ایمنی به آن وصل می شوید. شما از TightVNC ، یک بسته کنترل از راه دور سریع و سبک استفاده می کنید. این انتخاب اطمینان حاصل خواهد کرد که اتصال VNC ما حتی در اتصالات اینترنت کندتر هموار و پایدار خواهد بود. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: • یک سرور مجازی Ubuntu 18.04 که طبق راهنمای ستاپ اولیه سرور مجازی Ubuntu 18.04 تنظیم شده باشد، شامل یک کاربر sudo غیر ریشه و فایروال باشد. • یک کامپیوتر محلی با یک کلاینت VNC نصب شده که اتصالات VNC را از طریق تونل های SSH پشتیبانی می کند. o در ویندوز ، می توانید از TightVNC ، RealVNC یا UltraVNC استفاده کنید. o در macOS ، می توانید از برنامه داخلی اشتراک گذاری صفحه استفاده کنید ، یا می توانید از یک برنامه cross-platform مانند RealVNC استفاده کنید. o در لینوکس ، می توانید گزینه های بسیاری از جمله vinagre ، krdc ، RealVNC یا TightVNC را انتخاب کنید. مرحله 1 – نصب محیط دسکتاپ و سرور مجازی VNC به طور پیش فرض ، یک سرور مجازی Ubuntu 18.04 با محیط دسکتاپ گرافیکی یا سرور مجازی VNC همراه نیست ، بنابراین ما با نصب آن ها کار را شروع خواهیم کرد. به طور خاص ، بسته های جدیدترین محیط دسکتاپ Xfce و بسته TightVNC موجود در مخزن رسمی اوبونتو را نصب خواهیم کرد. در سرور مجازی خود لیست بسته های خود را به روز کنید: ⦁ $ sudo apt update ⦁ اکنون محیط دسکتاپ Xfce را روی سرور مجازی خود نصب کنید: ⦁ $ sudo apt install xfce4 xfce4-goodies ⦁ پس از اتمام نصب ، سرور مجازی TightVNC را نصب کنید: ⦁ $ sudo apt install tightvncserver ⦁ برای تکمیل پیکربندی اولیه سرور مجازی VNC پس از نصب ، از دستور vncserver برای تنظیم گذرواژه ایمن و ایجاد فایل های پیکربندی اولیه استفاده کنید: ⦁ $ vncserver ⦁ از شما خواسته می شود یک رمز ورود را برای دسترسی از راه دور به دستگاه خود وارد کرده و تأیید کنید: Output You will require a password to access your desktops. Password: Verify: رمز عبور باید بین شش تا هشت کاراکتر باشد. گذرواژه‌های بیش از 8 کاراکتر به صورت خودکار کوتاه خواهند شد. پس از تأیید گذرواژه ، می توانید یک گذرواژه view-only ایجاد کنید. کاربرانی که با رمز ورود view-only به سیستم وارد می شوند ، قادر به کنترل نمونه VNC با ماوس یا صفحه کلید خود نخواهند بود. اگر می خواهید چیزی را با استفاده از سرور مجازی VNC خود به دیگران نشان دهید ، این گزینه مفید میباشد ، اما ضروری نیست. سپس این فرآیند فایلهای پیکربندی پیش فرض لازم و اطلاعات اتصال را برای سرور مجازی ایجاد می کند: Output Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New ‘X’ desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log اکنون بگذارید سرور مجازی VNC را پیکربندی کنیم. مرحله 2 – پیکربندی سرور مجازی VNC سرور مجازی VNC باید بداند که در هنگام راه اندازی چه دستوراتی را اجرا می کند. به طور خاص ، VNC باید بداند که به کدام دسکتاپ گرافیکی وصل شود. این دستورات در یک فایل پیکربندی به نام xstartup در پوشه .vnc تحت دیرکتوری هوم شما قرار دارند. اسکریپت راه اندازی هنگامی ایجاد شد که در مرحله قبل vncserver را اجرا کردید ، اما برای راه اندازی دسکتاپ Xfce ، اسکریپت خودمان را ایجاد خواهیم کرد. هنگامی که VNC برای اولین بار راه اندازی میشود ، یک نمونه سرور مجازی پیش فرض را در پورت 5901 راه اندازی می کند. این پورت به عنوان پورت نمایشگر نامیده می شود و توسط VNC به صورت :1 ارجاع داده می شود. VNC می تواند چندین نمونه در پورت های نمایشگر دیگر مانند: 2 ،: 3 و غیره راه اندازی کند. از آنجا که می خواهیم نحوه پیکربندی سرور مجازی VNC را تغییر دهیم ، ابتدا نمونه سرور مجازی VNC را که با استفاده از پورت 5901 در حال اجرا است با دستور زیر متوقف کنید: ⦁ $ vncserver -kill :1 ⦁ خروجی باید به این شکل باشد ، اگرچه یک PID متفاوت را مشاهده خواهید کرد: Output Killing Xtightvnc process ID 17648 قبل از تغییر فایل xstartup ، از نسخه اصلی نسخه پشتیبان تهیه کنید: ⦁ $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak ⦁ اکنون یک فایل xstartup جدید ایجاد کرده و آن را در ویرایشگر متن خود باز کنید: ⦁ $ nano ~/.vnc/xstartup ⦁ هر زمان که سرور مجازی VNC را شروع یا ریستارت میکنید، دستورات موجود در این فایل بطور خودکار اجرا میشوند. برای شروع محیط دسکتاپ خود در صورتی که از قبل شروع نشده است ، به VNC احتیاج داریم. این دستورات را به فایل اضافه کنید: ~/.vnc/xstartup #!/bin/bash xrdb $HOME/.Xresources startxfce4 & اولین دستورالعمل موجود در فایل ، xrdb $ HOME / .Xresource ، به چارچوب رابط کاربری گرافیکی VNC میگوید فایل .Xresources کاربر سرور مجازی را بخواند. Xresource جایی است که یک کاربر می تواند تنظیمات خاصی از دسکتاپ گرافیکی ، مانند رنگ های ترمینال �� تم های مکان نما و رندر فونت ، تغییراتی ایجاد کند. دستور دوم به سرور مجازی می گوید که Xfce را راه اندازی کند ، در این قسمت تمام نرم افزارهای گرافیکی مورد نیاز خود را برای مدیریت راحت سرور مجازی خود پیدا خواهید کرد. برای اطمینان از اینکه سرور مجازی VNC قادر به استفاده صحیح از این فایل راه اندازی جدید خواهد بود ، باید آن را عملیاتی کنیم. ⦁ $ sudo chmod +x ~/.vnc/xstartup ⦁ اکنون ، سرور مجازی VNC را رستارت کنید. ⦁ $ vncserver ⦁ خروجی مشابه این را مشاهده خواهید کرد: Output New ‘X’ desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log با پیکربندی موجود ، بیایید از دستگاه محلی خود به سرور مجازی وصل شویم. مرحله 3 – اتصال ایمن به دسکتاپ VNC VNC در هنگام اتصال از پروتکل های ایمن استفاده نمی کند. ما برای اتصال ایمن به سرور مجازی خود از یک تونل SSH استفاده خواهیم کرد و سپس به کلاینت VNC می گوییم به جای برقراری ارتباط مستقیم از آن تونل استفاده کند. یک اتصال SSH را روی رایانه محلی خود ایجاد کنید که به طور ایمن به اتصال محلی برای VNC منتقل شود. شما می توانید این کار را از طریق ترمینال در لینوکس یا macOS با دستور زیر انجام دهید: ⦁ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip ⦁ سوئیچ -L اتصالات پورت را مشخص می کند. در این حالت ما پورت 5901 اتصال از راه دور را به پورت 5901 در دستگاه محلی شما وصل می کنیم. سوئیچ -C فشرده سازی را قادر می سازد ، در حالی که سوئیچ -N به ssh می گوید که ما نمی خواهیم یک دستور از راه دور را اجرا کنیم. سوئیچ -l نام ورود از راه دور را مشخص می کند. به یاد داشته باشید که sammy و your_server_ip را با نام کاربری sudo غیر ریشه و آدرس IP سرور مجازی خود جایگزین کنید. اگر از یک سرویس دهنده گرافیکی SSH استفاده می کنید ، مانند PuTTY ، از your_server_ip به عنوان IP اتصال استفاده کنید و localhost: 5901 را به عنوان پورت جدید ارسال شده در تنظیمات تونل SSH برنامه تنظیم کنید. پس از راه اندازی تونل ، از یک سرویس دهنده VNC برای اتصال به localhost:5901 استفاده کنید. از شما خواسته می شود با استفاده از رمزعبور تنظیم شده در مرحله 1 ، تأیید اعتبار کنید. پس از اتصال ، میزکار پیش فرض Xfce را مشاهده خواهید کرد. باید چیزی شبیه به این باشد: همانطور که در اینجا مشاهده می شود ، می توانید به فایلها در دیرکتوری هوم خود با مدیر فایل یا از خط فرمان دسترسی پیدا کنید: CTRL + C را در ترمینال خود فشار دهید تا تونل SSH را متوقف کرده و به اعلان خود بازگردید. این کار بخش VNC شما را نیز قطع می کند. بگذارید سرور مجازی VNC ما به عنوان سرویس تنظیم شود. مرحله 4 – اجرای VNC به عنوان یک سرویس سیستم در مرحله بعدی ، سرور مجازی VNC را به عنوان یک سرویس سیستمی تنظیم خواهیم کرد تا بتوانیم مانند هر سرویس دیگر ، آن را بنا به نیاز ، راه اندازی ، متوقف و مجدداً راه اندازی کنیم. این کار همچنین راه اندازی VNC در حین ریبوت سرور مجازی را تضمین می کند. ابتدا با استفاده از ویرایشگر متن مورد علاقه خود ، یک فایل واحد جدید با نام /etc/systemd/system/[email protected] ایجاد کنید: ⦁ $ sudo nano /etc/systemd/system/[email protected] ⦁ نماد @ در انتهای نام به ما اجازه می دهد تا آرگومانی را که می توانیم در پیکربندی سرویس استفاده کنیم ، وارد کنیم. از آن برای مشخص کردن پورت نمایشگر VNC استفاده خواهیم کرد که می خواهیم هنگام مدیریت سرویس استفاده کنیم . خطوط زیر را به فایل اضافه کنید. حتماً مقدار کاربر ، گروه ، WorkingDirectory و نام کاربری را در مقدار PIDFILE تغییر دهید تا با نام کاربری شما مطابقت داشته باشد: /etc/systemd/system/[email protected] [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy Group=sammy WorkingDirectory=/home/sammy PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target فرمان ExecStartPre اگر قبلاً در حال اجرا باشد VNC را متوقف می کند. دستور ExecStart ، VNC را شروع می کند و عمق رنگ را به رنگ 24 بیتی با رزولوشن 1280×800 تنظیم می کند. می توانید بنا به نیازهای خود این گزینه های راه اندازی را تغییر دهید. فایل را ذخیره کنید و ببندید. سپس ، سیستم را از وجود فایل واحد جدید آگاه کنید. ⦁ $ sudo systemctl daemon-reload ⦁ فایل واحد را فعال کنید. ⦁ $ sudo systemctl enable [email protected] ⦁ 1 بعد از علامت @ نشان می دهد که کدام شماره نمایش سرویس باید روی آن ظاهر شود ، در این حالت پیش فرض : 1 است، همانطور که در مرحله 2 بحث شد. اگر هنوز نمونه فعلی سرور مجازی VNC در حال اجرا است آن را متوقف کنید. ⦁ $ vncserver -kill :1 ⦁ سپس آن را شروع کنید همانطور که هر سرویس سیستمی دیگری را شروع می کنید. ⦁ $ sudo systemctl start vncserver@1 ⦁ با این دستور می توانید تأیید کنید که شروع شده است: ⦁ $ sudo systemctl status vncserver@1 ⦁ اگر به درستی شروع شود ، خروجی باید به این شکل باشد: Output ● [email protected] – Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled) Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS) Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS) Main PID: 22330 (Xtightvnc) … سرور مجازی VNC شما هنگام ریبوت دستگاه ، اکنون در دسترس خواهد بود. دوباره تونل SSH خود را شروع کنید: ⦁ $ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip ⦁ سپس با استفاده از نرم افزار کلاینت VNC خود به localhost: 5901 اتصال جدیدی برقرار کنید تا به دستگاه خود متصل شوید. نتیجه اکنون یک سرور مجازی VNC امن در سرور مجازی Ubuntu 18.04 خود فعال و راه اندازی کرده اید. در حال حاضر می توانید فایلها ، نرم افزارها و تنظیمات خود را با یک رابط گرافیکی آسان و کاربردی مدیریت کنید و قادر خواهید بود نرم افزارهای گرافیکی مانند مرورگرهای وب را از راه دور اجرا کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا–خرید سرور مجازی ارزان هلند–vps–خرید vps هلند–خرید سرور مجازی آمریکا–خرید vps فرانسه–تست vps–سرور مجازی تست–سرور مجازی ویندوز–ارزانترین vps–خرید وی پی اس–vps ارزان– برچسب‌ها:cross-platform,RealVNC,TightVNC,UltraVNC,Xfce
0 notes
server70-blog · 4 years
Text
ایجاد یک برنامه Django و اتصال آن به یک بانک اطلاعاتی
به خاطر چارچوب وب آزاد و منبع باز که در پایتون نوشته شده است ، Django امکان مقیاس پذیری ، قابلیت استفاده مجدد و توسعه سریع را فراهم می آورد. در این آموزش می بینید که چگونه پایه و اساس اولیه یک سایت وبلاگی با اتصال به یک پایگاه داده MySQL را تنظیم کنید. این امر شامل ایجاد ساختار اسکلت برنامه وبلاگ با استفاده از django-admin ، ایجاد بانک اطلاعاتی MySQL و سپس اتصال برنامه وب به دیتابیس خواهد بود. توجه داشته باشید که این امر محیط توسعه را برای شما فراهم می کند تا بتوانید در برنامه وبلاگ خود کار کنید ، اما شما باید قبل از اینکه وبلاگ خود را به صورت زنده در اینترنت قرار دهید ، کارهای دیگری انجام دهید ، نام های دامنه را تعیین و لایه های امنیتی بیشتری اضافه کنید. پیش نیازها باید یک محیط Python در سرور مجازی خود تنظیم کنید. در این آموزش ، ما از سرور مجازی اوبونتو 20.04 استفاده خواهیم کرد ، اما از آنجا که تمرکز این آموزش بر روی Django است ، این اصول باید برای سایر سیستم عامل ها نیز کاربرد داشته باشد. برای راه اندازی پایتون ، آموزش نحوه نصب پایتون 3 و تنظیم یک محیط برنامه نویسی را در سرور مجازی اوبونتو 20.04 دنبال کنید. با قرارگیری پایتون در جای خود ، می توانیم به سراغ ایجاد برنامه خود برویم. مرحله 1 – MySQL را نصب کنید ما از MySQL به عنوان بانک اطلاعاتی خود استفاده خواهیم کرد. ممکن است شما بخواهید از بانک اطلاعاتی دیگری استفاده کنید یا از قبل یک پایگاه داده نصب کرده باشید ، در این صورت باید این مرحله را رد کنید. برای نصب MySQL در سرور مجازی Ubuntu 20.04 ، دستور زیر را تایپ کنید: ⦁ $ sudo apt install mysql-server ⦁ باید خروجی زیر را دریافت کنید: Output ● mysql.service – MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 20:22:51 UTC; 3min 7s ago Main PID: 2052 (mysqld) Status: “Server is operational” Tasks: 38 (limit: 1137) Memory: 317.4M CGroup: /system.slice/mysql.service └─2052 /usr/sbin/mysqldاطمینان حاصل کنید که بازخورد دریافتی بیانگر فعال بودن سرور مجازی MySQL شماست. پس از تایید این موضوع ، می توانید این آموزش را ادامه دهید. مرحله 2 – اسکلت اولیه پروژه Django را ایجاد کنید به منظور ایجاد زمینه کاری برای برنامه خود ، باید اسکلت پروژه را با استفاده از دستور django-admin تولید کنیم. این پروژه تولید شده پایه و اساس برنامه وبلاگ ما خواهد بود. به دایرکتوری بروید که می خواهید برنامه وبلاگ خود را بسازید. در این دیرکتوری ، یک دیرکتوری خاص برای ساخت برنامه ایجاد خواهیم کرد. برای برنامه ای که در حال ساخت هستید ، نام دیرکتوری را چیزی معنی دار در نظر بگیرید. به عنوان نمونه ، ما آن را my_blog_app می نامیم. ⦁ $ mkdir my_blog_app ⦁ اکنون به پوشه تازه ایجاد شده بروید: ⦁ $ cd my_blog_app ⦁ در مرحله بعد ، وارد محیط برنامه نویسی شوید که می خواهید برای کار در Django استفاده کنید. می توانید از یک دیرکتوری موجود استفاده کنید یا یک دیرکتوری جدید ایجاد کنید. ما دیرکتوری خود را env می نامیم ، اما شما باید از اسمی استفاده کنید که برای شما معنی دارد. پس از ایجاد ، می توانید آن را فعال کنید. ⦁ $ python3 -m venv env ⦁ ⦁ . env/bin/activate اگر قبلا Django را نصب نکرده اید ، آن را در این محیط نصب کنید: ⦁ (env) Sammy@ubuntu:$ pip install django ⦁ در حالی که در دیرکتوری my_blog_app هستیم، با اجرای دستور زیر ، پروژه ای را تولید می کنیم: ⦁ (env) Sammy@ubuntu:$ django-admin startproject blog ⦁ با رفتن به دایرکتوری blog/ تأیید کنید که کار کرده است: ⦁ (env) Sammy@ubuntu:$ cd blog ⦁دایرکتوریblog/ باید پس از اجرای دستور قبلی django-admin در دایرکتوری فعلی ، ~ / my_blog_app / ایجاد شود. برای تأیید اینکه موارد لازم ایجاد شده است ، ls را اجرا کنید. باید یک دیرکتوری وبلاگ و یک فایل management.py وجود داشته باشد: Output blog manage.pyاکنون که دایرکتوری پروژه را ایجاد کرده اید که شامل شروع اولیه برنامه وبلاگ شماست ، می توانیم به مرحله بعدی برویم. مرحله 3 – تنظیمات را ویرایش کنید از آنجا که ما پروژه اسکلت را تولید کرده ایم ، اکنون یک فایل settings.py داریم. برای اینکه وبلاگ ما زمان صحیحی با ناحیه ما ارتباط داشته باشد ، فایل settings.py را ویرایش می کنیم تا از منطقه زمانی فعلی شما استفاده کند. می توانید از این لیست مناطق زمانی به عنوان مرجع استفاده کنید. به عنوان مثال ، ما از وقت America/New_York استفاده خواهیم کرد. می خواهیم فایل را ویرایش کنیم ، بنابراین بیایید مسیر فایل را با ویرایشگر متن مورد نظر خود باز کنیم. در اینجا ، ما از nano استفاده خواهیم کرد. ⦁ (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py ⦁ از آنجا که ما در حال ویرایش قسمت TIME_ZONE هستیم ، مانند زیر به قسمت پایین فایل خواهیم رفت. settings.py … # Internationalization # https://docs.djangoproject.com/en/2.0/topics/i18n/LANGUAGE_CODE = ‘en-us’TIME_ZONE = ‘UTC’USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True … ما می خواهیم خط TIME_ZONE را طوری تغییر دهیم که در منطقه زمانی فعلی شما تنظیم شود. در این مثال از منطقه زمانی نیویورک استفاده خواهیم کرد: settings.py … # Internationalization # https://docs.djangoproject.com/en/2.0/topics/i18n/LANGUAGE_CODE = ‘en-us’TIME_ZONE = ‘America/New_York’USE_I18N = True …بیایید فایل را باز نگه داریم زیرا باید مسیری را برای فایل های استاتیک خود اضافه کنیم. فایلهایی که از برنامه وب Django شما دریافت می شوند به فایل های استاتیک شناخته می شوند. این فایل ها می تواند شامل تمام فایل های لازم برای ارائه کامل صفحه وب از جمله JavaScript ، CSS و تصاویر باشد. به انتهای فایل تنظیمات بروید و مطابق شکل زیر STATIC_ROOT را اضافه کنید: settings.py … # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.0/howto/static-files/STATIC_URL = ‘/static/’ STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)اکنون که منطقه زمانی و مسیر فایل های استاتیک را اضافه کرده ایم ، باید IP بعدی خود را به لیست هاست های مجاز اضافه کنیم. به خط فایل settings.pyبروید. جایی که ALLOWED_HOSTS نوشته شده، در قسمت بالای فایل settings.py خواهد بود. settings.py … # SECURITY WARNING: don’t run with debug turned on in production! DEBUG = TrueALLOWED_HOSTS = [‘your server IP address’]# Application definition …آدرس IP سرور مجازی خود را بین براکت و علامت تک نقل قول اضافه کنید. پس از رضایت از تغییراتی که ایجاد کرده اید ، فایل را ذخیره کنید. اگر در حال استفاده از nano هستید ، می توانید این کار را با فشار دادن CTRL + X و سپس y برای تأیید تغییرات انجام دهید. شما فایل settings.pyخود را با موفقیت ویرایش کرده اید تا منطقه زمانی مناسب پیکربندی شده باشد. همچنین مسیر فایل های استاتیک خود را اضافه کرده اید و آدرس IP را برای برنامه خود ALLOWED_HOST قرار داده اید. در آخر ، اجازه دهید یک کاربر ادمین ایجاد کنیم تا بتوانید از رابط مدیر Djano استفاده کنید. بیایید این کار را با دستور Creatuperuser انجام دهیم: ⦁ (me_env) $ python manage.py createsuperuser ⦁ از شما یک نام کاربری ، یک آدرس ایمیل و رمز عبور برای کاربر خواسته می شود. در این مرحله می توانیم به تنظیم اتصال بانک اطلاعاتی خود بپردازیم. مرحله 4 – اتصال دهنده پایگاه داده MySQL را نصب کنید برای استفاده از MySQL با پروژه خود ، به یک کتابخانه اتصال دهنده پایگاه داده Python 3 که سازگار با Django است ، نیاز خواهیم داشت. بنابراین ، ما اتصال دیتابیس را نصب خواهیم کرد ، mysqlclient ، که یک نسخه forked از MySQLdb است. ابتدا اطمینان حاصل کنید که python3-dev را نصب کرده اید. با اجرای دستور زیر می توانید python3-dev را نصب کنید: ⦁ (env) Sammy@ubuntu:$ sudo apt install python3-dev ⦁ اکنون می توانیم هدرها و كتابخانه های توسعه Python و MySQL را نصب كنیم: ⦁ (env) Sammy@ubuntu:$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev ⦁برای پذیرش نصب ، y و ENTER را فشار دهید. پس از اتمام نصب ، از pip3 برای نصب کتابخانه mysqlclient از PyPi استفاده خواهیم کرد. از آنجا که نسخه pip به pip3 اشاره می کند ، می توانیم از pip استفاده کنیم. ⦁ (env) Sammy@ubuntu:$ pip install mysqlclient ⦁ خروجی مشابه این را دریافت خواهید کرد ، تأیید میکند که به درستی در حال نصب است: successfully installed mysqlclient … Successfully installed mysqlclient-1.4.6 اکنون با استفاده از کتابخانه اتصال دهنده mysqlclient PyPi با موفقیت MySQL را نصب کردیم. مرحله 5 – ایجاد بانک اطلاعاتی اکنون که اسکلت برنامه Django شما راه اندازی شده است و mysqlclient و mysql-server نصب شده اند ، باید برای سازگاری MySQL ، backend Django را پیکربندی کنیم. به صورت ریشه MySQL با دستور زیر وارد شوید: ⦁ (env) Sammy@ubuntu:$ sudo mysql -u root ⦁ وقتی اعلان تغییر می کند می دانیم که در سرور مجازی MySQL قرار داریم: Mysql> بگذارید پایگاه داده های فعلی را با دستور زیر بررسی کنیم: ⦁ Mysql> SHOW DATABASES; ⦁ با فرض اینکه هنوز هیچ پایگاه داده ای ایجاد نکرده اید ، خروجی مشابه زیر را مشاهده خواهید کرد: Output +——————–+ | Database | +——————–+ | information_schema | | mysql | | performance_schema | | sys | +——————–+ 4 rows in set (0.00 sec)توجه: اگر هنگام تلاش برای اتصال با خطایی مواجه شدید ، تأیید کنید که رمزعبورتان درست است و MySQL را به درستی نصب کرده اید. در غیر اینصورت آموزش نحوه نصب و پیکربندی MySQL را دوباره مرور کنید.به طور پیش فرض ، شما 4 پایگاه داده را تاکنون ایجاد کرده اید ، data_schema ، MySQL ، performance_schema و sys. نیازی به اتصال به این موارد نداریم ، زیرا حاوی اطلاعاتی مهم برای خود سرور مجازی MySQL هستند. اکنون ، که با موفقیت به سرور مجازی MySQL خود وارد شده اید ، بانک اطلاعاتی اولیه را ایجاد می کنیم که داده ها را برای وبلاگ مان نگه می دارد. برای ایجاد یک پایگاه داده در MySQL ، دستور زیر را با استفاده از یک اسم معنی دار برای پایگاه داده خود اجرا کنید: ⦁ Mysql> CREATE DATABASE blog_data; ⦁ پس از ایجاد موفقیت آمیز پایگاه داده ، خروجی زیر را مشاهده خواهید کرد: Output Query OK, 1 row affected (0.00 sec) توجه: اگر خروجی زیر را مشاهده می کنید: database creation failed ERROR 1007 (HY000): Can’t create database blog_data; database existsیعنی ، همانطور که خطا بیان می کند ، یک بانک اطلاعاتی با نام blog_data از قبل وجود دارد. و اگر خطای MySQL زیر را مشاهده کردید ، به این معنی است که یک خطای نحوی MySQL وجود دارد. بررسی کنید که فرمان را دقیقاً مطابق با این آموزش وارد کرده اید. database creation failed ERROR 1064 (42000): You have an error in your SQL syntax;سپس ، تأیید کنید که اکنون پایگاه داده در لیست پایگاههای داده موجود شما قرار دارد: ⦁ $ SHOW DATABASES; ⦁ باید ببینید که پایگاه داده blog_data در میان پایگاه داده های موجود در خروجی است: output +——————–+ | Database | +——————–+ | information_schema | | blog_data | | mysql | | performance_schema | | sys | +——————–+ 5 rows in set (0.00 sec)در مرحله بعد ، قصد داریم یک حساب کاربری MySQL جداگانه ایجاد کنیم که ما بطور انحصاری برای کار با بانک اطلاعات جدید خود استفاده خواهیم کرد. ایجاد بانکهای اطلاعاتی و حسابهای خاص می تواند ما را از منظر مدیریتی و امنیتی پشتیبانی کند. ما در این راهنما از نام djangouser استفاده خواهیم کرد ، اما شما میتوانید از هر نامی استفاده کنید. ما قصد داریم این حساب را ایجاد کنیم ، رمزعبور راتنظیم کنیم و به دیتابیس ایجاد شده دسترسی پیدا کنیم. می توانیم با تایپ دستور زیر این کار را انجام دهیم. به یاد داشته باشید یک رمزعبور قوی برای کاربر پایگاه داده خود در جایی که password را داریم انتخاب کنید: ⦁ Mysql> CREATE USER ‘djangouser’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’; ⦁ در مرحله بعد ، به دیتابیس اطلاع دهید که djangouser ما باید دسترسی کامل به دیتابیسی که ایجاد میکنیم داشته باشد: ⦁ Mysql> GRANT ALL ON blog_data.* TO ‘djangouser’@’%’; ⦁ اکنون یک بانک اطلاعاتی و یک حساب کاربری دارید که هرکدام به طور خاص برای Django ساخته شده است. باید امتیازات را flush کنیم تا نمونه فعلی MySQL از تغییرات اخیر ما اطلاع یابد: ⦁ Mysql> FLUSH PRIVILEGES; ⦁ با اتمام آن ، می توانید با وارد کردن EXIT یا با فشار دادن CTRL + D از سرور مجازی MySQL خارج شوید. مرحله 6 – اتصال پایگاه داده MySQL را به برنامه خود اضافه کنید سرانجام ، اعتبارات اتصال بانک اطلاعاتی را به برنامه Django شما اضافه خواهیم کرد. توجه: لازم است به یاد داشته باشید که تنظیمات اتصال ، مطابق مستندات Django ، به ترتیب زیر استفاده می شوند: OPTIONS – NAME, USER, PASSWORD, HOST, PORT – MySQL option files. بیایید تغییرات لازم را برای اتصال برنامه وبلاگ Django به MySQL ایجاد کنیم. به فایل settings.py بروید و خطوط فعلی DATABASES را با موارد زیر جایگزین کنید. ما دیکشنری پایگاه داده شما را پیکربندی خواهیم کرد تا بداند که از MySQL به عنوان backend دیتابیس شما استفاده کند و از چه فایلی برای خواندن اعتبارات اتصال بانک اطلاعاتی شما استفاده کند. ⦁ (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py ⦁ خطوط موجود را در آنجا پاک کرده و آن را با خطوط زیر جایگزین کنید ، حتماً تعداد مناسب پرانتز را حفظ کنید. settings.py … # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databasesDATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘OPTIONS’: { ‘read_default_file’: ‘/etc/mysql/my.cnf’, }, } } …فایل را ذخیره کنید و ببندید. سپس ، اجازه دهید فایل پیکربندی را ویرایش کنیم تا اعتبارات MySQL شما را داشته باشد. برای ویرایش فایل و افزودن اطلاعات زیر از nano به عنوان sudo استفاده کنید: ⦁ (env) Sammy@ubuntu:$ sudo nano /etc/mysql/my.cnf ⦁ خطوط زیر را اضافه کنید و اطلاعات مربوط به خود را درج کنید. my.cnf … [client] database = blog_data user = djangouser password = your_actual_password default-character-set = utf8توجه خواهید ��رد که utf8 به عنوان رمزگذاری پیش فرض تنظیم شده است ، که یک روش معمول برای رمزگذاری داده های تک کد در MySQL است. وقتی مطمئن شدید که جزئیات شما صحیح است ، فایل را ذخیره کنید و ببندید. پس از ویرایش فایل ، لازم است که MySQL را مجدداً راه اندازی کنیم تا تغییرات به مرحله اجرا درآیند. ⦁ (env) Sammy@ubuntu:$ sudo systemctl daemon-reload ⦁ ⦁ (env) Sammy@ubuntu:$ sudo systemctl restart mysqlلطفاً توجه داشته باشید که راه اندازی مجدد MySQL چند ثانیه طول می کشد ، بنابراین لطفاً صبور باشید. مرحله 7 – اتصال MySQL به برنامه را آزمایش کنید لازم است تأیید کنیم که تنظیمات موجود در Django سرور مجازی MySQL را به درستی تشخیص می دهد. ما می توانیم این کار را با اجرای سرور مجازی انجام دهیم. در صورت عدم موفقیت ، این بدان معنی است که اتصال به درستی کار نمی کند. در غیر این صورت ، اتصال معتبر است. بیایید ابتدا تغییرات خود را در django با دستور زیر اعمال کنیم: ⦁ (env) Sammy@ubuntu:$ python manage.py migrate ⦁ باید به دیرکتوری زیر برویم: ⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/ ⦁ از آنجا ، می توانیم دستور زیر را اجرا کنیم: ⦁ (env) Sammy@ubuntu:$ python manage.py runserver your-server-ip:8000 ⦁ اکنون خروجی مشابه زیر را مشاهده خواهید کرد: Output Performing system checks…System check identified no issues (0 silenced).You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run ‘python manage.py migrate’ to apply them.January 4, 2018 – 15:45:39 Django version 2.0.1, using settings ‘blog.settings’ Starting development server at http://your-server-ip:8000/ Quit the server with CONTROL-C.توجه: در خروجی خواهید دید که جابه جایی های بی رویه داشته اید. اما نگران نباشید ، در آموزش های بعدی به این موضوع پرداخته می شود. این مسئله بر تنظیم اولیه برنامه ما تأثیر نمی گذارد. لطفا پیش بروید.دستورالعمل های خروجی را دنبال کنید و پیوند پیشنهادی ، http: // your-server-ip: 8000 / را دنبال کنید تا برنامه وب خود را مشاهده کنید و تأیید کنید که به درستی کار می کند.اگر صفحه شما شبیه به تصویر بالا ظاهر می شود ، برنامه Django شما مطابق آنچه انتظار می رود کار می کند! هنگامی که آزمایش برنامه تان به پایان رسید ، می توانید CTRL + C را فشار دهید تا دستور Runnerver متوقف شود. با این کار شما به محیط برنامه نویسی خود باز خواهید گشت. هنگامی که آماده ترک محیط Python خود هستید ، می توانید دستور غیرفعال کردن را اجرا کنید: ⦁ (env) Sammy@ubuntu:$ deactivate ⦁ غیرفعال کردن محیط برنامه نویسی شما را به سمت فرمان نهایی ترمینال باز می گرداند. نتیجه در این آموزش پایه و اساس اولیه وبلاگ Django خود را ایجاد کرده اید. MySQL را نصب و پیکربندی کرده و به backend Django وصل کرده اید. همچنین برخی از اطلاعات مهم مانند TIME_ZONE و ALLOWED_HOSTS را به فایل تنظیمات برنامه خود اضافه کرده اید. اکنون که این تنظیمات و پیکربندی های اولیه کامل شده است ، می توانید شروع به توسعه مدل ها و اعمال برنامه های جابه جایی در برنامه Django خود کنید. خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 
0 notes