وردپرس محبوبترین سیستم مدیریت محتوای جهان است و بیش از یک سوم سایتهای دنیا با آن ساخته شدهاند. در این آموزش، گام به گام نصب وردپرس روی اوبونتو 24.04 را با استک LAMP (یعنی Apache-MariaDB-PHP) یاد میگیرید؛ از دانلود وردپرس و ساخت دیتابیس تا ساخت ویرچوال هاست، فعالسازی HTTPS و تکمیل نصب.
فهرست مطالب
پیشنیازهای نصب وردپرس روی اوبونتو
در این آموزش فرض شده که شما از قبل استک LAMP را روی اوبونتو 24.04 نصب کردهاید. اگر هنوز این کار را نکردهاید، ابتدا آموزش زیر را دنبال کنید و سپس به این نوشته برگردید:
آشنایی با استک LAMP و نصب آن
استک LAMP رایجترین مجموعه نرمافزاری برای راهاندازی وبسایتها و اپلیکیشنهای پویا از جمله وردپرس است: آموزش نصب LAMP روی اوبونتو 24.04
پس در این مرحله، باید این موارد را در اختیار داشته باشید:
- یک سرور با اوبونتو 24.04 و استک LAMP نصبشده
- یک کاربر با دسترسی sudo و امکان اتصال SSH به سرور
- یک نام دامنه که رکورد A آن به IP سرور شما اشاره کند
برای اتصال دامنه دلخواه خود به سرور، کافیست در پنل تنظیمات دامنه یا پنل تنظیمات CDN یک رکورد DNS از نوع A با نام دلخواه و مقدار IP سرور خود ایجاد کنید. نام انتخابی، آدرس زیردامنه شما میشود که اگر آن را خالی بگذارید، ریشه دامنه به IP سرور متصل میشود.
مرحله ۱) آمادهسازی دیتابیس وردپرس
وردپرس اطلاعات سایت، کاربران، تنظیمات و محتوای خود را داخل دیتابیس ذخیره میکند. بهتر است برای هر نصب وردپرس یک دیتابیس و کاربر جداگانه ایجاد شود. بنابراین به عنوان اولین قدم از مراحل نصب وردپرس روی اوبونتو، ابتدا با SSH وارد سرور شوید و نرمافزارهای موجود را بهروزرسانی کنید:
sudo apt update && sudo apt upgrade -y
سپس وارد کنسول MariaDB شوید:
sudo mariadb -u root
یک دیتابیس بسازید (در اینجا نام آن را wordpress_db گذاشتهام؛ سمیکالن انتهای دستور را فراموش نکنید):
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
یک کاربر دیتابیس بسازید و همزمان همهی دسترسیهای این دیتابیس را به او بدهید. بهجای wp_user و your-password مقادیر دلخواه و یک رمز عبور قوی بگذارید:
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
جدول دسترسیها را بهروز کرده و خارج شوید:
FLUSH PRIVILEGES;
EXIT;
اطلاعات زیر در مرحله نصب وردپرس استفاده میشوند:
Database Name: wordpress_db
Database User: wp_user
Database Password: your-password
Database Host: localhost
اکیداً توصیه میشود برای محیط واقعی از رمز عبور طولانی و تصادفی استفاده کنید. همچنین بهتر است نام دیتابیس و کاربر به سادگی قابل حدس نباشند.
مرحله ۲) دانلود وردپرس
آخرین نسخه وردپرس را با wget دانلود کنید:
wget https://wordpress.org/latest.tar.gz
فایل دانلودی را از حالت فشرده خارج کنید و پوشه حاصل را به مسیر مدنظر منتقل کنید:
tar -xzf latest.tar.gz
sudo mv wordpress /var/www/example.com
بهتر است این پوشه، به نام دامنه مدنظر شما اشاره کند تا شناسایی آن آسانتر باشد (بهجای example.com دامنه واقعی خود را بگذارید).
مرحله ۳) پیکربندی وردپرس
به پوشه وردپرس بروید و فایل نمونه پیکربندی را کپی کنید:
cd /var/www/example.com
sudo cp wp-config-sample.php wp-config.php
فایل پیکربندی را ویرایش کنید:
sudo nano wp-config.php
نام دیتابیس، نام کاربری و رمز عبوری که در مرحله (۱) ساختید را جایگزین مقادیر نمونه کنید:
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'your-password');
بهصورت پیشفرض نام جدولهای وردپرس با پیشوند wp شروع میشود. برای افزایش امنیت، توصیه میشود این پیشوند را به مقدار تصادفی تغییر دهید، مثلاً:
$table_prefix = '9OzBg_';
وردپرس برای افزایش امنیت نشستهای کاربران از Authentication Keys و Salts استفاده میکند. میتوانید مقادیر جدید را از سرویس رسمی وردپرس دریافت کنید. برای این کار کافیست آدرس زیر را در مرورگر خود باز کنید تا سالتهای جدید برای شما تولید شوند.
https://api.wordpress.org/secret-key/1.1/salt/
مقادیر موجود در فایل را حذف کرده و کلیدهای جدید را جایگزین کنید. سپس فایل را ذخیره کرده و ببندید.
مرحله ۴) تنظیمات وبسرور آپاچی
الف) مالکیت فایلها: آپاچی باید بتواند فایلهای وردپرس را بخواند و در بخشهایی مانند آپلود تصاویر، امکان نوشتن داشته باشد. بنابراین لازم است مالکیت فایلها و پوشههای سایت را تغییر دهید:
sudo chown -R www-data:www-data /var/www/example.com/
sudo find /var/www/example.com -type d -exec chmod 755 {} \;
sudo find /var/www/example.com -type f -exec chmod 644 {} \;
ب) ویرچوال هاست: ویرچوال هاست در آپاچی قابلیتی است که به شما اجازه میدهد چندین وبسایت یا دامنه مختلف را روی یک سرور و یک نمونه آپاچی میزبانی کنید. هر ویرچوال هاست میتواند تنظیمات جداگانهای مثل مسیر فایلهای سایت (DocumentRoot)، دامنه، لاگها، SSL، دسترسیها و تنظیمات PHP داشته باشد. برای مثال، روی یک سرور میتوانید همزمان سایتهای example.com و test.com را اجرا کنید و وبسرور آپاچی بر اساس نام دامنه درخواستدهنده، محتوای مناسب را از ویرچوال هاست مربوطه ارائه میدهد.
پس یک فایل ویرچوال هاست برای سایت خود بسازید:
sudo nano /etc/apache2/sites-available/example.com.conf
محتوای زیر را داخل فایل قرار دهید و دامنه را با دامنه خودتان جایگزین کنید. توجه کنید که بلوک Directory با AllowOverride All برای کارکرد صحیح پیوندهای یکتای وردپرس ضروری است:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com
<Directory "/var/www/example.com">
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>
صحت پیکربندی را بررسی کنید (باید Syntax OK ببینید)، سپس دستورهای زیر را به ترتیب وارد کنید تا سایت پیشفرض آپاچی غیرفعال و سایت مدنظر شما فعال شده و در پایان آپاچی ریلود شود:
sudo apache2ctl configtest
sudo a2dissite 000-default.conf
sudo a2ensite example.com.conf
sudo systemctl reload apache2
ج) پیوندهای یکتا: اگر بعد از نصب وردپرس روی اوبونتو، پیوندهای یکتا (Permalink) درست کار نکردند، به احتمال زیاد ماژول بازنویسی آپاچی فعال نیست. آن را فعال و وبسرور آپاچی را ریاستارت کنید:
sudo a2enmod rewrite
sudo systemctl restart apache2
مرحله ۵) دریافت گواهی SSL (اختیاری)
فعال کردن HTTPS برای وردپرس ضروری است؛ هم برای امنیت کاربران و هم برای بهبود وضعیت SEO. پیش از واردکردن اطلاعات حساس در ویزارد نصب، توصیه میشود HTTPS را فعال کنید تا ترافیک سایت رمزنگاری شود. برای دریافت گاهی SSL رایگان، کافیست کلاینت Let’s Encrypt یعنی Certbot را نصب کنید:
sudo apt install certbot python3-certbot-apache
سپس گواهی TLS را دریافت و به صورت خودکار نصب کنید (ایمیل و دامنه را با مقادیر خود جایگزین کنید):
sudo certbot --apache --redirect --email you@example.com -d example.com -d www.example.com
فلگ redirect باعث میشود ترافیک HTTP با ریدایرکت ۳۰۱ به HTTPS هدایت شود.
تمدید خودکار گواهی
برای تمدید خودکار گواهی در کلاینت Certbot اوبونتوی 24.04 یک تایمر تعبیه شده که خودش معمولاً دو بار در روز Certbot را اجرا میکند. اگر گواهی کمتر از حدود ۳۰ روز اعتبار داشته باشد، آن را تمدید میکند.
مرحله ۶) نصب وردپرس از طریق مرورگر
در آخرین مرحله از نصب وردپرس روی اوبونتو، میبایست دامنه خود را در مرورگر باز کنید. در این مرحله، باید ویزارد نصب وردپرس نمایش داده شود:
example.com/wp-admin/install.php
اگر ویزارد نمایش داده نشد، احتمالاً به چند افزونه PHP نیاز دارید. آنها را نصب کرده و وبسرور آپاچی را ریلود کنید:
sudo apt install php8.3-mbstring php8.3-xml php8.3-mysql php8.3-common php8.3-gd php8.3-bcmath php8.3-cli php8.3-curl php8.3-zip
sudo systemctl reload apache2
در ویزارد نصب، ابتدا زبان را انتخاب کنید، سپس عنوان سایت، نام کاربری مدیر، یک رمز عبور قوی و ایمیل را وارد کرده و روی دکمه نصب وردپرس کلیک کنید. پس از آن میتوانید وارد پیشخوان شوید و سایت خود را بسازید.
نکات تکمیلی
۱) تنظیمات بهینه مشخصههای PHP
تنظیمات پیشفرض PHP ممکن است برای سایتهای واقعی محدود باشد. بنابراین شاید لازم باشد مقادیر مشخصههای PHP را متناسب با نیاز خود تغییر دهید. ابتدا محل تنظیمات PHP را با دستور زیر پیدا کنید:
php --ini
فایل php.ini را با یک ویرایشگر متنی مانند nano باز کنید:
sudo nano /etc/php/8.3/apache2/php.ini
مقادیر رایج برای مشخصههای PHP به صورت زیر هستند:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
بعد از تغییر این مقادیر، فایل را ذخیره کرده و یک بار آپاچی را ریلود کنید:
sudo systemctl restart apache2
۲) فعالسازی فایروال
با هدف جلوگیری از آسیبهای امنیتی، توصیه میشود فایروال سرور خود را فعال کنید:
sudo ufw allow OpenSSH 'Apache Full'
sudo ufw enable
۳) زیباسازی پیوندهای یکتا
اگر تنظیمات پیوندهای یکتای سایت وردپرسی شما از ساختار انتخابی در قسمت مدیریت وردپرس تبعیت نمیکند، احتمالاً به دلیل نصب نبودن ماژول mod_rewrite آپاچی باشد. بنابراین بررسی کنید که ماژول فعال است یا خیر:
sudo apache2ctl -M | grep rewrite
در خروجی این دستور باید rewrite_module را مشاهده کنید. در غیر این صورت، به بند (ج) مرحله (۴) مراجعه کنید.
۴) خطا در زمان نصب افزونه
ممکن است پس از نصب وردپرس روی اوبونتو و به هنگام نصب افزونه، از شما اطلاعات FTP درخواست شود. این مشکل با تنظیم مالکیت صحیح فایلها برای کاربر www-data مطابق بند (الف) مرحله (۴) و همچنین افزودن خط FS_METHOD صحیح به فایل wp-config.php برطرف میشود.
define('FS_METHOD', 'direct');
پرسشهای متداول
-
آیا برای نصب وردپرس حتماً به دامنه نیاز دارم؟
برای فعالسازی گواهی SSL و راهاندازی یک سایت واقعی، داشتن دامنه ضروری است. برای آزمایش و توسعه محلی میتوانید با آدرس IP هم کار کنید، اما گواهی SSL رایگان به دامنه معتبر نیاز دارد.
-
چرا پیوندهای یکتای سایت کار نمیکنند؟
رایجترین علت کار نکردن پیوندهای یکتا هنگام نصب وردپرس روی اوبونتو، فعال نبودن ماژول rewrite آپاچی است. با اجرای sudo a2enmod rewrite و ریاستارت آپاچی و اطمینان از وجود AllowOverride All در ویرچوال هاست، مشکل برطرف میشود.
-
چرا ویزارد نصب وردپرس نمایش داده نمیشود؟
معمولاً این مشکل به دلیل نبود برخی افزونههای PHP ایجاد میشود. با نصب افزونههایی مانند php8.3-mbstring و php8.3-xml و php8.3-gd و سپس ریلود آپاچی، ویزارد باید ظاهر شود.
-
چرا تغییر پیشوند جدولهای دیتابیس توصیه میشود؟
پیشوند پیشفرض wp برای همه شناخته شده است و حدس زدن نام جدولها را برای مهاجمان آسان میکند. تغییر آن به یک مقدار تصادفی، یک لایه امنیتی ساده اما مؤثر اضافه میکند.
-
چرا بعد از نصب، فقط صفحه پیشفرض آپاچی نمایش داده میشود؟
معمولاً به این دلیل است که مسیر ریشه سایت یا تنظیمات ویرچوال هاست با محل واقعی فایلهای وردپرس همخوانی ندارد. مطمئن شوید فایلها در مسیر درست قرار دارند، AllowOverride All فعال است و آپاچی پس از تغییرات ریاستارت شده است.
-
چرا وردپرس هنگام نصب افزونه از من اطلاعات FTP میخواهد؟
این مشکل با تنظیم مالکیت صحیح فایلها برای کاربر www-data و افزودن خط FS_METHOD صحیح به فایل wp-config.php برطرف میشود.
در این آموزش، نصب کامل وردپرس روی اوبونتو با وبسرور آپاچی و دیتابیس MariaDB را از دانلود و استخراج فایلها، ساخت دیتابیس و کاربر، پیکربندی wp-config.php، ساخت ویرچوال هاست آپاچی، فعالسازی گواهی SSL و تکمیل نصب از طریق ویزارد وردپرس را مرور کردیم. حالا یک سایت وردپرسی امن و کاملاً تحت کنترل خودتان دارید.
توصیه میشود برای افزایش امنیت وبسایت وردپرسی خودتان، نوشتههای ایمنسازی وردپرس را مطالعه کنید.