
نحوه نصب WordPress با LEMP بر روی Debian 9
WordPress پرطرفدارترین و خاصترین سیستم مدیریت محتوا است که مراحل نصب و راهاندازی آن بسیار ساده میباشد. بنابراین کاربرانی که دانش کافی درباره برنامهنویسی و چگونگی راهاندازی یک وبسایت ندارند، با کمک این CMS میتوانند رویای خود را برای داشتن یک وبسایت جذاب، انعطافپذیر و بهروز، به حقیقت پیوند بزنند.
در نتیجه چگونگی پیادهسازی WordPress یکی از نیازهای مهم کاربرانی است که درباره روشهای راهاندازی وبسایت یا وبلاگ به جستجو میپردازند.
در ادامه روش نصب WordPress بر روی بستر Debian 9 به عنوان جدیدترین توزیع لینوکس ارائه شده است. کاربرانی که لینوکس را به عنوان سیستم عامل امن و مطرح شناخته شده در سطح جهان استفاده میکنند میتوانند WordPress را با LEMP stack (Linux, Nginx, MySQL, PHP) بر روی Debian 9 نصب نمایند.
با ما همراه باشید و با مراحل پیادهسازی WordPress با LEMP در بستر Debian 9 بیشتر آشنا شوید.
پیشنیازها
قبل از شروع مراحل پیادهسازی WordPress بر روی Debian 9 باید پیش نیازهایی که برای انجام این کار نیاز است را فراهم کنید. در ادامه پیش نیازهای ضروری معرفی شدهاند.
• در قدم اول نیاز به یک سرور Debian 9 دارید.
• یک کاربر sudo
بر روی سرور خود ایجاد کنید: گامهایی که در ادامه آموزش داده شدهاند راهنمایی برای استفاده از این بستر به عنوان یک کاربر غیر root با دسترسیهای sudo
میباشد. میتوانید با مراجعه کردن به مقاله آموزشی نصب و راهاندازی سرور Debian 9.0، نحوهی ایجاد کاربر با دسترسیهای sudo را یاد بگیرید.
LEMP stack را نصب کنید: WordPress به یک وب سرور، یک پایگاهداده و PHP برای اجرای دستورات نیاز خواهد داشت. ایجاد یک LEMP stack تمام امکاناتی که برای این کار لازم است را فراهم میکند. برای نصب و راهاندازی این نرمافزار به مقاله آموزشی نصب و راهاندازی LEMP Stack بر روی Debian 9.0 مراجعه کنید.
برای افزایش امنیت وبسایت خود از SSL استفاده کنید: سرور WordPress دارای محتوای Dynamic است. برای دسترسی کاربران احراز اصالت آنها را انجام داده و سپس مجوز دسترسی را صادر میکند. با استفاده از TLS/SSL میتوانید هر آنچه در بستر وبسایت شما وجود دارد را رمزگذاری کنید تا تبادل اطلاعات در محیطی امن انجام شود. برای انجام این کار از مقاله آموزشی نحوه ایمنسازی Nginx با Let’s Encrypt بر روی Debian 9.0 استفاده نمایید.
هنگامی که پیش نیازهای لازم فراهم شد، برای ادامه، به عنوان یک کاربر sudo وارد شوید و مراحل زیر را انجام دهید.
1-ایجاد پایگاهداده MySQL و کاربر برای WordPress
این مرحله، به عنوان مرحله مقدماتی و آمادهسازی بستر در نظر گرفته میشود. با توجه به این که WordPress از MySQL برای مدیریت دادهها و ذخیرهسازی اطلاعات کاربران استفاده میکند و MySQL از قبل نصب شده، باید بر روی آن یک پایگاهداده و یک کاربر برای استفاده از WordPress نصب کنید.
برای این کار باید وارد قسمت MySQL root یا قسمت مدیریتی MySQL شوید. اگر MySQL به صورت پیش فرض با استفاده از پلاگین auth_socket پیکربندی شده است، میتوانید با استفاده از sudo وارد قسمت حساب مدیریتی MySQL شوید.
$ sudo mysql
اگر روش احراز هویت را برای استفاده از یک رمز عبور برای حساب MySQL root تغییر دادهاید، به جای دستور فوق از دستور زیر استفاده کنید. در این قسمت باید رمزعبوری برای حساب MySQL root فراهم کنید.
$ mysql -u root –p
در این مرحله میتوانید یک پایگاهداده جداگانه با نام دلخواه ایجاد کنید و کنترل آن را به دست بگیرید. در شکل زیر دستور ساخت یک پایگاهداده ساده برای wordpress ارائه شده است.
mysql> CREATE DATABASE your_domain DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
در این قسمت، قصد داریم یک حساب کاربری MySQL جداگانه بر روی پایگاهدادهای که ساختهایم ایجاد کنیم. ایجاد یک پایگاهداده جدید و کاربر جدید سطح بالایی از امنیت را هنگام استفاده از WordPress فراهم میکند.
در انتخاب نام و رمز عبور کاربر خود، نهایت دقت را به خرج بدهید. (رمز عبوری قوی برای افزایش امنیت انتخاب کنید.) در اینجا ما نام wordpressuser را به عنوان نمونه انتخاب کردهایم. میتوانید آن را به هر نامی که دوست دارید تغییر دهید.
mysql> GRANT ALL ON your_domain.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
در این مرحله، یک پایگاهداده و نام کاربری داریم که منحصراً برای WordPress ساخته شدهاند. باید FLUSH PRIVILEGES را انجام دهیم تا MySQL نمونههای جدیدی که ساخته شدهاند را بشناسد.
mysql> FLUSH PRIVILEGES;
پس از پایان مراحل فوق با تایپ دستور زیر، از MySQL خارج شوید.
mysql> EXIT;
پس از اجرای دستور فوق شما به بستر Linux باز میگردید.
2- نصب افزونههای مورد نیاز PHP
در این مرحله از پیادهسازی WordPress با LEMP در بستر Debian 9، نوبت به نصب افزونههای مورد نیاز PHP میرسد. هنگام نصب LEMP stack ، تنها برخی از افزونههای PHP برای برقراری ارتباط با MySQL نصب میشوند. در حالی که تعداد زیادی از افزونههای PHP و پلاگینهای WordPress وجود دارند که میتوانید از آنها استفاده کنید.
میتوانید مشهورترین PHP extension ها را دانلود کنید و آنها را با تایپ دستور زیر در WordPress استفاده کنید.
$ sudo apt update
$ sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
برای استفاده از افزونههای نصب شده، باید فرآیند PHP-FPM را مجدداً راهاندازی کنید. برای راهاندازی مجدد PHP از دستور زیر استفاده کنید.
$ sudo systemctl restart php7.0-fpm
پس از اتمام مراحل فوق، هر افزونه PHP که نیاز داشته باشید روی سرور وجود دارد.
3- پیکربندی Nginx
در این مرحله از پیادهسازی، باید تنظیمات جزئی برای block file های Nginx server را انجام دهید. طبق دستورالعمل، شما باید یک فایل پیکربندی برای وبسایت خود در دایرکتوری /etc/nginx/sites-available/ برای پاسخدهی به server’s domain name و محافظت به وسیله گواهینامه TLS/SSL داشته باشید.
در اینجا از دایرکتوری /etc/nginx/sites-available/your_domain به عنوان نمونه استفاده شده اما آن را مطابق با سیستم خود تنظیم نمایید.
همچنین از /var/www/your_domain به عنوان دایرکتوری root برای نصب WordPress استفاده خواهیم کرد. کاربران باید با توجه به پیکربندی سیستم خود آن را تنظیم کنند.
توجه به این نکته ضروری به نظر میرسد که این امکان وجود دارد که از /etc/nginx/sites-available/default به عنوان پیکربندی پیش فرض و /var/www/html به عنوان root وبسایت مد نظرتان استفاده کنید. اما در این زمان شما تنها هاست یک وبسایت را بر عهده خواهید داشت و در صورتی که نیاز داشته باشید، میتوانید تنظیمات اولیه را تغییر دهید.
فایل پیکربندی Nginx را با دسترسیهای sudo برای شروع باز کنید.
$ sudo nano /etc/nginx/sites-available/your_domain
حال باید تعدادی بخشنامه location درون بلوک اصلی server اضافه کنید. پس از اضافه کردن گواهی SSL، پیکربندی انجام شده ممکن است دو بلوک server داشته باشد.
اگر این اتفاق رخ داده است باید فایل root /var/www/your_domain را اجرا کنید و تغییرات لازم را در این قسمت انجام دهید.
با ایجاد بلوکهای تطبیق دقیق location برای درخواستهای /favicon.ico و /robots.txt شروع کنید. دقیقاً دوتا از آنهایی که نمیخواهید برای ورود درخواست کنید.
ما از location معمولی برای مطابقت با هرگونه درخواست برای فایلهای استاتیک استفاده خواهیم کرد. ما دوباره ورود به سیستم این درخواستها را خاموش خواهیم کرد و آنها را به عنوان حافظه بسیار محکمی علامت گذاری خواهیم کرد زیرا این منابع معمولاً گران قیمت برای ارائه هستند.
میتوانید این لیست پروندههای استاتیک را تنظیم کنید تا شامل سایر پسوندهای پرونده دیگری باشد که سایت شما ممکن است از آن استفاده کند:
/etc/nginx/sites-available/your_domain
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 برای مدیریت درخواست برگرداند.
/etc/nginx/sites-available/wordpress
server {
. . .
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
. . .
}
پس از این که مراحل پیکربندی به پایان رسید دستورات را ذخیره کرده و فایل را ببندید. حال با تایپ دستور زیر میتوانید پیکربندی انجام شده را برای یافتن اشتباههای نوشتاری چک کنید.
$ sudo nginx –t
اگر هیچ خطایی وجود نداشت، با تایپ دستور زیر میتوانید Nginx را مجدداً بارگذاری کنید.
$ sudo systemctl reload nginx
در مرحله بعدی نوبت به دانلود و نصب WordPress میرسد.
4-دانلود و نصب WordPress
در این مرحله از پیادهسازی WordPress با LEMP در بستر Debian 9، با وجود این که مراحل پیکربندی سرور به پایان رسیده، میتوانید WordPress را نصب و راهاندازی کنید.
به دلایل امنیتی همیشه توصیه میشود که برای نصب WordPress آخرین نسخه آن را از وبسایت ارائهدهنده این سرویس دریافت و نصب کنید. با استفاده از دستور زیر میتوانید آخرین نسخه WordPress را دریافت نمایید.
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
برای خارج کردن نسخه دانلود شده از حالت فشرده، دستور زیرا را استفاده کنید.
$ tar xzvf latest.tar.gz
فایلها را درون document root جابهجا کنید و قبل از انجام هر کاری میتوانید یک نسخه از آن را به عنوان نمونه کپی کنید.
$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
میتوانید تمام محتوای دایرکتوری را به درون document root مد نظرتان کپی کنید. در این مرحله از یک نماد a- برای حفظ سطح دسترسیها استفاده میشود. بین دایرکتوری مبدا و document root که محتوا درون آن کپی میشود، مطابق دستورالعمل از یک نقطه یا dot استفاده کنید.
$ sudo cp -a /tmp/wordpress/. /var/www/your_domain
پس از این که فایلها در جایگاهشان قرار گرفتند، میتوانید اجازه استفاده از آنها را به کاربران و گروههای www-data بدهید. توجه داشته باشید که کاربران از Nginx استفاده میکنند. Nginx نیازمند قابلیت خواندن و نوشتن فایلهای WordPress بر روی سرور است تا وبسایت به صورت اتوماتیک آپدیت و بروز رسانی شود.
$ sudo chown -R www-data:www-data /var/www/your_domain
فایلهای مورد نیاز ما هم اکنون در سرور document root قرار دارند و مالکیت آنها به درستی به کاربران تخصیص داده شده است. اما هنوز تنظیماتی باقی ماندهاند که باید انجام شوند.
5- راهاندازی فایلهای پیکرهبندی شده WordPress
در این مرحله قصد داریم تغییراتی در پیکربندی فایلهای WordPress نسخه اصلی ایجاد کنیم. به محض باز کردن فایل، کلیدهای امنیتی را مشاهده میکنید که امنیت لازم را هنگام نصب فراهم میکنند.
WordPress با وجود این مقادیر یک secure generator مناسب را برای شما فراهم میکند.( نیازی نیست که آنها را شخصیسازی کنید.) برای دریافت WordPress secret key generator کافی است دستور زیر را تایپ کنید.
$ 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&%');
اینها خطهای پیکربندی هستند که میتوانید آنها را مستقیماً در فایل پیکربندی برای تنظیم کلیدهای امنیتی paste کنید. خروجی را که دریافت کردید را کپی نمایید.
در این مرحله فایل WordPress را باز کنید.
$ sudo nano /var/www/your_domain/wp-config.php
در اینجا فایلهایی که دارای مقادیر پیش فرض هستند را مشاهده میکنید.
/var/www/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');
. . .
این خطوط را پاک کرده و مقادیری که از command line کپی کردهاید را جایگزین نمایید.
/var/www/wordpress/wp-config.php
. . .
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 را بر اساس تنظیماتی که انجام دادهاید برقرار کنید. تنظیماتی که در این مرحله انجام میشود برای استفاده از این بستر ضروری هستند؛ زیرا به صورت پیش فرض دستورات از نسخه اصلی اجرا میشوند.
تغییر دیگری که باید انجام دهید این است که روشی که WordPress باید برای filesystem بنویسد را تنظیم کنید. از آنجایی که به سرور وب اجازه نوشتن دادهاید، میتوانید روش filesystem را روی “direct” تنظیم کنید. عدم تنظیم این مورد با تنظیمات فعلی منجر به WordPress میشود که هنگام انجام برخی اقدامات، اعتبار FTP را ترغیب کند.
این تنظیمات میتواند زیر تنظیمات اتصال پایگاهداده یا هرجایی در فایل اضافه شود:
/var/www/wordpress/wp-config.php
. . .
define('DB_NAME', 'your_domain');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
. . .
define('FS_METHOD', 'direct');
پس از اجرای دستورات آنها را ذخیره کرده و فایل را ببندید.
6- تکمیل مراحل نصب از طریق Web Interface
در این مرحله پیکربندی سرور به پایان رسیده است، درادامه به مراحل نصب از طریق Web Interface پرداخته شده است.
در مرورگر خود نام دامنه سرور یا public IP address را وارد کنید.
http://server_domain_or_IP
حال زبان مورد نظر خود را انتخاب کنید.

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

سپس با کلیک روی دکمه Install WordPress به مرحله بعدی، صفحه زیر را مشاهده خواهید کرد.

پس از گذر از مراحل فوق وارد داشبورد مدیریتی WordPress خواهید شد. حال نصب WordPress با LEMP بر روی Debian 9 به پایان رسیده است.

نتیجهگیری
اینک شما میتوانید با خیال راحت از WordPress خود استفاده نموده و تجارت خود را بسازید. با ساخت وبسایت شخصی خود، جایگاه خود را در فضای اینترنت ارتقاء دهید.
پس فرصت را از دست ندهید.حال که نحوه نصب و راهاندازی WordPress با LEMP stack بر روی Debian 9.0 را آموختید، پیشنهاد میشود برای یادگیری و کسب اطلاعات بیشتر به سایت کلادینو مراجعه نمایید.
منبع:
https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lemp-on-debian-9