در مورد مشکلاتی که با nginx داشتم و مهاجرت به https

اول این‌که عنوان دو بخش جدا داره: مشکلاتم با nginx و مهاجرت به https. خوشبختانه در مورد مهاجرت به https تا الان مشکلی نداشتم و امیدوارم Let’s Encrypt که این رو برام ممکن کرد پایدار بمونه تا در آینده هم مشکلی نداشته باشم.

در مورد مهاجرت به https خیلی ساده با این آموزش جلو رفتم و برای همین توضیح بیشتری در موردش نمی‌دم (و یجورایی برای مراجعه‌ی شخصی در آینده این‌جا می‌ذارمش)

بزرگ‌ترین مشکلم با Nginx سر اجرا کردن وردپرس و اسکریپت‌های دیگه‌ای که با PHP نوشته شدن توی یه زیر پوشه بود. (مثل همین بلاگ که توی زیرپوشه‌ی blog توی دامین ahmadalli.net قرار داره) و در نهایت هم از مواضع خودم عقب‌نشیتی کردم و برای این‌که سایت درست و حسابی کار کنه بیخیال آدرس‌های خوشگل (مثل /Page/2 و اینا) شدم.

در واقع مشکلم اینه که قواعد دامنه‌ها توی انجین‌ایکس توی بلاک‌های server و به شکل مجزا تعیین می‌شه و برای من راحت‌تر بود که به nginx بفهمونم که همه‌ی آدرس‌های دامنه‌ی دو برنامه‌نویس رو تحویل وردپرسش بده و بذار اون مدیریت کنه که چی باید به کاربر نمایش داده بشه ولی تلاشم برای فهموندن مفهوم مشابه راجع به درخواست‌هایی که به بلاگ خودم مربوط بود (یعنی مثلن ahmadalli.net/blog/aaa) با کلی آزمون و خطا با شکست مواجه شد و راهنمایی‌هایی که توی انجمن‌های مختلف بود هم کمکی بهم نکرد.

در نهایت به منتقل کردن اسکریپت‌های دیگه‌م به زیردامنه‌های دیگه (که می‌تونستن بلاک server مجزا برای خودشون داشته باشن) و آدرس‌های زشت توی بلاگم (یکی از نکات امیدبخش این بود که آدرس‌های وبلاگ محمدرضا شعبانعلی هم مدت‌ها زشت بود :-D) رضایت دادم تا کارم راه بیوفته.

من چجوری وردپرس‌های سرورمون رو آپدیت نگه می‌دارم

ما همیشه برای آپدیت وردپرس توی سرورمون مشکل داشتیم. وردپرس به فولدر خودش دسترسی نداره بنابراین نمی‌تونه خودش خودش رو آپدیت کنه و با FTP سرورمون هم درست ارتباط برقرار نمی‌کرد و نمی‌تونست از طریق FTP هم خودش رو آپدیت کنه. چون مطمئن نبودم که از نظر امنیتی اوکیه که دسترسی IUSR و IIS_IUSRS به کل پوشه‌ها رو کامل کنم، با پاورشل اسکریپتی نوشتم برای دانلود و آن‌زیپ‌کردن آخرین نسخه‌ی وردپرس فارسی از سایت وردپرس (دومین اسکریپت پایین)

این اسکریپت رو خیلی وقت پیش نوشته بودم و جاهای مختلفی هم ازش استفاده می‌کردم. مشکلی که داشتم این بود که وقتی آپدیت جدید برای وردپرس میومد، باید توی همه‌ی جاهایی که وردپرس رو نصب داشتم اون رو اجرا می‌کردم. برای این‌که دوباره‌کاری نکنم، دیشب یه اسکریپت دیگه نوشتم که اولش آرایه‌ای از آدرس پوشه‌ی وردپرس تعریف می‌کنم و فرآیند به‌روزرسانی رو توی همه‌ی اعضای اون آرایه انجام می‌دم (اولین اسکریپت پایین)

و اگه بخوام یکم جلوتر برم، می‌تونم توی Task Scheduler بگم که مثلن هفته‌ای یک بار این اسکریپت اجرا بشه و این‌جوری مطمئنم که وردپرسم با حداکثر یک هفته تاخیر همیشه آپدیت می‌مونه 🙂