راهنمای کامل نصب LAMP stack در CentOS 7
برای راهاندازی یک وبسایت یا وب اپلیکیشن، باید یک کامپیوتر داشته باشید که کار طراحی وبسایت را روی آن انجام دهید که طبیعتاً یک سیستمعامل دارد، یک زبان برنامهنویسی نیاز دارید که وبسایت داینامیک خود را با آن طراحی کنید و همچنین سیستم مدیریت دیتابیس نیاز دارید تا از طریق آن دیتای وبسایت خود را در یک سرور ذخیره و مدیریت کنید.
همه این ۴ پیشنیاز در یک پکیج به نام LAMP stack گردآوری شده تا کار شما راحتتر شود!
یک Stack LAMP گروهی از نرمافزارهای متنباز است که معمولاً با هم نصب میشوند تا یک سرور را قادر کنند که وبسایتهای داینامیک و اپلیکیشنهای وب را میزبانی کند. این اصطلاح در واقع مخفف نامهای سیستمعامل Linux و وب سرور Apache است که دیتای سایت توسط سیستم مدیریت دیتابیس MySQL مدیریت میشود و محتوای داینامیک تولید شده هم توسط زبان برنامهنویسی PHP پردازش میشود.
در این مقاله، ما Stack LAMP را در یک سیستمعامل CentOS 7 VPS نصب میکنیم. CentOS یک سیستمعامل ۱۰۰% رایگان است که بر اساس هسته لینوکس نوشته شده است. پس اولین پیشنیاز ما یک سیستمعامل لینوکس است.
نکته: Stack LAMP میتواند بهصورت اتوماتیک روی Droplet شما نصب شود برای اینکار نیاز است تا این اسکریپت را هنگام استفاده به User Data اضافه کنید.
پیشنیازها
قبل از اینکه خواندن این مقاله را شروع کنید، باید یک حساب کاربری جداگانه روت نشده، روی سرور خود داشته باشید. میتوانید راهنمای انجام اینکار را در اینجا مطالعه کنید
قدم اول: آپاچی را نصب کنید
وب سرور آپاچی در حال حاضر محبوبترین وب سرور دنیا است که آن را به بهترین انتخاب برای میزبانی یک وبسایت تبدیل میکند.
بهراحتی میتوانید آپاچی را توسط yum، سیستم مدیریت پکیج CentOS نصب کنید. سیستم مدیریت پکیج به شما اجازه میدهد که بیشتر نرمافزارها را بدون دردسر، از repository که توسط سیستمعامل CentOS نگهداری میشود، نصب کنید.
با تایپ دستور زیر میتوانید شروع کنید:
sudo yum install httpd
ازآنجاییکه از دستور sudo استفاده میکنید، به شما اجازه میدهد تا از اختیارات دسترسی یک حساب کاربری دیگر استفاده کرده و در نتیجه دستورها با داشتن امتیاز دسترسی به روت اجرا میشوند؛ اما ابتدا، از شما درخواست پسورد کاربر معمولی را خواهد کرد تا هدفتان را بررسی کند.
پسازآن، وب سرور شما نصب شده است.
بهمحض اینکه سرور وب نصب شد، میتوانید آپاچی را روی VPS یا سرور اختصاصی خود راهاندازی کنید:
sudo systemctl start httpd.service
میتوانید با نگاه کردن به آدرس IP عمومی سرور خود در مرورگر وب، بلافاصله یک کنترل انجام دهید تا بررسی کنید که همهچیز مطابق برنامه انجامشده است. اگر آدرس IP عمومی خود را در دسترس ندارید، بهعنوان بعدی این مقاله مراجعه کنید تا آدرس IP عمومی خود را پیدا کنید.
http://your_server_IP_address/
در اینجا، صفحه پیشفرض آپاچی در سیستمعامل CentOS7 را خواهید دید که برای اهداف تست و ارائه اطلاعات در آنجا قرار داده شده است که باید چیزی شبیه این باشد:
اگر این تصویر را میبینید، یعنی وب سرور شما بهدرستی نصب شده است!
آخرین کاری که باید انجام دهید این است که به آپاچی اجازه دهید تا در بوت سیستم، راهاندازی شود. برای این کار، دستور زیر را استفاده کنید:
sudo systemctl enable httpd.service
چگونه آدرس IP عمومی سرور خود را پیدا کنیم؟
اگر نمیدانید که آدرس IP عمومی سرورتان چیست، تعدادی راه وجود دارند که بتوانید آن را پیدا کنید. معمولاً، این همان آدرسی است که برای متصل شدن از طریق پروتکل SSH به سرور خود از آن استفاده میکنید.
در خط فرمان، میتوانید از چند روش، آدرس IP عمومی سرور خود را پیدا کنید. میتوانید ابزار iproute2 را با تایپ دستور زیر استفاده کنید:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
این دستور یک یا دو خط خروجی به شما میدهد. هردو خروجی، آدرسهای درستی هستند اما کامپیوتر شما ممکن است که فقط بتواند از یکی از آنها استفاده کند پس حتماً هر دوی آنها را امتحان کنید.
یک متد جایگزین، استفاده از یک منبع خارجی است تا به شما بگوید که چگونه سرورتان را میبیند. میتوانید از یک سرور خاص بپرسید که آدرس IP شما چیست:
curl http://icanhazip.com
فارغ از اینکه چه متدی استفاده میکنید تا آدرس IP عمومی سرور خود را پیدا کنید، میتوانید آدرس پیدا شده را در نوار آدرس مرورگر وب خود تایپ کنید تا وارد سرور شوید.
قدم دوم: MYSQL را نصب کنید (MariaDB)
حال که سرور خود را راهاندازی کردهاید، زمان آن است که دیتابیس MariaDB را نصب کنید که یک جایگزین فوری برای MYSQL است. دیتابیس MariaDB یک انشعاب توسعه داده شده توسط کاربران از سیستم مدیریت دیتابیس رابطهای MYSQL است. اساساً این دیتابیس، دسترسی به دیتابیسها را تأمین و سازماندهی میکند تا وبسایت شما بتواند اطلاعات را ذخیره کند.
میتوانید از yum استفاده کنید تا نرمافزار خود را به دست آورده و نصب کنید؛ اما این بار، پکیجهای کمکی دیگری هم نصب میکنید تا کامپوننتهای متفاوت شما بتوانند با هم ارتباط برقرار کنند:
sudo yum install mariadb-server mariadb
هنگامیکه نصب نرمافزار تمام شد، باید دیتابیس MariaDB را با دستور زیر راهاندازی کنید:
sudo systemctl start mariadb
و حالا که دیتابیس MYSQL شما کار میکند، یک اسکریپت امنیتی ساده را اجرا میکنید تا تعدادی از پیشفرضهای خطرناک را حذف کند و دسترسی به سیستم دیتابیس شمارا محدودتر کند. اسکریپت تعاملی را با اجرای دستور زیر آغاز کنید:
sudo mysql_secure_installation
خط فرمان پسورد فعلی روت را از شما خواهد پرسید. ازآنجاییکه همین الان MYSQL را نصب کردید، بهاحتمالزیاد هنوز پسورد ندارید، پس این بخش را با فشار دادن دکمه اینتر خالی بگذارید. سپس میپرسد که آیا میخواهید که پسورد روت را تنظیم کنید. باید پاسخ Y را بهعنوان تایید، تایپ کنید و دستورالعملهای بعدی را دنبال کنید:
Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorization. New password: password Re-enter new password: password Password updated successfully! Reloading privilege tables.. ... Success!
برای سایر سؤالات، شما باید فقط دکمه اینتر را فشار دهید تا مقدار پیشفرض را بپذیرید. این روند، تعدادی از حسابهای کاربری نمونه و دیتابیسها را حذف خواهد کرد، لاگینهای روت از راه دور را کنسل و قوانین جدید را بارگذاری میکند تا MYSQL بلافاصله تغییرات ایجاد شده را پذیرفته و اجرا کند.
آخرین کاری هم که باید انجام دهید این است که به دیتابیس MariaDB اجازه دهید تا در هنگام بوت سیستم، راهاندازی شود. از دستور زیر برای این کار استفاده کنید:
sudo systemctl enable mariadb.service
در این مرحله، سیستم دیتابیس شما تنظیم شده و میتوانید به قدم بعدی بروید.
قدم سوم: PHP را نصب کنید
PHP کامپوننتی از تنظیمات شما است که کدها را پردازش خواهد کرد تا محتوای داینامیک را نمایش دهد. میتواند اسکریپتها را اجرا کند، به دیتابیس MySQL متصل شود تا اطلاعات را دریافت کند و محتوای پردازششده را به وب سرور شما تحویل دهد تا نمایش داده شود.
دوباره میتوانید از سیستم yum استفاده کنید تا کامپوننتهای خود را نصب کنید. این بار پکیج php-MySQL را هم اضافه میکنید:
sudo yum install php php-mysql
این دستور باید بدون مشکل PHP را نصب کند. باید سرور وب آپاچی را ریاستارت کنید تا بتواند با PHP کار کند. با تایپ دستور زیر میتوانید این کار را انجام دهید:
sudo systemctl restart httpd.service
نصب ماژولهای PHP:
برای تقویت کارکرد PHP، شما میتوانید بهدلخواه، تعدادی از ماژولهای اضافه را نصب کنید.
برای دیدن گزینههای در دسترس برای ماژولهای PHP و لایبرریها، میتوانید کد زیر را در سیستم خود تایپ کنید:
yum search php-
نتایج بهدستآمده، کامپوننتهای اختیاری هستند که در صورت تمایل میتوانید نصب کنید. برای هر گزینه یک توضیحات کوتاه هم ارائه میدهد:
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-cli.x86_64 : Command-line interface for PHP php-common.x86_64 : Common files for PHP php-dba.x86_64 : A database abstraction layer module for PHP applications php-devel.x86_64 : Files needed for building PHP extensions php-embedded.x86_64 : PHP library for embedding in applications php-enchant.x86_64 : Enchant spelling extension for PHP applications php-fpm.x86_64 : PHP FastCGI Process Manager php-gd.x86_64 : A module for PHP applications for using the gd graphics library . . .
برای دریافت اطلاعات بیشتر در مورد اینکه هر ماژول چهکارهایی انجام میدهد، میتوانید یا در اینترنت درباره ماژول جستجو کنید یا با تایپ دستور زیر، توضیحات کامل آن را در پکیج مطالعه کنید:
yum info package_name
برای این دستور، خروجی زیادی به دست خواهد آمد که یک فیلد آن Description نام دارد که توضیحات کاملتری از کارکرد ارائهشده توسط هر ماژول را دارد.
برای نمونه، برای اینکه متوجه شوید که ماژول php-fpm چهکاری انجام میدهد میتوانید دستور زیر را تایپ کنید:
yum info php-fpm
به همراه مقدار زیادی از اطلاعات دیگر که نشان داده میشود، شما یک خروجی شبیه مورد زیر خواهید دید:
. . . Summary : PHP FastCGI Process Manager URL : http://www.php.net/ License : PHP and Zend and BSD Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI : implementation with some additional features useful for sites of : any size, especially busier sites.
اگر بعد از تحقیق کردن، شما تصمیم گرفتید که میخواهید یک پکیج را نصب کنید، میتوانید از دستور yum install به همان شیوهای که در نصب نرمافزارهای بالا انجام شد، استفاده کنید.
اگر تصمیم گرفتید که به php-fpm احتیاج دارید، میتوانید دستور زیر را تایپ کنید:
sudo yum install php-fpm
اگر میخواهید بیش از یک ماژول را نصب کنید، میتوانید لیست آنها را که با یکفاصله از هم جداشدهاند پس از دستور yum install بهصورت زیر تایپ کنید:
sudo yum install package1 package2 ...
در این مرحله، Stack LAMP نصب و تنظیم شده است؛ اما هنوز باید PHP خود را تست کنید.
قدم چهارم: پردازش PHP را در وب سرور خود تست کنید.
برای اینکه بتوانید سیستم خود را تست کنید تا متوجه شوید که برای کار کردن با PHP بهدرستی تنظیم شده است، میتوانید یک اسکریپت بسیار ساده PHP را ایجاد کنید.
این اسکریپت را info.php بنامید. برای اینکه آپاچی بتواند فایل را پیدا کرده و به آن بهدرستی پاسخ دهد، این فایل باید در دایرکتوری خاصی به نام web root ذخیره شود.
در سیستمعامل CentOS7، این دایرکتوری در آدرس/var/www/html/ قرار دارد. میتوانید فایل را در این آدرس با تایپ دستور زیر ایجاد کنید:
sudo vi /var/www/html/info.php
این دستور، یک فایل خالی را باز خواهد کرد. باید متن زیر را که یک کد معتبر PHP است در این فایل قرار دهید:
<?php phpinfo(); ?>
هنگامیکه کار شما تمام شد، فایل را ذخیره کرده و ببندید.
اگر یک Firewall در سیستم خود دارید، دستورهای زیر را اجرا کنید تا به ترافیک HTTP و HTTPS اجازه عبور دهید:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
حال میتوانید تست کنید که آیا وب سرور شما بهدرستی میتواند محتوای تولیدشده توسط یک اسکریپت PHP را نمایش دهد. برای این کار، فقط باید این صفحه را در مرورگر اینترنت خود بازدید کنید! البته مجددا به آدرس IP عمومی سرور خود احتیاج دارید.
آدرسی که باید بازدید کنید بهصورت زیر است:
http://your_server_IP_address/info.php
صفحهای که باید باز شود چیزی شبیه به تصویر زیر است:
این صفحه در واقع اطلاعاتی در مورد سرور شما را از دیدگاه PHP ارائه میدهد. اطلاعات این صفحه برای عیبیابی و اطمینان از اینکه تنظیمات بهدرستی اجرا میشوند مفید هستند.
اگر این تست موفقیتآمیز بود، پس PHP شما به همان صورت که توقع میرود، کار میکند.
باید این فایل را بعد از تست حذف کنید برای اینکه میتواند اطلاعات سرور شما را به کاربران غیرمجاز ارائه دهد! برای این کار، دستور زیر را تایپ کنید:
sudo rm /var/www/html/info.php
اگر نیاز داشتید که بعداً به این اطلاعات مراجعه کنید، میتوانید این صفحه را دوباره ایجاد کنید.
نتیجهگیری
حال که شما یک LAMP stack نصب کردهاید، گزینههای زیادی در دسترس دارید که در مراحل بعد انجام دهید. اساساً، شما یک پلتفرم نصب کردهاید که اجازه میدهد انواع زیادی از وبسایتها و نرمافزارهای وب را روی سرور خود نصب کنید.