<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Farzin.bidokhti</title>
        <link>https://virgool.io/feed/@Farzin.bidokhti</link>
        <description>برنامه نویس - عاشق کار تیمی ام و دارم کم کم کارتیمی رو یاد میگیرم - این طبیعتو با همه چیزش دوست دارم.</description>
        <language>fa</language>
        <pubDate>2026-06-07 18:13:39</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/91123/avatar/lMnbNC.png?height=120&amp;width=120</url>
            <title>Farzin.bidokhti</title>
            <link>https://virgool.io/@Farzin.bidokhti</link>
        </image>

                    <item>
                <title>نحوه راه اندازی هاست مجازی آپاچی در لینوکس</title>
                <link>https://virgool.io/@Farzin.bidokhti/%D9%86%D8%AD%D9%88%D9%87-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%87%D8%A7%D8%B3%D8%AA-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%A2%D9%BE%D8%A7%DA%86%DB%8C-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-jnfvujtvcb9w</link>
                <description>آپاچی Apachدر این مقاله تصمیم داریم با هم نحوه ساخت هاست مجازی آپاچی در لینوکس رو با هم یاد بگیریم.گام اول - ساخت پوشهدر این گام ما ابتدا پوشه ای که قرار است تمام داده های سایت ما در آن قرار بگیرن رو ایجاد می کنیم. این پوشه را در مسیر var/www/ ایجاد می کنیم. برای ایجاد پوشه در مسیر ذکر شده از دستور زیر استفاده می کنیم:sudo mkdir -p /var/www/sample.dev/public_htmlگام دوم - اعطاء مجوزپوشه ای که ما در مرحله قبل ایجاد کردیم مالک آن root می باشد، اگر میخواسته باشیم کاربری که ورود کرده به سیستم عامل مالک پوشه و فایل های ما باشد باید مالکیت آن را با استفاده از دستور زیر تغییر دهیم:sudo chown -R $USER:$USER /var/www/sample.dev/public_htmlهمچنین نیاز است تا ما مجوز های پوشه var/www/ را تغییر دهیم تا مطمئن شویم تمامی محتویات این پوشه دسترسی خواندن را دارند، برای انجام این کار از دستور زیر استفاده می کنیم:sudo chmod -R 755 /var/wwwگام سوم - ایجاد صفحه پیش فرضفایلی با عنوان index.html در مسیر var/www/sample.dev/public_html/ ایجاد می کنیم، برای انجام این کار از دستور زیر استفاده می کنیم:sudo nano /var/www/sample.dev/public_html/index.htmlبا زدن دستور بالا، فایل index.html در ویرایشگر nano باز خواهد شد و در این فایل کدهای زیر را وارد می کنیم:&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;عنوان&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;سایت من&lt;/h1&gt;
    &lt;/body&gt;
&lt;/html&gt;توجه داشته باشید که در ویرایشگر nano برای ذخیره تغییرات باید از کلید های ترکیبی Ctrl + x استفاده کنید و سپس y را وارد نمایید و enter را بزنید.گام چهارم - ایجاد فایل هاست مجازی جدیدفایل هاست مجازی فایلی است که پیکربندی هاست مجازی ما در آن قرار دارد و به آپاچی می گوید که در برابر درخواست های مختلف دامنه چه پاسخی بدهد. ما از فایل پیش فرض هاست مجازی کهبه صورت در آپاچی وجود دارد کپی می گیریم:sudo cp /etc/apache2/sites-available/000-default.conf   /etc/apache2/sites-available/sample.dev.confبا کمک ویرایشگر nano فایل sample.dev.conf را باز می کنیم: sudo nano /etc/apache2/sites-available/sample.dev.confپس از اجرای دستور بالا محتویات زیر را خواهیم داشت:&lt;VirtualHost *:80&gt;
    ...
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ...
&lt;/VirtualHost&gt;در قسمت ServerAdmin می نویسیم admin@sample.dev و در قسمت DocumentRoot می نویسیم var/www/sample.dev/public_html. در ادامه ما بخش ServeName و ServerAlias را اضافه می کنیم و در نهایت فایل ما به صورت زیر خواهد بود:&lt;VirtualHost *:80&gt;
    ...
    ServerAdmin webmaster@localhost
    ServerName sample.dev
    ServerAlias www.sample.dev
    DocumentRoot /var/www/sample.dev/public_html
    ...
&lt;/VirtualHost&gt;پیکربندی فایل هاست مجازی ما تمام شد و فایل را ذخیره می کنیم.گام پنجم - فعال سازی فایل پیکربندی هاست مجازیبرای فعال سازی فایل پیکربندی فایل هاست مجازی که با عنوان sample.dev.conf ایجاد کردیم از دستور زیر استفاده می کنیم:sudo a2ensite sample.dev.confبا اجرای دستور بالا پیامی با متن زیر برای شما نمایش داده خواهد شد:Enabling site sample.dev 
To activate the new configuration, you need to run:
    systemstl reload apache2قبل از باگذاری مجدد آپاچی، نیاز است که فایل پیکربندی پیش فرض سرور آپاچی را غیر فعال کنیم:sudo a2dissite 000-default.confبا اجرای دستور بالا پیامی با متن زیر برای شما نمایش داده خواهد شد:site 000-default.conf disabled.  
To activate the new configuration, you need to run:
     systemstl reload apache2سپس برای بررسی وجود نداشتن خطا در پیکربندی آپاچی از دستور زیر استفاده می کنیم:sudo apache2ctl configtestپس از اجرای دستور زیر در صورت وجود نداشتن خطا پیام زیر را مشاهده می کنیم:Syntax OKحالا نوبت به این میرسه که سرور آپاچی خودمون رو بارگذاری مجدد کنیم:sudo systemctl status apache2گام ششم - پیکربندی فایل hostفایل host در پوشه ect قرار دارد برای ویرایش این فایل از ویرایشگر nano استفاده می کنیم:sudo nano /etc/hostپس از اجرای دستور بالا محتویات زیر را خواهیم دید، در این فایل ما آدرس سرور مد نظر و نام سایت را وارد می کنیم:127.0.0.1       localhost
...
127.0.0.1       sample.devما در این مقاله نحوه ایجاد هاست مجازی را با هم یاد گرفتیم.موفق باشید.</description>
                <category>Farzin.bidokhti</category>
                <author>Farzin.bidokhti</author>
                <pubDate>Sun, 12 Mar 2023 19:45:05 +0330</pubDate>
            </item>
                    <item>
                <title>کامپوزر چگونه فایل های PHP را Autoload می کند؟</title>
                <link>https://virgool.io/@Farzin.bidokhti/%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D8%B2%D8%B1-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-php-%D8%B1%D8%A7-autoload-%D9%85%DB%8C-%DA%A9%D9%86%D8%AF-cdnbsc5ujpvo</link>
                <description>کامپوزر composer کامپوزر (Composer) چیست؟ کامپوزر ابزاری برای مدیریت وابستگی ها (کتابخونه ها، پکیج ها) در پی اچ پی است.بارگذاری خودکار (Autoloading) چیست؟برای بارگذاری فایل ها ما از دو تابع ()include یا ()require استفاده می کنیم. بارگذاری خودکار به این معنی است فایل هایی که مورد نیاز پروژه ما است به صورت خودکار بارگذاری می شوند. بارگذاری خودکار به ما این اجازه را می دهد که فایل های خودمان را بدون استفاده کردن از دو تابع ()include یا ()require در پروژه استفاده کنیم.چرا ما به بارگذاری خودکار (Autoloading) احتیاج داریم؟استفاده کردن از دو تابع ()include یا ()require مشکلی بوجود نمیاورد اما این دوتابع برای بارگذاری فایل های پروژه هایی که کوچک هستن راه حل خوبی است، اما برای پروژه های بزرگ راه حل مناسبی نیست.بارگذاری خودکار (Autoloading) چگونه کار می کند؟public function autoloader($className)
{
    include &#039;/libs/&#039; . $className . &#039;.php&#039;;
}

spl_autoload_register(&#039;autoloader&#039;);
$object = new Sample();در این قطعه کد ما از تابع spl_autoloader_register که مربوط به PHP است استفاده کردیم. , و این تابع، تابع ما را register می کند. در ابتدا PHP تابع autoloader ما را ثبت کرده است و زمانی که ما نمونه سازی می کنیم تابع autoloader، کلاس مورد نیاز (Sample) را include می کند.انواع بارگذاری خودکار (autoloading):FilesClassmapPSR-0PSR-4انواع بارگذاری و قوانین آن ها را ما می توانیم در فایل composer.json تعریف کنیم.بارگذاری خودکار به روش Files:بارگذاری خودکار به روش Files، شبیه کار با include یا require می باشد و تمام سورس فایل را بارگذاری می کند. تمام سورس فایل هایی که در کلید files تعریف می شود در هر بار اجرای برنامه بارگذاری می شوند. برای استفاده کردن از روش بارگذاری Files، ما لیستی از فایل های خود را مانند کد زیر در کلید files که در فایل composer.json قرار دارد می گذاریم:{
   &amp;quotautoload&amp;quot : {
        &amp;quotfiles&amp;quot : [&amp;quotlib/Book.php&amp;quot,  &amp;quotlib/User.php&amp;quot]
    }
}در مرحله بعدی ما باید از دستور composer dump-autoload استفاده کنیم تا فایل های مورد نیاز بارگذاری خودکار ایجاد شود. در آخر فایل autoload.php را که در پوشه vendor قرار دارد را در خط اول فایل ای که قرار است  بارگذاری فایل ها انجام شود قرار می دهیم.&lt;?php 
    require &amp;quotvendor/autoload.php&quot;
?&gt;بارگذاری خودکار به روش Classmap:بارگذاری خودکار به روش classmap نسخه بهبود یافته از بارگذاری Files می باشد. در این روش ما فقط لیستی از پوشه هایی که کلاس های ما در آن قرار دارد را در کلید classmap قرار می دهیم. مانند نمونه کد زیر:{
    &amp;quotautoload&amp;quot : {
         &amp;quotclassmap&amp;quot : [&amp;quotlib&amp;quot]
     }
 }سپس دستور composer dump-autoload را اجرا می کنیم. تمامی فایل های ما در پوشه lib آماده بارگذاری خودکار هستند.بارگذاری خودکار به روش PSR-0:بارگذاری خودکار به روش PSR-0 استاندارد ای هست که توسط گروه PHP-FIG پیشنهاد شده است. در این روش ما باید از فضاهای نام namespaces استفاده کنیم با ساختار:\&lt;vendor name&gt;\&lt;namespace&gt;\*&lt;Class name&gt;همچنین کلاس های ما باید با همین ساختار پوشه ذخیره شده باشند در ادامه با هم نگاهی به فایل composer می اندازیم:{
   &amp;quotautoload&amp;quot : {
           &amp;quotpsr-0&amp;quot : {
                 &amp;quotLib\\Sample&amp;quot : &amp;quot/src&amp;quot
            }
    }}در این جا ما به کامپوزر می گوییم که هر موقع فضای نام Lib\Sample صدا زده شد، این فایل در مسیر زیر قرار دارد: src\Lib\Sampleلطفا به نمونه کد زیر توجه کنید:&lt;?php 
    namespace Lib\Sample;

    Class User
    {
          // ...
    }
?&gt;
------------------------------------------------------------------------------------
&lt;?php
      require &amp;quotvendor/autoload.php&quot;

      $object = new Lib\Sample\User();
?&gt;بارگذاری خودکار به روش PSR-4:بارگذاری خودکار به روش PSR-4 همانند استاندارد PSR-0 استُ اما در این روش نیازی نیست ساختار پوشه بندی را در فضاهای نام (namespaces) تقلید کنیم. در روش PSR-0 فضاهای نام ما بر اساس ساختار پوشه بندی است. لطفا به محتویات فایل کامپوزر توجه کنید:{
   &amp;quotautoload&amp;quot : {
           &amp;quotpsr-4&amp;quot : {
                 &amp;quotLib\\Sample\\&amp;quot : &amp;quot/src&amp;quot
            }
    }}متوجه تفاوت فایل کامپوزر با فایل کامپوزر در روش قبل شدید؟بله درسته، در این روش ما در آخر فضای نام از backslash استفاده کردیم (\). ما در این روش به کامپوزر می گوییم که هر چیزی با فضای نام Lib\Sample شروع شد، تمامی فایل ها در پوشه src در دسترس هستند و نیازی نیست که ما پوشه های Lib و Sample ایجاد کنیم.نتیجهدر این مقاله ما توانستیم با کامپوزر، نحوه بارگذاری خودکار و انواع روش های بارگذاری خودکار آشنا شویم.موفق باشید.</description>
                <category>Farzin.bidokhti</category>
                <author>Farzin.bidokhti</author>
                <pubDate>Fri, 10 Mar 2023 17:09:35 +0330</pubDate>
            </item>
            </channel>
</rss>