دستورالعمل‌های کمکی

در این صفحه سعی می‌کنیم دستورالعمل‌های که می‌تواند در بخش مدیریت سرور به شما کمک کند تا بدون مشکل از پچیم استفاده کنید را به شما ارائه کنیم.

جدول محتوا

ریست کردن پسورد sudo کاربر pachim

پچیم پسورد‌ کاربران سرور را ذخیره سازی نمی‌کند از این رو امکان ریست کردن آن را نیز ندارد. برای ریست کردن پسورد کاربر pachim شما نیاز است که با استفاده از SSH به عنوان کاربر root وارد سرور شوید.

بعد از آنکه به عنوان کاربر root وارد سرور شدید با اجرای دستور passwd pachim می‌توانید اقدام به تعریف دوباره پسورد کار اصلی یعنی pachim کنید.

ریست کردن FPM و Opcache

اگر Opcache را بر روی سرور خود فعال کرده‌اید و می‌خواهید با هر استقرار جدید از کدهای شما، FPM بروزرسانی شود، می‌توانید کد زیر را در اسکریپت استقرار خود قرار دهید تا بدون هیچ کار اضافه‌ای، این مورد برای شما انجام شود.

( flock -w 10 9 || exit 1
    echo 'Restarting FPM...'; sudo -S service $PACHIM_PHP_FPM reload ) 9>/tmp/fpmlock

همچنین اگر می‌خواهید از طریق دسترسی SSH مواردی مثل Opcache و FPM را ریست کنید می‌توانید از دستور زیر استفاده کنید.

echo "" | sudo -S service phpx.x-fpm reload

دقت کنید در دستور بالا بجای phpx.x باید مقدار باینری ورژن مورد نظر php را وارد کنید. برای اجرای بدون مشکل این دستور هم نیاز به دسترسی root سرور خواهید داشت.

آپگرید کردن Nginx

در هر بار راه‌اندازی سرور اگر سرور شما نیاز به نصب nginx داشته باشد ما آخرین ورژن موجود و stable آن را نصب می‌کنیم، اگر چه با گذشت زمان ممکن است نیاز به این داشته باشیدکه nginx را به آخرین ورژن آپگرید کنید . برای این کار از دستور زیر می‌توانید بهره ببرید.

sudo apt-get install -y --only-upgrade nginx
sudo nginx -v
sudo service nginx restart
چرا پچیم به شکل خودکار آپگرید nginx را انجام نمی‌دهد؟

آپگرید کردن ورژن nginx می‌تواند باعث از کار افتادن سایت‌های شما به شکل موقتی شود البته به دلیل اینکه آپگرید nginx زمانبر است یا یا به هر دلیل ممکن است در ورژن جدیدتر مشکلاتی باشد که باعث قطعی دائمی سرور شما شود. از این رو پچیم این آپگرید کردن را به شکل اتوماتیک انجام نمی‌دهد و این را به عهده شما میگذارد که اگر حتما نیاز به انجام این کار را دارید از طریق دستور بالا اینکار را انجام دهید و البته ریسک انجام این کار هم با خود شماست.

آپگرید کردن Node.js

در زمان راه اندازی سرور مورد نظر شما، با توجه به نوع سرور اگر بر روی سرورتان نیاز به node.js باشد، پچیم همیشه آخرین ورژن از node.js را برای شما نصب و راه اندازی می‌کند اگرچه با گذشت زمان ممکن است نیاز داشته باشید که ورژن node.js خود را به آخرین ورژن آپگرید کنید که با استفاده از دستور زیر به سادگی می‌توانید اینکار را انجام دهید.

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -

sudo apt-get install -y nodejs

شما می‌توانید اطلاعات ورژن‌های مختلف node را مطالعه کنید.

آپگرید کردن Npm

در زمان راه اندازی سرور همیشه آخرین ورژن از npm بر روی سرور شما نصب می‌شود اما با گذشت زمان ممکن است ورژن‌های جدیدتری از npm در اختیار شما قرار بگیرد. شما هر زمان که بخواهید می‌توانید با اجرای دستور زیر اقدام به آپگرید کردن آن کنید.

sudo npm install npm@latest -g

البته دقت کنید در زمان راه اندازی سرور اگر سرور شما دارای npm باشد، یک زمانبندی به سرور شما برای اجرای هفتگی این دستور اضافه می‌شود تا به شما کمک کند همیشه npm را به روز نگه دارید. البته در صورت عدم نیاز به آن می‌توانید از قسمت مدیریت زمانبدی‌ها آن را حذف کنید.

قطع شدن ارتباط با پچیم

چندین دلیل مختلف می‌تواند باعث قطع شدن ارتباط سرور شما با پچیم باشد که ما در اینجا سعی می‌کنیم بعضی از این مشکلات و راحل‌های که برای آن وجود دارد را برایتان توضیح دهیم.

1- مشکل سرور شما فیزیکی باشد و اینترنت آن قطع شده باشد.

خیلی از اوقات ممکن است مشکلی در دیتاسنتر شما وجود داشته باشد که باعث خاموش شدن سرور یا قطع شدن اینترنت آن شده باشد. برای بررسی این موضوع نیاز به پینگ گرفتن از سرور است.

ping x.x.x.x 

به جای مقدار x.x.x.x مقدار IP عمومی سرور خود را وارد کنید و مطمئن شوید، خارج از سرور هم پینگ دارید اما در صورت اینکه پینگ نداشتید قطعا مشکل فیزیکی است و نیاز است به پشتیبانی ارائه دهنده سرور اختصاصی یا مجازی خود پیام دهید و پیگیری مشکل سرور خود را از آن‌ها انجام دهید.

2- بررسی آدرس IP عمومی سرور

در بعضی از ارائه دهندگان زمانی که سرور مجازی ریسارت می‌شود آی پی عمومی متفاوتی به سرور داده می‌شود. برای همین همیشه چک کنید IP عمومی سرور با IP عمومی که در پچیم ثبت کرد‌ه‌اید یکی باشد.

3- کلید SSH مربوط به پچیم به هر دلیلی از سرور شما حذف شده

پچیم با کلیدها اختصاصی SSH به سرور شما متصل می‌شود که ممکن است به هر دلیلی این کلید حذف شده یا تغییر کند (که البته این موضوع بسیار نادر است) اما حتما فایل‌های /root/.ssh/authorized_keys و /home/pachim/.ssh/authorized_keys را چک کنید و بررسی کنید که آیا کلید SSH که در این فایلih قرار گرفته با کلید SSH که به سرور شما در پچیم اختصاص داده شده یکی باشد. برای مشاهده کلید SSH پچیم برای سرور شما می‌توانید وارد قسمت تنظیمات سرور شوید.

4- کاراکترهای اضافه‌ای در کلید SSH پچیم قرار گرفته است

در زمان کپی کردن کلید عمومی پچیم در فایل‌های /root/.ssh/authorized_keys و /home/pachim/.ssh/authorized_keys ممکن است به اشتباه فاصله یا خط جدیدی به کلید SSH اضافه کرده باشید که برای این موضوع حتما باید مطمئن شوید که کلید را به درستی در فایل‌های مورد نظر قرار داده‌اید

5- سرور شما دارای فایروال دیتاسنتر یا مواردی شبیه به آن است

اگر سرور شما دارای فایروال خارجی، برای مثال فایروال دیتاسنتر است لطفا مطمئن شوید IP های پچیم در لیست سفید فایروال شما قرار دارد.

6- پورت 22 از قوانین فایروال سرور شما حذف شده

اگر به هر دلیلی این پورت از فایروال شما حذف شود، نه تنها پچیم بله خود شما هم مستقیما نمی‌توانید به سرور خود با SSH متصل شوید و نیاز است برای حل این موضوع به پشتیبانی ارائه دهنده سرور اختصاصی یا مجازی خود پیام دهید تا این پورت را مجددا به فایروال سرور شما اضافه کنند البته اگر توانایی اینکار را داشته باشند.

اگر مشکلات و راحل‌های بالا را چک کردید ولی با این حال ارتباط پچیم با سرور شما برقرار نشد دستورات زیر را یکبار اجرا کنید تا اجازه دسترسی فایل‌های مورد نیاز ارتباط با پچیم بررسی شود.

توجه کنید که کد زیر را باید با کاربر root اجرا کنید، بنابراین اگر دسترسی ssh به سرور خود را دارید ابتدا وارد سرور شوید و بعد با دستور sudo su - وارد کاربر root شوید و بعد دستورات زیر را اجرا کنید.

# Fixes the "root" user (run as root)

chown root:root /root
chown -R root:root /root/.ssh
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

# Fixes the "pachim" user

chown pachim:pachim /home/pachim
chown -R pachim:pachim /home/pachim/.ssh
chmod 700 /home/pachim/.ssh
chmod 600 /home/pachim/.ssh/authorized_keys

اگر کماکان با انجام همه مواردی که در بالا گفتیم مشکل شما باقی بود، در صورت اینکه هنوز دسترسی ssh به سرور خود را دارید وارد سرور شوید و با دستور sudo su - وارد کاربر root شوید و دستور زیر را اجرا کنید. خروجی که این دستور به شما نمایش می‌دهد را برای پشتیبانی پچیم ارسال کنید تا مشکل شما بررسی شود.

grep 'sshd' /var/log/auth.log | tail -n 10
مدیریت سرور با پچیم

اگر به هر دلیلی پچیم نتواند به سرور شما متصل شود، از طریق پنل کاربری سرور در پچیم هیچ کاری نمی‌توانید بر روی سرور خود انجام دهید.

ارور باز بودن تعداد زیادی فایل

اگر اروری از سرورتان دریافت کردید که عنوان یا بخشی از متن آن "too many open files" بود, به معنی این است که شما باید حداکثر مقدار فایلی که سیستم عامل شما اجازه میدهد در یک زمان پیکربندی کنید را افزایش دهید. این ارور ممکن است زمانی زیاد رخ دهد که شما درخواست های بسیار زیادی را از طریق وب دریافت کرده‌ و باید آن‌ها را پردازش کنید.

ابتدا چک کنید که حداکثر فایل‌های باز بر اساس سایز سرورتان درست تنظیم شده باشد. این مقدار معمولا برابر است با حداکثر 100 فایل باز به ازای 1 مگابایت RAM، یعنی اگر سرور شما دارای 4 گیگ RAM باشد حداکثر فایل‌های باز می‌تواند 409600 باشد.

برای آنکه متوجه شوید در حال حاضر حداکثر تعداد فایل‌های سیستم عامل شما چقدر است می‌توانید دستور sysctl fs.file-max را اجرا کنید، بعد از اجرای دستور، در خروجی حداکثر تعداد فایل‌های که می‌تواند باز باشد را می‌توانید مشاهده کنید. اگر زمانی تصمیم دارید این مقدار را افزایش یا کاهش دهید می‌توانید فایل /etc/sysctl.conf را باز و خط زیر را تغییر دهید.

fs.file-max = LIMIT_HERE 

با توجه به اینکه خط بالا محدودیت را بر اساس عددی که وارد کردید افزایش یا کاهش می‌دهد نیاز است فایل /etc/security/limits.conf را باز کنید و مقادیر زیر را در آن ثبت کنید دقت کنید به جای LIMIT_HERE باید عدد مورد نظر خود را وارد کنید.

root soft nofile LIMIT_HERE
root hard nofile LIMIT_HERE
pachim soft nofile LIMIT_HERE
pachim hard nofile LIMIT_HERE

و همچنین اگر کاربر ایزوله شده‌ای را در سرور خود ایجاد کردید نیاز دارید بعد از تنظیمات بالا این موارد را هم به همان فایل اضافه کنید.

isolated-user soft nofile LIMIT_HERE
isolated-user hard nofile LIMIT_HERE

به علاوه، اگر خطای "too many open files" در پردازش nginx زیاد دیده ‌شد (معمولا زمانی که از سرور توزیع بار استفاده می‌کنید این ارور ممکن است برای شما زیاد بوجود ‌آید)، همانند بالا در فایل /etc/security/limits.conf برای کاربر nginx هم مقدار زیر را وارد و مقداردهی کنید.

nginx soft nofile LIMIT_HERE
nginx hard nofile LIMIT_HERE

و همچنین مقدار زیر را به تنظیمات nginx به آدرس /etc/nginx/nginx.conf هم اضافه کنید.

worker_rlimit_nofile LIMIT_HERE;

بعد از اعمال تنظیم مربوط به nginx در بالا برای اعمال آن حتما نیاز است کن یکبار nginx را ریست کنید، برای اینکار می‌توانید از دستور زیر استفاده کنید از طریق پنل پچیم در خواست ریست شدن nginx را به سرور بفرستید.

service nginx restart

اجرا نشدن کار زمانبدی‌ شده

اشتباه وارد کردن کوچک‌ترین تنظیماتی برای ایجاد یک کار زمانبدی می‌تواند باعث عدم اجرای آن زمانبدی شود. از دستوری که قصد اجرای آن را دارید تا بازه زمانی آن.

پیشنهاد می‌کنیم دستوری که قصد اجرای آن را دارید یکبار با ترمینال و SSH اجرا کنید و اگر به درستی کار کرد برای درست وارد کردن بازه‌ زمانی هم می‌توانید از ابزار Crontab.guru استفاده کنید

حذف شدن قانون SSH از فایروال

اگر به هر دلیلی قانون SSH که مربوط به اجازه دادن دسترسی به پورت 22 سرور است را طریق خود پچیم یا دستورات مستقیم خود سرور حذف کنید، ارتباط پچیم با سرور شما امکان ناپذیر خواهد شد و همچنین خود شما هم دیگر نمی‌توانید از طریق ssh به سرورتان دسترسی پیدا کنید. بنابراین پیشنهاد می‌کنیم هیچ وقت این مقدار را حذف نکنید حتی برای تست .

اما اگر حرف بالا را نادیده گرفتید و این مقدار را حذف کردید هیچ راهی ندارید به غیر آنکه به پشتیبانی ارائه دهنده سرور اختصاصی یا vps مجازی خود پیام دهید و از آن‌ها بخواهید از طریق دسترسی‌های مستقیم خودشان به سرورتان متصل شوند و به فایروال سرور دسترسی پورت 22 را اضافه کنند.

تغییر این صفحه در گیت‌هاب