تشخیص محل قرارگیری فایل های یک کاربر (User) در سرور (Server) لینوکس (Linux) (سرور دارای کنترل پنل DirectAdmin) (مثلا مسیر home/kelidestanuser/public_html/)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
همان طور که در مباحث اولیه بخش ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH ، در وب سایت کلیدستان گفتیم، فرض ما بر این است که سرور (Server) لینوکس (Linux) مورد نظرمان برای بارگذاری وب سایت های اینترنتی (Website) در اینترنت است و بنابراین علاوه بر یک سیستم عامل لینوکس (Linux)، یک کنترل پنل (مثل کنترل پنل DirectAdmin) نیز بر روی سرور (Server) نصب شده است.
حال می خواهیم به این موضوع بپردازیم که اگر از طریق محیط گرافیکی کنترل پنل (مثل کنترل پنل DirectAdmin)، یک کاربر (User) جدید بسازیم، فایل های مربوط به آن کاربر (User)، در چه مسیری (Path) از سرور (Server) قرار می گیرند. تا در صورت لزوم، بدانیم که در هنگام ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH ، برای تغییر فایل های مربوط به آن کاربر (User)، باید به چه مسیری از سرور (Server) لینوکس (Linux) برویم.
فرض کنید که یک سرور (Server) لینوکس (Linux) داریم که دارای کنترل پنل DirectAdmin می باشد. بنابراین هنگامی که یک کاربر (User) جدید در کنترل پنل DirectAdmin می سازیم (در محیط گرافیکی آن)، در یک مسیر (Path) خاص از سرور (Server) لینوکس (Linux)، یک پوشه (Folder) جدید ساخته می شود که فایل های مربوط به آن کاربر (User)، در آن پوشه قرار خواهئد گرفت.
ما در سرور (Server) لینوکس (Linux)، یک پوشه (Folder) با نام home داریم :
هرگاه که یک کاربر (User) جدید در کنترل پنل DirectAdmin می سازیم، یک پوشه (Folder) جدید با نام آن کاربر (User) جدید، در این پوشه home ساخته می شود، که فایل های مربوط به آن کاربر (User)، در این پوشه (Folder) جدید قرار خواهد گرفت (یک سری فایل های اولیه در زمان ساخت کاربر (User) جدید، در این پوشه قرار می گیرد و هر فایلی هم که خود کاربر (User) آپلود (Upload) کند، در مسیری از زیرشاخه های همین پوشه، قرار خواهد گرفت. در واقع، بخش اختصاص یافته از سرور (Server) به این کاربر (User) جدید می باشد).
به عنوان مثال، اگر کاربر (User) جدید دارای نام kelidestanuser باشد، پوشه ای (Folder) که برای آن ساخته می شود، دارای نام kelidestanuser بوده و در مسیر (Path) زیر از سرور (Server) ساخته می شود :
دقت کنید که آنچه ما بازدیدکنندگان وب سایت ها در اینترنت (توسط مرورگر اینترنت)، در وب سایت اینترنتی (Website) مربوط به آن کاربر (User) می بینیم (مثلا وب سایت kelidestan.com با فرض اینکه متعلق به کاربر kelidestanuser باشد)، در پوشه public_html که یک زیرپوشه (Subfolder) از پوشه (Folder) اصلی kelidestanuser می باشد، قرار می گیرد :
البته آدرس بالا، یک لینک از نوع Symlink (یا Symbolic Link یا Soft Link) است (آن را با لینک های عادی اشتباه نگیرید). یعنی در واقع اصل فایل های درون آن، در یک مسیر (Path) اصلی دیگر قرار گرفته اند و تنها لینک از نوع Symlink به ما کمک می کند که در مسیری (Path) کوتاه تر، به آنها دسترسی داشته باشیم (وقتی به فایل های درون آن دسترسی داریم یا آنها را تغییر می دهیم، در واقع دسترسی ما به فایل ها در مسیر (Path) اصلی آنها است و تغییرات نیز به آنها در همان مسیر (Path) اصلی اعمال می گردد).
بنابراین پوشه public_html ، دارای یک مسیر (Path) اصلی است که بستگی به نام دامنه (Domain) مربوط به وب سایت (Website) کاربر دارد (کاربر برای هر دامنه ای که تعریف کرده باشد، یک پوشه با نام public_html مختص آن دامنه خواهد داشت. در ادامه، در مورد حالت دارای بیش از یک دامنه صحبت خواهیم کرد). مثلا با فرض اینکه نام دامنه (Domain) وب سایت (Website) کاربر برابر kelidestan.com باشد، پوشه public_html مربوط به آن، دارای مسیر (Path) اصلی زیر خواهد بود :
اما به هر حال، تفاوتی ندارد و می توانید با هر دو کار کنید (اولی چون کوتاه تر است، بهتر می باشد).
اگر کاربر بیش از یک دامنه (Domain) داشته باشد (بیش از یک وب سایت)، آنگاه باید بررسی کنید و ببینید که آن لینک از نوع Symlink ، به پوشه public_html کدامیک از دامنه ها (Domain) لینک شده است (برای بقیه دامنه ها، باید با مسیر (Path) اصلی آنها کار کنید).
برای هر دامنه ای (Domain) که کاربر (User) تعریف کند، یک پوشه (Folder) جدید با نام آن دامنه (Domain)، در مسیر زیر ساخته می شود (با فرض اینکه نام کاربر برابر kelidestanuser باشد) :
به عنوان مثال، فایل index.php که صفحه اصلی وب سایت kelidestan.com بوده و دارای آدرس اینترنتی زیر است :
در سرور (Server) لینوکس (Linux)، در مسیر زیر قرار گرفته است (با فرض متعلق بودن وب سایت kelidestan.com به کاربر kelidestanuser و همچنین با این فرض که کاربر تنها یک دامنه داشته باشد) :
یا در واقع، در مسیر (Path) اصلی زیر :
بنابراین فایل های هر وب سایت اینترنتی (دامنه اینترنتی) متعلق به کاربر، درون پوشه public_html مربوط به آن دامنه (Domain) اینترنتی در سرور (Server) قرار می گیرد و بازدیدکنندگان آن دامنه (Domain) اینترنتی، دارای دسترسی به محتوای خارج از پوشه public_html نمی باشند و نمی توانند آنها را ببینند (معمولا فایل های back up و ... را کاربر در خارج از پوشه public_html نگه می دارد تا از طریق وب سایت، در دسترس بازدیدکنندگان نباشد، زیرا ممکن است که با حدس زدن نام فایل، یک بازدیدکننده اقدام به دانلود فایل های back up و ... کند).
مثالی دیگر و همچنین بررسی حالت تعریف زیردامنه (Subdomain) :
این بار مثالی دیگر را ذکر می کنیم که در آن، یک زیردامنه (Subdomain) نیز برای کاربر (User) تعریف شده باشد.
در رابط گرافیکی کنترل پنل DirectAdmin ، قبلا یک کاربر (User) با نام myuser تعریف کرده ایم و کاربر دارای یک دامنه (Domain) با آدرس kelidestan.com و یک زیردامنه (Subdomain) با آدرس dl.kelidestan.com می باشد (برای آن تعریف شده است).
در اینجا، کاری با تنظیمات تعیین یک زیردامنه (Subdomain) برای یک دامنه (Domain) نداریم و فرضمان بر این است که این تنظیمات را خود کاربر (User) برای زیردامنه (Subdomain) انجام داده است و صرفا منظورمان نحوه قرار دادن فایل های یک زیردامنه (Subdomain) بر روی یک سرور (Server) لینوکس (Linux) می باشد. اصلا برای اینکه گیج نشوید، می توانید دامنه (Domain) را برابر آدرس kelidestan.com و زیردامنه (Subdomain) را برابر آدرس dl.test.com در نظر بگیرید تا بدانید که ارتباط بین این دو، برایمان مهم نیست و کاری با آن نداریم (معمولا وقتی یک زیردامنه مثل dl.kelidestan.com برای دامنه kelidestan.com تعیین می شود، باید تنظیماتی برای دامنه kelidestan.com اعمال گردد، که مورد بحث ما نیست).
با دانستن اطلاعات قبل (نام کاربر و آدرس دامنه و آدرس زیر دامنه)، می توانیم موارد زیر را تشخیص دهیم :
پوشه (Folder) ساخته شده برای قرارگیری فایل های کاربر (User) بر روی سرور (Server) لینوکس (Linux)، در مسیر (Path) زیر می باشد :
موارد مربوط به دامنه kelidestan.com :
چون کاربر (User) دارای یک دامنه (Domain) با آدرس kelidestan.com می باشد، یک پوشه (Folder) برای دامنه kelidestan.com ساخته شده است که در مسیر (Path) زیر قرار دارد :
و پوشه public_html برای دامنه kelidestan.com که در آن، فایل های وب سایت (Website) (یعنی دامنه اینترنتی kelidestan.com) برای دسترسی بازدیدکنندگان وب سایت، قرار داده شده است (و کاربر فایل های خود برای وب سایت را در آن آپلود (Upload) می کند)، در مسیر (Path) زیر قرار دارد :
بنابراین فایل با آدرس اینترنتی زیر :
در مسیر زیر از سرور (Server) لینوکس (Linux) قرار گرفته است :
موارد مربوط به زیردامنه dl.kelidestan.com :
چون کاربر (User) دارای یک زیردامنه (Subdomain) با آدرس dl.kelidestan.com می باشد، یک پوشه (Folder) برای زیردامنه dl.kelidestan.com ساخته شده است که در مسیر (Path) زیر قرار دارد :
و پوشه public_html برای زیردامنه dl.kelidestan.com که در آن، فایل های وب سایت (Website) (یعنی زیردامنه اینترنتی dl.kelidestan.com) برای دسترسی بازدیدکنندگان وب سایت، قرار داده شده است (و کاربر فایل های خود برای وب سایت (زیردامنه) را در آن آپلود (Upload) می کند)، در مسیر (Path) زیر قرار دارد :
بنابراین فایل با آدرس اینترنتی زیر :
در مسیر زیر از سرور (Server) لینوکس (Linux) قرار گرفته است :
لینک از نوع Symlink (یا Symbolic Link یا Soft Link) برای پوشه public_html (که البته چون یک دامنه و یک زیردامنه داریم، باید تشخیص داده شود که مربوط به کدام است)، دارای مسیر (Path) زیر می باشد :
برای تشخیص اینکه، لینک از نوع Symlink با مسیر (Path) بالا، به کدامیک از دو پوشه public_html مربوط به دامنه kelidestan.com و زیردامنه dl.kelidestan.com ، لینک شده است، باید خود لینک Symlink را بررسی نمایید.
برای این منظور، می توانید به پوشه حاوی آن Symlink بروید (یعنی پوشه فعلی (Current Working Directory)، همان پوشه حاوی آن Symlink باشد) و دستور ls را به صورت زیر اجرا نمایید تا با نمایش جزئیات مربوط به فایل ها و پوشه ها، آدرس لینک مربوط به Symlink را نیز مشاهده کنید ( کلید شماره 740 ) :