تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

نحوه نصب وردپرس با LEMP روی سرور مجازی اوبونتو Ubuntu 


۱۶ اسفند ۱۴۰۳

وردپرس، یکی از محبوب‌ترین سیستم‌های مدیریت محتوا (CMS) در اینترنت، به کاربران این امکان را می‌دهد که وب‌‌سایت‌ها و وبلاگ‌های انعطاف پذیری را با استفاده از پایگاه داده MySQL و پردازش PHP راه‌انداری کنند. وردپرس گزینه‌ای عالی برای راه‌اندازی سریع و کارآمد یک وب‌سایت است. پس از انجام تنظیمات اولیه، تقریبا تمام مدیریت وب‌سایت‌های وردپرسی از طریق رابط کاربری آن قابل انجام است.

در این مقابه، بر راه‌اندازی یک نمونه از وردپرس روی استک LEMP (شامل لینوکس، Nginx، MySQL و PHP) در یک سرور Ubuntu 22.04 تمرکز شده‌است.

در ادامه خواهید خواند:

  • پیش نیاز ها
  • ایجاد یک پایگاه داده MySQL و کاربر برای وردپرس
  • نصب افزونه‌های اضافی PHP
  • پیکربندی Nginx
  • دانلود وردپرس
  • تنظیم فایل پیکربندی وردپرس
  • تکمیل نصب از طریق رابط وب
  • جمع بندی

پیش نیاز ها

برای تکمیل این روند، باید به یک سرور Ubuntu 22.04 دسترسی داشته باشید. همچنین، برای نصب موفقیت آمیز وردپرس با پشته‌ی LEMP روی سرور خود، لازم است پیش از شروع این روند، اقدامات زیر را انجام دهید.

  • ایجاد یک کاربر با دسترسی sudo: مراحل این روند آموزشی با استفاده از یک کاربر غیر ریشه (non-root) که دارای دسترسی های sudo است، انجام می‌شود.
  • نصب پشته‌ی LEMP: وردپرس برای عملکرد صحیح به یک وب‌سرور، یک پایگاه داده و PHP نیاز دارد. راه‌اندازی یک پشته‌ی LEMP تمام این نیازها را برطرف می‌کند.

ایمن‌سازی سایت با SSL

وردپرس محتوای پویا ارائه می‌دهد و فرآیندهای احراز هویت و مجوزدهی کاربران را مدیریت می‌کند. TLS/SSL فناوری‌ای است که امکان رمزگذاری ترافیک سایت شما را فراهم می‌کند تا ارتباطات شما امن بماند. نحوه تنظیم SSL بستگی به این دارد که آیا دامنه‌ای برای سایت خود دارید یا خیر.

  • اگر دامنه دارید، ساده‌ترین راه برای ایمن‌سازی سایت، استفاده از Let’s Encrypt است که گواهینامه‌های رایگان و معتبر ارائه می‌دهد.
  • اگر دامنه ندارید و این پیکربندی را برای تست یا استفاده شخصی انجام می‌دهید، می‌توانید از یک گواهینامه‌ی خود امضاشده استفاده کنید. این روش همان نوع رمزگذاری را ارائه می‌‌دهد اما بدون تایید اعتبار دامنه.

پس از تکمیل مراحل راه اندازی، با کاربر sudo به سرور خود وارد شوید.

بیشتر بخوانید: نحوه بهبود عملکرد وب‌سایت با gzip و Nginx در سرور مجازی اوبونتو Ubuntu

همچنین بخوانید: نحوه دریافت SSL در Nginx در سرور مجازی اوبونتو Ubuntu با Let’s Encrypt

نصب وردپرس با LEMP روی سرور مجازی اوبونتو

ایجاد یک پایگاه داده MySQL و کاربر برای وردپرس

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

ورود به حساب مدیریتی MySQL

برای شروع، به حساب کاربری ریشه (root) در MySQL وارد شوید. اگر MySQL به‌صورت پیش‌فرض از پلاگین احراز هویت auth_socket استفاده می‌کند، می‌توانید با استفاده از sudo به حساب مدیریتی MySQL وارد شوید.

sudo mysql

اگر روش احراز هویت را تغییر داده‌اید و از رمز عبود برای حساب root استفاده می‌کنید، از این دستور استفاده کنید.

mysql -u root -p

پس از اجرای این دستور، از شما خواسته می‌شود رمز عبور حساب کاربری root را وارد کنید.

ایجاد پایگاه داده برای وردپرس

بعد از ورود به MySQL، یک پایگاه داده جداگانه ایجاد کنید که وردپرس بتواند آن را مدیریت کند. می‌توانید نام پایگاه داده را هر چیزی قرار دهید، اما برای ساده‌تر شدن، از wordpress استفاده شده است. برای ایجاد پایگاه داده، دستور زیر را اجرا کنید.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

نکته: هر دستور MySQL باید با سمی‌کالن (;) پایان یابد. اگر با خطایی مواجه شدید، بررسی کنید که این علامت در انتهای دستور وجود داشته باشد.

کاربر اختصاصی MySQL ایجاد می‌کنیم که فقط برای مدیریت پایگاه داده‌ی وردپرس استفاده شود. این روش از نظر امنیت و مدیریت سیستم ایده‌آل است. در این راهنما، نام کاربر را wordpressuser در نطر گرفته شده است، اما می‌توانید آن را تغییر دهید.

با اجرای دستور زیر، یک حساب کاربری ایجاد کنید، برای آن یک رمز عبور قوی تنظیم کنید و دسترسی به پایگاه داده را به این کاربر بدهید.

CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';

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

همینطور بخوانید: نحوه نصب Nginx در سرور مجازی اوبونتو Ubuntu

خروج از MySQL

پس از انجام این تنظیمات، برای خروج از MySQL، دستور زیر را تایپ کنید.

EXIT;

با اجرای این دستور، از محیط MySQL خارج شده و به شِل لینوکس باز می‌گردید.

با پایگاه داده MySQL لیارا، در کمترین زمان، یک دیتابیس پرسرعت و امن راه‌اندازی کنید.
✅ پشتیبان‌گیری خودکار ✅ امنیت بالا ✅ عملکرد بهینه
خرید دیتابیس MySQL لیارا

نصب افزونه‌های اضافی PHP

در هنگام راه‌اندازی LEMP stack، مجموعه حداقلی از افزونه‌ها برای ارتباط PHP با MySQL نصب شد. وردپرس و بسیاری از پلاگین‌های آن به افزونه‌های PHP بیشتری نیاز دارند که در این مقاله ما برخی از آن‌ها نصب می‌شوند.

نصب افزونه PHP مورد نیاز برای وردپرس

برای دانلود برخی از رایج‌ترین افزونه‌های PHP که برای استفاده با وردپرس نیاز هستند، دستور زیر را وارد کنید.

sudo apt update

sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

نکته: هر پلاگین وردپرس نیازمندی‌های خاص خود را دارد. برخی از پلاگین‌ها ممکن است به افزونه‌های PHP اضافی نیاز داشته باشند.

راه‌اندازی مجدد فرآیند PHP-FRM

پس از نصب افزونه‌ها، برای اینکه فرآیندPHP بتواند از ویژگی های جدید نصب شده استفاده کند، باید فرآیند PHP-FRM را مجددا راه‌اندازی کنید. برای اینکار از دستور زیر استفاده کنید.

sudo systemctl restart php8.1-fpm

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

پیکربندی Nginx

حالا وقت آن رسیده که چند تنظیمات را در فایل‌های سرور بلاک Nginx اعمال کنید. باید یک فایل پیکربندی برای سایت خود در دایرکتوری /etc/nginx/sites-available/ داشته باشید که به نام دامنه یا آدرس IP سرور شما پاسخ می‌دهد و از گواهی TLS/SSL برای امنیت استفاده می‌کند. در این راهنما از /etc/nginx/sites-available/wordpress به عنوان مثال استفاده شده است، اما شما باید مسیر فایل پیکربندی خود را جایگزین کنید.

علاوه بر این، در این راهنما ما از /var/www/wordpress به عنوان دایرکتوری روت در وردپرس استفاده می‌کنیم. حتما باید از روت وب‌سایت خود که در پیکربندی شما مشخص شده است، استفاده کنید.

نکته: ممکن است شما از پیکربندی پیش‌فرض /etc/nginx/sites-available/default استفاده کنید (که در آن روت وب‌سایت /var/www/html است). این روش برای زمانی که فقط یک سایت را روی سرور میزبانی می‌کنید مناسب است. اما اگر می‌خواهید چندین سایت را میزبانی کنید، بهتر است تنظیمات لازم را در فایل‌های جداگانه و منطقی برای هر سایت قرار دهید.

پیکربندی فایل سرور بلاک

ابتدا فایل پیکربندی سایت خود را با دسترسی sudo باز کنید.

sudo nano /etc/nginx/sites-available/wordpress

داخل بلاک اصلی سرور، چند بلاک location اضافه شده است.

اولا، بلاک‌های location برای درخواست‌های /favicon.ico و /robots.txt ایجاد کنید تا درخواست‌ها برای این فایل‌ها در لاگ‌ها ثبت نشوند.

سپس از یک regular expression location برای مطابقت با درخواست‌های فایل‌های استاتیک استفاده می‌کنیم. برای این درخواست‌ها، لاگ‌گیری را غیرفعال کرده و آن‌ها را به عنوان منابع با کش بالا علامت‌گذاری می‌کنیم، چرا که این‌ها معمولاً منابع پرهزینه‌ای برای سرور هستند. شما می‌توانید این لیست فایل‌های استاتیک را بر اساس نیاز خود تغییر دهید.

در فایل /etc/nginx/sites-available/wordpress، بخش زیر را اضافه کنید:

server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

در داخل بلاک location /، لیست try_files را تنظیم می‌کنیم. تنظیمات پیش‌فرض را با قرار دادن علامت # در ابتدای خط غیرفعال می‌کنیم و سپس خط جدیدی اضافه می‌کنیم تا به جای بازگرداندن ارور 404، کنترل به فایل index.php همراه با آرگومان‌های درخواست هدایت شود.

باید چیزی شبیه به این شود.

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

پس از اتمام، فایل را ذخیره و ببندید.

بررسی و بارگذاری مجدد پیکربندی Nginx

حالا برای بررسی صحت پیکربندی و وجود خطاهای دستوری، دستور زیر را وارد کنید.

sudo nginx -t

اگر خطایی گزارش نشد، Nginx را با دستور زیر بارگذاری مجدد کنید.

sudo systemctl reload nginx

در این مرحله، پیکر بندی Nginx شما آماده است. اکنون می‌توانید وردپرس را راه‌اندازی کنید.

دانلود وردپرس

حالا که نرم‌افزار سرور شما پیکربندی شده‌اند، وقت آن رسیده که وردپرس را دانلود و نصب کنید. به دلایل امنیتی، همیشه توصیه می‌شود که آخرین نسخه وردپرس را مستقیما از وب‌سایت رسمی پروژه دانلود کنید.

ابتدا به یک دایرکتوری قابل نوشتن بروید و سپس نسخه فشرده وردپرس را دانلود کنید.

cd /tmp

این دستور شما را به دایرکتوری موقت منتقل می‌کند. سپس با استفاده از دستور زیر، آخرین نسخه وردپرس را در قالب یک فایل فشرده دانلود کنید.

curl -LO https://wordpress.org/latest.tar.gz

نکته: گزینه‌های -LO برای دانلود فایل فشرده استفاده می‌شوند. -L تضمین می‌کند که در صورت وجود ریدایرکت، فایل به درستی دانلود شود، و -O باعث می‌شود که فایل دانلود شده با همان نام در سیستم محلی ذخیره شود.

حال برای استخراج فایل فشرده و ساختار دایرکتوری وردپرس، از دستور زیر استفاده کنید.

tar xzvf latest.tar.gz

در حال حاضر، فایل ها آماده هستند که به روت دایرکتوری وب‌سایت شما منتقل شوند، اما قبل از انجام این کار، باید فابل پیکربندی نمونه را کپی کرده و نام آن را به wp-config.php تغییر دهید. زیرا این فایل همان فایلی است که وردپرس می‌خواند.

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

حالا، تمام محتوای دایرکتوری را به روت دایرکتوری وب‌سایت خود منتقل کنید. برای حفظ مجوزها از گزینه -a استفاده شده است و نقطه (.) در انتهای دایرکتوری مبدا به این معنی است که تمامی فایل‌های داخل دایرکتوری (از جمله فایل‌های پنهان) باید کپی شوند.

sudo cp -a /tmp/wordpress/. /var/www/<^>your_domain/wordpress

درحالی که فایل ها در جای خود قرار دارند، مالکیت آن‌ها به کاربر و گروه www-data اختصاص داده شده است. این کاربر گروه همان کاربری هستند که Nginx به عنوان وب‌سرور از آن های استفاده می‌کند. Nginx باید قادر باشدکه فایل‌های وردپرس را بخواند و بنویسد تا بتواند وب‌سایت را سرو کند و به صورت خودکار به‌روز رسانی‌ها را انجام دهد.

sudo chown -R www-data:www-data /var/www/your_domain/wordpress

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

با سرور ابونتو لیارا، سرور خود را با هزینه به‌صرفه و بالاترین کارایی راه‌اندازی و مدیریت کنید.
✅ استقرار سریع ✅ منابع بهینه ✅ امنیت پیشرفته
خرید سرور اوبونتو لیارا

تنظیم فایل پیکربندی وردپرس

در این مرحله، باید برخی تغییرات را در فایل پیکربندی اصلی وردپرس اعمال کرد.

ابتدا باید برخی از کلیدهای امنیتی را تغییر دهیم تا امنیت نصب ما تامین‌ شود. وردپرس یک مولد امن برای این مقادیر ارائه می‎‌دهد تا شما نیازی به تنظیم آن‌ها به صورت دستی نداشته باشید. این مقادیر فقط به صورت داخلی استفاده می‌شود و بنابراین استفاده از مقادیر پیچیده و امن هیچ مشکلی برای عملکرد وردپرس نخواهد داشت.

برای دریافت مقادیر امن از مولد کلیدهای وردپرس، دستور زیر را وارد کنید.

curl -s https://api.wordpress.org/secret-key/1.1/salt/

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

هشدار: مهم است که هر بار مقادیر منحصر به فرد درخواست کنید. لطفا مقادیر زیر را کپی نکنید!

Output
define('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

این خطوط پیکربندی هستند که می‌توانید آن ها را به صورت مستقیم در فایل پیکربندی خود قرار دهید تا کلیدهای امنیتی را تنظیم کنید. حالا مقادیر خروجی را دریافت کرده‌اید را کپی کنید.

سپس فایل پیکربندی وردپرس را باز کنید.

sudo nano /var/www/your_domain/wordpress/wp-config.php

به بخش های مربوط به مقادیر پیش‌فرض بروید. این بخش به این شکل خواهد بود.

. . .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

. . .

این خطوط را حذف کنید و مقادیر کپی شده از خط فرمان را جایگزین کنید.

. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

حالا باید برخی از تنظیمات اتصال به پایگاه داده را در ابتدای قایل تغییر دهیدو باید نام پایگاه داده، نام کاربری پایگاه داده و رمزعبور که در MySQL تنظیم شده است را وارد کنید.

همچنین بخوانید: FTP چیست؟ کاربرد ها، مزایا و معایب پروتکل FTP

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

. . .

define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

. . .

define( 'FS_METHOD', 'direct' );

پس از انجام تنظیمات فایل را ذخیره و ببندید.

با برنامه آماده وردپرس لیارا، سایت خود را در چند دقیقه، بدون دردسر و با امنیت بالا اجرا کنید.
✅ نصب خودکار ✅ به‌روزرسانی آسان ✅ عملکرد بهینه
خرید هاست وردپرس لیارا

تکمیل نصب از طریق رابط وب

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

در مروردگر وب خود به نام دامنه یا آدرس IP عمومی سرور خود بروید.

http://server_domain_or_IP/wordpress

در این مرحله، زبان مورد نظر خود را برای استفاده از وردپرس انتخاب کنید.

انتخاب زبان وردپرس

سپس به صفحه اصلی تنظیمات خواهید رسید.

در این صفحه، یک نام برای سایت وردپرس خود انتخاب کرده و یک نام کاربری وارد کنید (توصیه می‌شود از نام‌های عمومی مانند «admin» برای امنیت بیشتر استفاده نکنید). یک رمز عبور قوی به‌طور خودکار تولید می‌شود. این رمز عبور را ذخیره کنید یا یک رمز عبور قوی دیگر انتخاب کنید.

آدرس ایمیل خود را وارد کرده و مشخص کنید که آیا می‌خواهید موتورهای جستجو سایت شما را ایندکس کنند یا خیر.

تنظیمات نصب وردپرس

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

پس از ورود، به داشبورد مدیریت وردپرس هدایت خواهید شد.

داشبورد وردپرس

جمع بندی

در نتیجه، پس از انجام مراحل نصب و پیکربندی وردپرس روی سرور با استفاده از LEMP، سایت شما آماده است که به‌راحتی مدیریت و ویرایش شود. حالا که وردپرس را نصب کرده‌اید، می‌توانید به تنظیمات دلخواه خود بپردازید، از جمله انتخاب پیوندهای ثابت مناسب، انتخاب تم جدید و نصب افزونه‌ها برای افزایش عملکرد سایت.

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