<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امیرحسین آقابابایی</title>
        <link>https://virgool.io/feed/@amir79</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 00:17:43</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3514312/avatar/XMmhPx.jpg?height=120&amp;width=120</url>
            <title>امیرحسین آقابابایی</title>
            <link>https://virgool.io/@amir79</link>
        </image>

                    <item>
                <title>راه‌اندازی وردپرس با استفاده از Nginx</title>
                <link>https://virgool.io/@amir79/%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-nginx-e5kbonqnacvm</link>
                <description>سرویس Nginx مخفف ( Engine-X )  یکی از پرکاربردترین وب سرورها در جهآن است که به دلیل سرعت بالا، مقیاس‌پذیری و قابلیت‌های بارگذاری توزیع شده، مورد توجه بسیاری از توسعه‌دهندگآن و مدیرآن سیستم قرار گرفته است. طبق آمارهای Netcraft، Nginx بیش از ۳۰٪ از کل وب‌سایت‌های جهآن را پشتیبانی می‌کند.وردپرس نیز محبوب‌ترین سیستم مدیریت محتوا  (CMS) است که بیش از ۴۰٪از تمامی وب‌سایت‌ها از آن استفاده می‌کنند. با استفاده از وردپرس، کاربران میتوانند بدون نیاز به دآنش فنی بالا، وب‌سایت‌های حرفه‌ای و متنوعی ایجاد کنند.در این مقاله از توزیع Ubuntu استفاده شده است. گام اول : نصب نرم‌افزارهای اولیهدر تمامی مراحل به دلیل نیاز به دسترسی بالا از کاربری root استفاده شده است.مرحله اول: بروزرسانی سیستمapt update &amp;&amp; apt upgrade -yمرحله دوم: نصب  Nginxapt install nginx –yمرحله سوم: نصب  PHPچون وردپرس با php نوشته شده است. نیاز داریم که پکیج php رو نصب کنیم.برای اینکه بتوآنیم اخرین نسخه از phpرا به راحتی از مخازن Ubuntu دریافت کنیم از مخزن ondrej/php  استفاده می کنیم. که در آن پیکیج های بروز php قرار گرفته است. ما نیاز داریم که آن را به سیستم اضافه بکنیم.apt install software-properties-commonاین بسته شامل ابزارهایی است که به شما امکآن می‌دهند مخازن نرم‌افزاری را به سیستم خود اضافه کنید و آن‌ها را مدیریت کنید.با این دستور به راحتی میتوآنید از مخازن دیگری اقدام به دآنلود و نصب پیکیج ها بکنید.add-apt-repository ppa:ondrej/phpاین دستور یک مخزن PPA (Personal Package Archive) جدید به نام ondrej/php  را به سیستم شما اضافه می‌کند. این پیکیج از مشهورترین مخزن برای بسته های php می باشد. و نسخه های بروز را ارائه می دهند که ممکن هست در مخازن رسمی Ubuntu این پیکیج های بروز وجود نداشته باشند.apt updateاین دستور مجدد می زنیم تا سیستم از وجود بسته های جدید مطلع بشود و نسخه های جدید را پیدا کند.apt install php-fpmاین ماژول برای مدیریت فرایند های php هست. که بهتر از روش های سنتی می باشد. این دستور به nginx  کمک میکند تا بجای اجرای مستقیم php درخواست ها را php-fpm بفرستد تا php آن را پردازش کند.ماژول Php-fpm بهینه تر و مقیاس پذیر تر هست و برای سرور هایی با بار سنگین مناسب هست.apt install php-mysqlاین ماژولی برای ارتباط php با پایگاه داده می باشد.نصب این ماژول ضروری هست چرا که اطلاعات خود شامل: پست‌ها، کاربران، تنظیمات و... را در پایگاه داده ذخیره می کند.مرحله چهارم: نصب MySQLapt install mysql-server -yبسته ی mysql-server شامل نرم افزار سرور MySQL است که برای ایجاد مدیریت و استفاده از پایگاه داده ها استفاده میشود. این سرور اصلی است که به کاربران و برنامه ها اجازه می دهد داده ها را در یک سیستم مدیریت پایگاه داده رابطه ای ذخیره و بازیابی کنند. . وظیفه این سرور میزبان اصلی پایگاه داده ها است و کار مدیریت و ارائه دسترسی به داده ها را بر عهده دارد. وردپرس برای ذخیره سازی اطلاعات خود مآنند پستها تنظیمات و کاربران نیاز به MySQL یا MariaDB دارد. . کاربرد نصب این بسته به معنی راه اندازی سرور پایگاه داده ای است که اپلیکیشنهای مختلف از جمله وردپرس میتوانند به آن متصل شوند و عملیاتهای مختلفی روی داده ها آنجام دهند.سرور mysql server  پایگاه داده است و php mysql پل ارتباطی بین PHP و MySQL برای دسترسی و استفاده از آن پایگاه داده می باشد.بعد از نصب باید آن را ایمن سازی کنیم.mysql_secure_installationدستور mysql_secure_installation برای ایمن سازی تنظیمات اولیه MySQL استفاده میشود. وقتی MySQL را نصب میکنیم تنظیمات پیش فرض آن کاملاً ایمن نیستند بنابراین این ابزار به ما کمک میکند تا امنیت سرور MySQL را بهبود دهیم.مراحل امن سازی به صورت زیر می باشد.VALIDATE PASSWORD COMPONENTاین مولفه به امکان می دهد که تا هنگام ایجاد یا تغییر رمز عبور، قدرت و امنیت رمز عبور را بررسی کند و اطمینآن حاصل کند که رمز عبور به‌آندازه کافی قوی است.  اگر ما y|Y را آنتخاب کنیم از ما 3 سطح رامی پرسد.سطح  Low بررسی ساده رمزهای عبور میتوانند بسیار ساده باشند.سطح  Medium سطح متوسط طول رمز عبور و ترکیب نمادها بررسی می شود.سطح Strong  سطح بالا رمز عبور باید بسیار قوی باشد ترکیبی از حروف بزرگ ،کوچک عدد و نماد و حداقل طول).تغییر پسوورد root :ممکن است از شما خواسته شود که رمز عبور کاربر root MySQL را تنظیم یا تغییر دهید این کار برای اطمینآن از امنیت دسترسی به پایگاه داده مهم است. این کاربر فقط در پایگاه داده MySQL وجود دارد و بالاترین سطح دسترسی به تمام جداول و پایگاه‌های داده را دارد. اما دسترسی او محدود به خود MySQL است و با سیستم‌عامل ارتباط مستقیم ندارد. بنابراین، تغییر رمز عبور  root در MySQL فقط رمز عبور مدیریت پایگاه داده MySQL را تغییر می‌دهد و تأثیری بر حساب کاربری root سیستم لینوکس ندارد.حذف کاربران ناشناس MySQL :به طور پیش فرض یک کاربر ناشناس ایجاد میکند. این کاربر میتوآند بدون رمز عبور وارد سرور شود. برای امنیت بیشتر پیشنهاد میشود این کاربران حذف شوند.غیر فعال کردن ورود از راه دور به کاربر mysql  rootبا این گزینه دسترسی از راه دور به کاربر root محدود میشود تا فقط بتوآنید از طریق خود سرور محلی به root دسترسی داشته باشید این کار امنیت سرور را افزایش میدهد.حذف ديتابيس تست MySQLبه طور پیش فرض یک دیتابیس آزمایشی به نام (test ) ایجاد میکند این دیتابیس برای تست و توسعه استفاده میشود و همه کاربران میتوانند به آن دسترسی داشته باشند اما اگر این دیتابیس حذف نشود، ممکن است در محیط واقعی یک نقطه ضعف امنیتی باشد.بارگذاری مجدد جداول امتیازها (Privilege)بعد از اعمال این تغییرات MySQL باید جدول امتیازها را دوباره بارگذاری کند تا تغییرات امنیتی بلافاصله اعمال شوند. این مرحله آخرین بخش از فرآیند است.گام دوم: پیکربندی Nginx برای وردپرسحذف صفحه پیش‌فرض Nginx:پس از پیکربندی Nginx برای وب‌سایت وردپرس، باید فایل پیکربندی پیش‌فرض Nginx را غیرفعال کنید تا صفحه پیش‌فرض Nginx نمایش داده نشود. برای این کار، فایل پیش‌فرض را از دایرکتوری sites-enabled حذف کنید: rm /etc/nginx/sites-enabled/defaultبرای وردپرس کانفیگ جدیدی ایجاد میکنیم و موارد زیر را در داخل آن قرار می دهیمvi /etc/nginx/sites-available/wordpressسپس درون فایل کانفیگ زیر را قرار می دهیم.می توانیم ip  یا دامنه خودمان را وارد میکنیم من در اینجا ازip private  استفاده کرده ام. و پورت http به صورت پیش فرض بر روی 80 تنظیم شده است.root /var/www/wordpressدایرکتوری هست که در این مسیر وردپرس معرفی کرده ایم و بعدا در این مسیر وردپرس را نصب خواهیم کرد.index index.php index.html index.htm;این خط به ما میگوید که nginx به ترتیب سراغ کدام فایل برود اگر اولی نبود سراغ دومی می رود و الی اخر.location / {این خط آغاز یک بلوک پیکربندی برای مسیر اصلی (/) است. یعنی هر درخواست ورودی که به سرور وارد شود و آدرسی خاصی نداشته باشد به این بلوک هدایت می‌شود.به عبارتی، اینجا مسیری است که برای صفحه اصلی یا صفحات دیگری که مستقیماً درخواست می‌شوند، پردازش خواهد شد.try_files $uri $uri/ /index.php?$args;ابتدا Nginx بررسی می‌کند که آیا فایلی به نام $uri وجود دارد یا نه. اگر چنین فایلی وجود داشت، آن  صفحه را به کاربر برمی‌گردآند. اگر فایل موردنظر موجود نبود، بررسی می‌کند که آیا یک دایرکتوری به نام uri/$  وجود دارد یا خیر. اگر هیچ‌کدام پیدا نشد، درخواست به index.php هدایت می‌شود تا وردپرس بتوآند آن را مدیریت کند.و ?$args به این معناست که پارامترهای کوئری نیز به فایل index.php  ارسال شود. این قسمت برای پردازش درخواست‌های پویا در وردپرس حیاتی است. به عنوان مثال : site/?search=apple  در اینجا،  search=apple پارامتر کوئری است.location ~ \.php$ {این خط یک بلوک جدید تعریف می‌کند که درخواست‌هایی را که به فایل‌های با پسوند .php ختم می‌شوند مدیریت کند.fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;این خط مهم است زیرا Nginx به‌طور مستقیم نمی‌توآند فایل‌های PHP را پردازش کند، بنابراین باید آنها را به یک پردازنده PHP مآنند  PHP-FPM بفرستد. اینجا از یک (Unix Socket) استفاده شده است که در مسیر   /var/run/php/php8.2-fpm.sock  قرار دارد. این مسیر محل قرارگیری  PHP-FPM است و باعث ارتباط بین Nginx و PHP-FPM می‌شود.ماژول PHP-FPM درخواست‌های PHP را پردازش کرده و نتیجه را به Nginx برمی‌گرداند.location ~ /\.ht {deny all;این بخش به فایل‌هایی که با .ht شروع می‌شوند (مانند .htaccess و دیگر فایل‌های پیکربندی مخفی) پاسخ می‌دهد. علامت ~ نشان‌دهنده استفاده از عبارات منظم  Regular Expressions برای تطابق است.این خط دسترسی به این فایل‌ها را به‌طور کامل ممنوع می‌کند. این اقدام برای امنیت است، زیرا فایل‌های پیکربندی مانند .htaccess نباید از طریق وب قابل دسترسی باشند و باید از دسترسی عمومی محافظت شوند.گام سوم: فعال‌سازی فایل پیکربندی سایتln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/با دستور بالا یک softlink برای فعال سازی سایت ایجاد می کنیم.بررسی خطاهای پیکربندی Nginxnginx –tوقتی که دستور بالا موفقیت امیز باشد.پیام زیر مشاهده می شود.nginx: configuration file /etc/nginx/nginx.conf test is successfulدر صورتی که موارد درست آنجام شده باشد. اقدام به reload کانفیگ می کنیم.systemctl reload nginxنصب و پیکربندی وردپرسابتدا داخل محلی می شویم که میخواهیم وردپرس در انجا نصب شود.cd /var/wwwwget https://wordpress.org/latest.tar.gzاستخراج فایل‌های وردپرسپس از دآنلود، باید فایل فشرده را استخراج کنیمtar -xvzf latest.tar.gzسپس باید دسترسی‌های لازم را برای دایرکتوری وردپرس تنظیم کنیم:sudo chown -R www-data:www-data /var/www/wordpresssudo chmod -R 755 /var/www/wordpressمالکیت دایرکتوری وردپرس را به کاربر www-data کاربر پیش فرض Nginx تغییر میدهیم.و برای دیگرآن هم دسترسی خوآندن و اجرا را فراهم میکنیم.گام چهارم: ایجاد پایگاه داده برای وردپرسmysql -u root –pبخش mysql این بخش دستور خط فرمآن MySQL را فراخوآنی می‌کند و به سیستم می‌گوید که می‌خواهید وارد محیط MySQL شوید.بخش u root- : این گزینه به MySQL می‌گوید که به عنوآن کاربر root وارد شوید. u- به معنی user است و بعد از آن نام کاربر MySQL می‌آید. در اینجا ما از کاربر مدیریتی MySQL به نام  root استفاده می‌کنیم.بخش p- : این بخش به MySQL می‌گوید که از شما رمز عبور را بپرسد. وقتی که این گزینه را استفاده می‌کنید، پس از زدن دستور، از شما خواسته می‌شود که رمز عبور کاربر root را وارد کنید.و در قسمت بعدی ما یک user اضافه خواهیم کرد که برای بخش امنیتی می باشد که فقط این user  به وردپرس دسترسی خواهد داشت و کار دیگری نمی تواند بکند.CREATE DATABASE wordpressCREATE USER &#039;wpuser&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password&#039;;GRANT ALL PRIVILEGES ON wordpress.* TO &#039;wpuser&#039;@&#039;localhost&#039;;FLUSH PRIVILEGES;EXIT;پیکربندی فایل  wp-config.phpدر مرحله بعد، باید فایل کآنفیگ وردپرس را ایجاد کنیم تا وردپرس به درستی به دیتابیس متصل شود.ابتدا فایل نمونه wp-config-sample.php را به wp-config.php تغییر نام دهید:cd /var/www/wordpresscp wp-config-sample.php wp-config.phpویرایش فایل wp-config.phpوارد کانفیگ شده و اطلاعات دیتابیسی که ایجاد کرده ایم را باید اینجا تعریف کنیم .Vi /var/www/wordpress/wp-config.phpدر بخش زیر مواردی که در داخل دیتابیس معرفی کرده ایم را تغییر می دهیم.define( &#039;DB_NAME&#039;, &#039;wordpress&#039; );
define( &#039;DB_USER&#039;, &#039;wpuser&#039; );
define( &#039;DB_PASSWORD&#039;, &#039;your_password&#039; );
define( &#039;DB_HOST&#039;, &#039;localhost&#039; );
define( &#039;DB_CHARSET&#039;, &#039;utf8&#039; );
define( &#039;DB_COLLATE&#039;, &#039;&#039; );خط 1 : DB_NAME : نام دیتابیس که اسم آن را wordpress گذاشتیم.خط 2 : DB_USER : نام کاربری دیتابیس که در مرحله ی پیش wpuser قرار دادیمخط 3 : رمز عبور کاربر wpuser که قبلاً تنظیم کرده‌ایدخط 4 : localhost است.بعد از ذخیره سازی فایل وقتی که ip را در داخل مرورگر وارد کنیم و شکل گرافیکی وردپرس برخود خواهیم داشت.در مرحله ی بعدی کارهای مدیریتی سایت را انجام می دهیم.اگر تمام تنظیمات درست باشد.و بعد از قسمت ورود می توآنیم وارد پنل مدیریتی بشویم و در آن جا کارهای وردپرسی خود را آنجام بدهیم.در نهایت می توانیم موارد دیگر که مربوط به وردپرس می باشد را انجام دهیمرفع مسئولیت:این مقاله به عنوان یک راهنمای عمومی برای راه‌اندازی وردپرس با استفاده از Nginx بر روی اوبونتو تهیه شده است. با اینکه سعی کرده‌ایم که تمامی مراحل به‌طور دقیق و کامل توضیح داده شود، ممکن است برخی از جزئیات و تنظیمات خاص به نیازهای خاص شما وابسته باشد. توصیه می‌شود که قبل از اعمال هرگونه تغییرات، از اطلاعات و پشتیبانی مناسب استفاده کنید</description>
                <category>امیرحسین آقابابایی</category>
                <author>امیرحسین آقابابایی</author>
                <pubDate>Sat, 14 Sep 2024 13:57:19 +0330</pubDate>
            </item>
            </channel>
</rss>