<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمد زارع مقدم</title>
        <link>https://virgool.io/feed/@thisismzm</link>
        <description>فعال در حوزه توسعه برنامه‌های کامپیوتر | عاشق خانواده | علاقمند به زندگی پس از مرگ</description>
        <language>fa</language>
        <pubDate>2026-06-16 10:05:55</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/868/avatar/JsA9s8.png?height=120&amp;width=120</url>
            <title>محمد زارع مقدم</title>
            <link>https://virgool.io/@thisismzm</link>
        </image>

                    <item>
                <title>رفع مشکل Realtek RTL8821CE در لینوکس/linux</title>
                <link>https://virgool.io/@thisismzm/%D8%B1%D9%81%D8%B9-%D9%85%D8%B4%DA%A9%D9%84-realtek-rtl8821ce-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3linux-vpvzsnomhbyp</link>
                <description>Realtek RTL8821CEبعد از تعویض لپ‌تاپم و نصب Ubuntu 22.04 متوجه شدم که کارت شبکه وایرلس/Wireless Network Adapter من که از مدل Realtek RTL8821CE هست خوب کار نمی‌کنه و تو اتصال مشکل داره و به همین دلیل به دنبال راه حل رفتم و در نهایت تونستم مشکل رو رفع کنم.اگه شما هم روی سیستمون از لینوکس/linux استفاده می‌کنین و با کارت شبکه Realtek RTL8821CE مشکل دارین ادامه این مقاله رو مطالعه کنین تا مشکلتون رو بتونید رفع کنید.برای اینکه مشاهده کنید در حال حاضر سیستم شما از چه درایوری برای این نوع کارت شبکه استفاده میکنه دستور زیر رو تو ترمینالتون اجرا کنید:$ sudo lspci -k | grep -iA2 wirelessخروجی دستور شبیه به تصویر زیر هست:sudo lspci -k | grep -iA2 wirelessدر تصویر بالا عبارت kernel driver in use مشخص کننده درایوری هست که در حال حاضر برای این کارت شبکه استفاده میشه که در اینجا برای لپ‌تاپ من rtl8821ce هست و احتمالا برای شما rtw88_8821ce باشه.درایور rtw88_8821ce به صورت پیش‌فرض روی هسته لینوکس وجود داره ولی این درایور مشکلات زیادی داشته و شما باید اونو با rtl8821ce جایگزین کنید.به آدرس Realtek RTL8821CE Driver برین و منبع کد مربوط به این درایور رو دانلود کنید که این کار رو می‌تونین با Git یا از طریق دانلود فایل zip انجام بدین، بعد از دانلود در ترمینال لینوکس به مسیر کد دانلود شده رفته و دستورات زیر رو به ترتیب اجرا کنید:$ sudo apt install bc module-assistant build-essential dkms
$ sudo m-a prepare
$ sudo ./dkms-install.shبعد از این کار درایور مورد نظر روی سیستم شما نصب شده و باید ابتدا درایور قبلی رو غیرفعال و بعد درایور جدید رو فعال کنید. دستورات زیر رو اجرا کنین:$ sudo modprobe -r rtw88_8821ce
$ sudo modprobe -b rtw88_8821ce
$ sudo modprobe 8821ceبرای اینکه مطمئن بشیم کار رو درست انجام دادیم دستور زیر رو اجرا کنین:$ sudo modprobe 8821ce --first-timeخروجی دستور بالا باید مقدار زیر باشه:modprobe: ERROR: could not insert &#039;8821ce&#039;: Module already in kernelسیستم خودتون رو ریبوت کنین و درایور جدید رو تست کنین.</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Fri, 20 Jan 2023 16:31:15 +0330</pubDate>
            </item>
                    <item>
                <title>جسم، لیدوکائینی برای روح</title>
                <link>https://virgool.io/@thisismzm/%D8%AC%D8%B3%D9%85-%D9%84%DB%8C%D8%AF%D9%88%DA%A9%D8%A7%D8%A6%DB%8C%D9%86%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B1%D9%88%D8%AD-zwdrhc0fkt2b</link>
                <description>جسم، بی‌حس‌کننده‌ای برای روحفرض کنید یه بی‌حس کننده زدین به دستتون و با چاقو شروع می‌کنین به بریدن دستتون! تا وقتی اون بی‌حس کننده وجود داره شما هیچ دردی رو حس نمی‌کنید اما می‌دونید که دارید به خودتون آسیب می‌زنید و بعد از اینکه اثر بی‌حس کننده بره قراره این درد رو حس کنید و عذاب بکشید! جسم، در طول عمر دقیقا همین نقش رو واسه روح ما بازی می‌کنه.اگر کاری انجام می‌دیم که از نظر اخلاقی اشتباه هست ولی در اون لحظه بدون هیچ عذاب‌وجدانی اون کارو انجام می‌دیم یعنی آسیبی رو به روح خودمون وارد کردیم اما اینقدر قدرت بی‌حس‌کننده‌ای به نام جسم زیاده که فکر می‌کنیم کار ما درست بوده و هیچ دردی و هیچ عذاب وجدانی رو در روح خودمون احساس نمی‌کنیم.اگه ما داریم به روح خودمون با کارهای غیراخلاقی آسیب وارد می‌کنیم و هیچ دردی رو حس نمی‌کنیم چون هنوز زنده‌ایم و هنوز نفس‌ می‌کشیم! اما یه روزی می‌رسه که نفسمون بند میاد و مرگ میاد سراغمون.بعد از مرگ، اثر بی‌حس کننده از بین خواهد رفت چون دیگه جسمی وجود نداره و ما به‌طور تمام و کمال آسیبی که به روح خودمون وارد کردیم رو خواهیم چشید. بعد از مرگ دیگه بی‌حس کننده‌ای به نام جسم و دنیا وجود نخواهد داشت و تمام آسیب‌هایی که به روحمون وارد کردیم رو به وضوح خواهیم دید.ما در طول عمرمون داریم بهشت و جهنمی رو واسه بعد از مرگ خودمون میسازیم که نه آتیشی داره واسه جهنمیا و نه حوری و نهر عسل داره واسه بهشتیا، چون آتیش، حوری و نهر عسل با جسم معنی میدن نه بدون جسم و ما بعد از مرگ هیچ چیزی تحت عنوان جسم نخواهیم داشت.شاید خیلیا شنیده باشین که هیزم آتیش جهنمتونو خودتون آماده می‌کنین، بله جهنم ما بعد از مرگ عذابی خواهد بود که روح ما می‌کشه بخاطر آسیب‌هایی که بهش وارد کردیم و جسمی داشتیم که تمام این آسیب‌ها رو مثل یه بی‌حس کننده قوی خنثی می‌کرد و بهشت ما حس خوبی خواهد بود که روح ما خواهد داشت از آزاد و رها بودن بعد از مرگ به دلیل آسیب نزدن بهش.اگه در طول روز حق کسی رو پایمال می‌کنیم و هیچ حس بدی نسبت به این کار خودمون نداریم یعنی جسم ما اینقدر در بی‌حس کردن روح ما موفق بوده که باعث میشه آسیبی که به روح خودمون وارد می‌کنیم رو متوجه نشیم در طول عمرمون.مراقب باشیم خیلی از این بی‌حس کننده استفاده نکنیم به فکر روزی باشیم که اثرش از بین خواهد رفت.</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Sat, 09 Apr 2022 15:48:36 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصی از تبلیغات و ردیابی در اینترنت</title>
                <link>https://virgool.io/@thisismzm/%D8%AE%D9%84%D8%A7%D8%B5%DB%8C-%D8%A7%D8%B2-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA-%D9%88-%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8%DB%8C-%D8%AF%D8%B1-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-psn1bdller3j</link>
                <description>اولش خیلی سریع میریم سراغ راه‌حل، اگر خواستین جزئیات رو بدونین میتونین ادامه مطلبو هم مطالعه کنین. برای خلاصی از تبلیغات فقط لازمه DNS سیستمتون رو به آدرس‌های زیر تغییر بدین:94.140.14.14
94.140.15.15اگر سیستم عاملتون ویندوز هست دستور زیر رو داخل CMD اجرا کنید:ipconfig /flushdnsبعد از تغییر یک دفعه شبکه‌ سیستمتون رو قطع و وصل کنین و بعد سایت‌هایی که تبلیغات داشتن رو باز کنین، میبینین که دیگه هیچ تبلیغاتی برای شما نمایش داده نمیشه.اگر باز هم تبلیغات نمایش داده شد، بخاطر حافظه موقت DNS هست که با جستجو در گوگل با توجه به سیستم‌عاملتون که ویندوز هست یا غیره، روش خالی کردن حافظه موقت رو میتونید پیدا کنید.آیا این کار روی گوشی‌ هم امکان پذیر هست؟بله. میتونید با نصب نرم‌افزارهای تغییر DNS روی گوشیتون این کار رو انجام بدین.آیا این کار روی مودم خانگی هم امکان پذیر هست؟بله. میتونید به تنظیمات مودم برید و در بخش DNS Server مقادیر ذکر شده رو وارد کنید، با این کار هر کسی که به مودم شما وصل بشه بدون نیاز به تغییر DNS از شر تبلیغات و سیستم‌های ردیابی خلاص خواهد شد.چرا با این کار اکثر تبلیغات و ردیابی‌ها از کار میوفتن؟وب‌سایت‌ها معمولا از سرویس‌دهنده‌های تبلیغات و سرویس‌دهنده‌های سیستم‌های ردیابی برای نمایش تبلیغات و ردیابی کاربران خودشون استفاده می‌کنن و خودشون میزبان این سرویس‌ها نیستن.یعنی زمانی که شما وب‌سایتی رو باز می‌کنین برای نمایش تبلیغات باید درخواستی به سرویس‌های تبلیغاتی داده بشه که تبلیغات رو برای شما ارسال کنن، با تغییر DNS روند ارسال این درخواست‌ها مختل میشه و در نتیجه تبلیغاتی نمایش داده نخواهد شد، همین موضوع برای سیستم‌های ردیابی هم صدق می‌کنه.</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Sun, 30 May 2021 11:05:53 +0430</pubDate>
            </item>
                    <item>
                <title>تبدیل فیلترنت به اینترنت با DNS Over TLS</title>
                <link>https://virgool.io/@thisismzm/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%81%DB%8C%D9%84%D8%AA%D8%B1%D9%86%D8%AA-%D8%A8%D9%87-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%A8%D8%A7-dns-over-tls-mtnrguzf7hpn</link>
                <description>فرض کنین من میخوام وب‌سایت youtube.com رو باز کنم، وقتی این کارو تو مرورگر انجام میدم قبل از باز شدنش youtube.com باید تبدیل بشه به یک آدرس معتبر در اینترنت (بعضیا هم قسم خوردن که نذارن ما آدرسشو بدست بیاریم).این وسط دوستان همیشه در صحنه برای جلوگیری از دسترسی ما به این وب‌سایت میان درخواست‌های ما رو بررسی می‌کنن و وقتی می‌بینن من میخوام فلان وب‌سایت رو باز کنم و نباید این کارو انجام بدم در یک اقدام ناجوانمردانه یه آدرس از فیلترنت خودشون بجای آدرس یوتیوب میدن (خدایا بسه دیگه).این کارشون مثل این میمونه من بیام از شما بپرسم &quot;رستوران ممد&quot; کجاس بعد شما با &quot;ممد&quot; مشکل داشته باشی بیای به مشتریش آدرس یه رستوران دیگه بدی بگی آدرسش اینه (خیلی بده نکنین این کارو ممدا گناه دارن).واسه تست این موضوع روی لینوکس یا ویندوز ما یه دستور داریم به نام nslookup که براحتی به ما نشون میده فیلترنت بجای اینترنت داره به ما پاسخ میده. دستور زیرو تو ترمینال اجرا کنید:nslookup -type=A youtube.com 8.8.8.8جوابی که به شما میده چیزیه شبیه این:Server: 8.8.8.8
Address:	8.8.8.8#53
Non-authoritative answer:
Name: youtube.com
Address: 10.10.34.35ولی بعد از تغییراتی که تا انتهای این آموزش یاد میگیرین جواب واقعی رو میگیرین، چیزی شبیه این:Server: 127.0.0.53
Address:	127.0.0.53#53
Non-authoritative answer:
Name: youtube.com
Address: 216.58.212.174در واقع ما داریم از &quot;8.8.8.8&quot; (که میشه گوگل) میپرسیم آدرس یوتیوب کجاس ولی برادران فیلترنت جواب میدن میگن: &quot;10.10.34.35&quot; (این آدرس سایت پیوندهاس، اگه تو مرورگر بزنین متوجه میشین). شما قدرت فیلترنتو ببینید، من از گوگل میپرسم ولی فیلترنت جواب میده ولی چطور ممکنه آخه؟ میشه کاری کرد خود گوگل جوابمونو بده؟ آره میشه :)مشکل اصلی اینه که ما به زبان ساده داریم از گوگل میپرسیم آدرس فلان جا رو به ما بده خب فیلترنت هم که فال‌گوش نشسته ببینه اگه اونجایی که ما آدرسشو می‌خوایم جاییه که نمیخواد ما بریم یه آدرس دیگه بده به ما و راه حل اینه که یه جوری از گوگل بپرسیم که فیلترنت فال‌گوشم باشه نتونه بفهمه داریم چی میگیم و این میشه همون DNS Over TLS (همینم دارن تلاش میکنن فیلتر کنن).کافیه یه جستجو تو اینترنت بزنین و نحوه راه اندازی DNS Over TLS رو تو سیستم عامل خودتون پیدا کنین.واسه سیستم عامل اندروید ۹ به بعد این قابلیت تو خودش گذاشته شده و با یه جستجو تو گوگل براحتی با توجه به مدل گوشیتون میتونین این قابلیت فعال کنین و برای اندرویدهای پایین‌تر از نسخه ۹ از برنامه Intra استفاده کنید.واسه سیستم عامل‌های لینوکس، ویندوز و iOS هم راه حل های زیادی وجود داره که میتونین تو اینترنت پیدا کنین.توجه: حتما مدنظر داشته باشین که وقتی ما داریم مثلا به &quot;8.8.8.8&quot; درخواست میدیم که یه آدرس رو بگیریم، امکان داره فیلترنت اومده باشه همینو هم فیلتر کرده باشه که ما نتونیم به صورت امن از &quot;8.8.8.8&quot; چیزی بپرسیم و اینجا راه حل اینه که بجای پرسیدن از &quot;8.8.8.8&quot; از یکی دیگه بپرسیم.میتونین یه لیست ازشون تو این لینک پیدا کنین. چنتا از معروف تریناشون:8.8.8.8
9.9.9.9
1.1.1.1
8.8.4.4
9.9.9.10
1.0.0.1طبق تجربه‌ای که من داشتم و طبق این لینک احتمال داره هر کدوم از اینا رو چنتا از سرویس دهنده‌های اینترنت قابل استفاده باشن و رو بعضیای دیگه فیلتر شده باشن.این روش تنها برای سرویس‌ها و وب‌سایت‌هایی کاربرد داره که با نام دامنه فیلتر شدن مثل یوتیوب ولی برای سرویس‌هایی مثل تلگرام که با IP فیلتر شدن این سرویس کارایی نخواهد داشت اما باز هم پرسش و پاسخ DNS شما رو امن خواهد کرد و از فال‌گوش وایسادنشون واسه خوندنش جلوگیری خواهد کرد.بالاخره مهندسین برای عبور از فیلترنت به سمت اینترنت یا راهی خواهند یافت یا راهی خواهند ساخت ولی هیچ وقت ناامید نخواهند شد.</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Fri, 26 Feb 2021 01:20:28 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری آسان دستورات لینوکس و ویندوز با tldr</title>
                <link>https://virgool.io/@thisismzm/%D8%AA%D8%B1%D9%85%DB%8C%D9%86%D8%A7%D9%84%DB%8C%D8%A7-%D9%85%DB%8C%D8%AF%D9%88%D9%86%DB%8C%D8%AF-tldr-%DA%86%DB%8C%D9%87-rwspzm8gymp8</link>
                <description>too long; didn&#039;t read / tldrاز هر نوع سیستم عاملی که استفاده میکنی این موضوع رو بخون اگرچه این مطلب بر اساس تجربه من تو اوبونتو نوشته شده.من همیشه واسم سخت بود که تو اوبونتو (ubuntu) صفحات طولانی راهنمای یه دستور بخونم. مثلا وقتی میخواستم از دستور rsync یا tar استفاده کنم و دستور man rsync رو میزدم با یک حجم عظیمی از مستندات مواجه میشدم که خوندنش گاهی اوقات خسته کننده بود واسم یا اون لحظه وقتشو نداشتم اون همه مستندات بخونم که بتونم ازش استفاده کنم.اینجا میخوام ابزاریو معرفی کنم که کمک میکنه استفاده از یک دستور رو خیلی سریع و کاربردی یاد بگیری. اسم این ابزار tldr هست که از Too Long; Didn’t Read گرفته شده.جالبه که روش کارش خیلی سادس، واسه هر دستوری چند مثال کاربردی رو آماده کرده و نمایش میده، اکثر مواقع اون چیزی که نیاز داریو از تو اون مثال ها میتونی پیدا کنید.برای نصبش پیشنهاد میکنم از سایت خودش به آدرس tldr.sh استفاده بشه که کامل مراحل توضیح داده، اما واسه اینکه با خروجی این ابزار آشنا بشی کافیه یه نگاهی به عکسای زیر بندازی.راهنمای دستور tar در اوبونتوراهنمای دستور top در اوبونتو</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Fri, 04 Dec 2020 03:12:22 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش تنظیم Environment Variables در لینوکس/Linux</title>
                <link>https://virgool.io/@thisismzm/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AA%D9%86%D8%B8%DB%8C%D9%85-environment-variables-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3linux-kysng0k8s2vq</link>
                <description>Linux Environment Variablesشاید شما هم مثل من دردسرهای زیادی بابت تنظیم کردن این نوع متغیرها در محیط لینوکس کشیده باشین و بعد از کلی تلاش بازم به اون نتیجه‌ای که میخواین نرسیده باشین. اینجا من قصد دارم نحوه تنظیم این نوع متغیرها رو بر اساس تجربه و آموزش‌هایی که دیدم معرفی کنم. توی لینوکس این متغیرها به دو نوع تقسیم میشن:متغیرهای تعریف شده توسط سیستم یا System Definedمتغیرهای تعریف شده توسط کاربر یا User Definedبه‌طور مثال PWD از متغیرهای تعریف شده توسط سیستم هست که مقدار ذخیره شده داخلش همیشه دایرکتوری‌ای هست که داخلش هستیم، برای مشاهده میتونی دستور زیر رو داخل ترمینال لینوکستون اجرا کنین (با دستور env میتونین همه متغیرهایی که تنظیم شده رو مشاهده کنین):echo $PWDما میتونیم این متغیرها رو به ۳ نوع تعریف کنیم:۱. متغیرهای تعریف شده به صورت محلی یا Local Environment Variableاین نوع متغیرها تا زمانی میمونن که کاربر ترمینالشو نبسته یا اگه به سروری وصل شده تا زمانی که اتصالش قطع بشه، در واقع تا زمانی که session اون ترمینال به پایان برسه. این نوع متغیرها برای تعریف شدن نیاز به هیچ فایلی ندارن و با چند دستور میشه تعریف و استفادشون کرد. در زیر نمونه‌ای از این نوع متغیرها رو نوشتم:MY_NAME=&amp;quotMZM&amp;quot
echo $MY_NAME
unset MY_NAME
echo $MY_NAMEدر دستورات بالا به ترتیب اول یک متغیر تعریف کردیم و بعد چاپش کردیم که مقدار MZM رو تو صفحه ترمینال نمایش میده و بعد متغیر رو حذف کردیم و برای اطمینان از حذف شدن چاپش کردیم که مطمئنا هیچ مقداری چاپ نخواهد شد.۲. متغیرهای تعریف شده برای یک کاربر خاص یا User Environment Variableاین نوع متغیرها برای یک کاربر خاص تعریف میشن،‌ یعنی زمانی که اون کاربر خاص به صورت لوکال یا ریموت لاگین میکنه وجود دارن و میشه ازشون استفاده کرد. برای تعریف این نوع متغیرها میشه از فایل‌های زیر استفاده کرد:~/.bashrc
~/.bash_profile
~/.bash_login
~/.profileهمونطور که بالا نوشته شده این فایل‌ها در مسیر دایرکتوری خانه (HOME$) کاربر قرار دارن.۳. متغیرهای تعریف شده در سطح سیستم یا System wide Environment Variablesاین نوع متغیرها در تمام سطح سیستم وجود دارن یعنی همه کاربرا میتونن ازشون استفاده کنن، برای تعریف این متغیرها باید اونارو تو یکی از فایل‌ها یا دایرکتوری زیر تعریف کرد:/etc/environment
/etc/profile
/etc/profile.d/
/etc/bash.bashrcخب حالا بریم ببینیم هر کدوم از این فایل‌ها برای چی استفاده میشه و چه تفاوتی با هم دارن:فایل bashrc.این فایل متغیرها رو در سطح کاربر تعریف میکنه. هر دفعه که کاربر یک ترمینال جدید رو باز میکنه متغیرهای تعریف شده در این فایل تنظیم خواهند‌شد.فایل bash_profile. یا profile.این فایل متغیرها رو در سطح کاربر تعریف میکنه اما زمانی اجرا میشه که کاربر تو سیستم لاگین کنه چه به صورت ریموت و چه به صورت لوکال. اگر این فایل وجود نداشته باشه از فایل bash_login. یا bashrc. استفاده میشه.فایل etc/environment/این فایل متغیرها رو در سطح سیستم تعریف میکنه و برای همه کاربرها متغیرهای تعریف شده در این فایل قابل دسترس هست.فایل etc/bash.bashrc/این فایل متغیرها رو در سطح سیستم تعریف میکنه اما فقط برای کاربرهایی که ترمینال رو باز می‌کنن و به لاگین کردن کاربر مربوط نمیشه و تنها با باز کردن ترمینال این کار انجام میشه.فایل etc/profile/این فایل متغیرها رو در سطح سیستم تعریف میکنه اما فقط برای کاربرهایی که به سیستم لاگین می‌کنن. این فایل همچنین تمام فایل‌هایی که در دایرکتوری etc/profile.d/ هستن رو هم اجرا میکنه و اگر متغیری تو اون فایل‌ها تعریف شده باشه برای کاربر در دسترس خواهد بود.و در پایان اگر تغییری تو هر کدوم از این فایل‌ها دادین و خواستین تغییرات خودتون رو تست کنین میتونین از دستور source استفاده کنین. به طور مثال اگه من تغییری تو فایل bashrc. دادم برای مشاهده تغییرات باید دستور زیر رو اجرا کنم:source ~/.bashrc</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Thu, 02 Apr 2020 22:04:48 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش نصب کامپوزر (composer) در لینوکس Ubuntu</title>
                <link>https://virgool.io/@thisismzm/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D8%B2%D8%B1-composer-%D8%B1%D9%88%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-ubuntu-1804-xt4otxczwiul</link>
                <description>Composer - A PHP Dependency Managerکامپوزر / composer یک Dependency Manager برای زبان PHP هست، اطلاعات بیشتر رو میتونین در این آدرس مشاهده کنین.برای نصب اول ترمینال لینوکس رو باز کنین (با کلیدهای میان‌بر ctrl+alt+t میشه این کارو کرد)بعد از باز کردن ترمینال اول دستور cd /tmp و بعد nano composer-installer.sh رو مشابه شکل زیر تایپ و اجرا کنید:ایجاد فایل composer-installer.shبا این کار شما یک فایل به نام composer-installer.sh ساختین و با ادیتور nano بازش کردین. حالا میخوایم اسکریپتی که برای نصب composer لازم هست رو داخل این فایل بنویسیم. برای این کار اسکریپت زیر رو کپی کنید:#!/bin/sh
EXPECTED_CHECKSUM=&amp;quot$(wget -q -O - https://composer.github.io/installer.sig)&amp;quot
php -r &amp;quotcopy(&#039;https://getcomposer.org/installer&#039;, &#039;composer-setup.php&#039;);&amp;quot
ACTUAL_CHECKSUM=&amp;quot$(php -r &amp;quotecho hash_file&#40;&#039;sha384&#039;, &#039;composer-setup.php&#039;&#41;;&amp;quot)&amp;quot
if [ &amp;quot$EXPECTED_CHECKSUM&amp;quot != &amp;quot$ACTUAL_CHECKSUM&amp;quot ]
then
    &gt;&amp;2 echo &#039;ERROR: Invalid installer checksum&#039;
    rm composer-setup.php
    exit 1
fi
php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
exit $RESULTحالا برای قراردادن محتوا داخل فایل دوباره به محیط ترمینال برگردین و کلیدهای میانبر ctrl+shift+v رو بزنید، بعد از این کار اسکریپتی که کپی کردین داخل فایل قرار میگیره و باید تصویری شبیه زیر رو ببینید:قراردادن اسکریپت نصب composer در فایلبرای ذخیره محتوایی که داخل فایل گذاشتین کلیدهای میانبر ctrl+x و سپس کلید y و سپس Enter رو بزنید، با این کار محتوا ذخیره شده و ادیتور nano بسته میشه.الان شما باید یک فایل به نام composer-installer.sh داخل دایرکتوری tmp داشته باشین،‌ برای مطمئن شدن از این موضوع میتونین دستور زیر رو اجرا کنین:ls | grep composer-installer.shخروجی این دستور باید شبیه تصویر زیر باشه که نشون میده این فایل وجود داره:بررسی وجود فایل برای نصب composerبرای این که فایل ایجاد شده قابلیت اجرا شدن داشته باشه دستور زیر رو اجرا کنید:sudo chmod +x composer-installer.shبعد از این کار برای اجرای فایل دستور زیر رو اجرا کنید و چند لحظه منتظر بمونید تا اجرای اسکریپ تموم بشه:./composer-installer.shاگر اسکریپت بدون خطا اجرا شده باشه، یک فایل به نام composer.phar ایجاد شده که میتونین با دستور ls از وجود این فایل مطمئن بشین. در صورتی که فایل ایجاد شده بود دستور زیر رو اجرا کنید:mv composer.phar /usr/local/bin/composerو بالاخره با اجرای دستور زیر میتونین مطمئن بشین که composer نصب شده:composerخروجی دستور composer پس از نصبدر صورتی که بعدا خواستین composer رو اپدیت کنین با دستور زیر میتونین این کار انجام بدین:composer self-updateاسکریپت قرار داده شده در این آموزش از این آدرس کپی و دستورات روی ubuntu 18.04 اجرا شده، هم‌چنین در طول این آموزش از ادیتور nano استفاده شده ولی شما میتونین از ادیتور مورد علاقه خودتون برای این کار استفاده کنین.امیدوارم این آموزش مفید باشه براتون.</description>
                <category>محمد زارع مقدم</category>
                <author>محمد زارع مقدم</author>
                <pubDate>Thu, 02 Apr 2020 15:20:03 +0430</pubDate>
            </item>
            </channel>
</rss>