نصب Linux, Apache, MySQL, PHP (LAMP) stack در CentOS 7

آشنایی با LAMP:
اصطلاح “LAMP” یا LAMP stack به گروهی از نرم افزارهای متن باز اطلاق می شود که در جهت میزبانی وب سایت ها و برنامه های وب در یک سرور نصب می شوند. این اصطلاح ،نشان دهنده سیستم عامل لینوکس با وب سرور Apache است. داده های سایت با استفاده از Maria DB در پایگاه داده MySQL ذخیره و محتوای آن توسط PHP پردازش می شود.
در این بخش ،نصب LAMP stack در CentOS 7 را بررسی می کنیم. CentOS اولین نیاز ما که یک سیستم عامل لینوکس است را فراهم می کند.
LAMP stack را می توان به صورت اتوماتیک برروی سرور با اضافه کردن اسکریپت زیر به داده های کاربر در هنگام راه اندازی، نصب کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
18 lines (18 sloc) 327 Bytes 1 #cloud-config 2 packages: 3 - httpd 4 - mariadb-server 5 - mariadb 6 - php 7 - php-mysql 8 write_files: 9 - path: /var/www/html/info.php 10 content: | 11 <?php 12 phpinfo(); 13 ?> 14 runcmd: 15 - systemctl start httpd.service 16 - systemctl enable httpd.service 17 - systemctl start mariadb 18 - systemctl enable mariadb.service |
پیش نیازها:
قبل از آموزش،یک اکانت جداگانه غیر از root در سرور خود باید داشته باشید. با یادگیری ۴ مرحله ذیل در تنظیمات سرور در CentOS 7 می توانید این کار را انجام دهید.
مراحل نصب LAMP در CentOS 7:
مرحله اول،نصب Apache:
در حال حاضر وب سرور Apache،یکی از محبوب ترین وب سرورها در جهان است که بطور پیش فرض از آن برای میزبانی وب سایت ها استفاده می شود.
با استفاده از پکیج مدیریتی CentOS، می توانید آن را در yum نصب کنید. مدیر بسته اجازه می دهد که به سادگی در repository و یا مخازن داده CentOS، آنها را نصب کنید.
نصب را با دستور زیر آغاز کنید.
1 |
sudo yum install httpd |
از دستور sudo،جهت اجرای دستورات در root استفاده می کنیم. در ادامه، سیستم رمز عبور کاربر را درخواست می کند. سپس، وب سرور نصب خواهد شد.
پس از نصب Apache با دستور زیر، در VPS خود می توانید شروع بکارکنید:
1 |
sudo systemctl start httpd.service |
با مشاهده آدرس IP عمومی سرور در مرورگر،بررسی دقیقی را انجام دهید که همه مراحل به طور کامل انجام شده است.( در ادامه نحوه پیدا کردن آدرس IP را شرح می دهیم. در صورتی که نحوه استفاده از آن را نمی دانید دستور زیر را اجرا کنید):
1 |
http://your_server_IP_address/ |
صفحه پیش فرض وب سایت CentOS 7 Apache که با اهداف اطلاعاتی و تست قرار دارد را می توانید ببینید. این صفحه مانند شکل زیر است.
با مشاهده این صفحه،اطمینان حاصل کنید که وب سرورتان به درستی نصب شده است.
در مرحله آخر،با اجرای دستور زیر Apache را فعال کرده تا بوت شود.
1 |
sudo systemctl enable httpd.service |
چگونه آدرس IP عمومی سرور را پیدا کنیم؟
برای پیدا کردن آدرس IP عمومی سرور روش های مختلفی وجود دارد. این آدرس معمولا جهت اتصال به سرور از طریق SSH استفاده می شود.
اولین قدم، برای بدست آوردن آدرس IP استفاده از ابزار iproute2 با دستور زیر است:
1 |
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' |
روش دیگر، استفاده از یک سرور دیگر است که نشان دهد که چگونه سرورتان را ببینید. با دستور زیر می توانید از یک سرور خاص درخواست کنید که آدرس IP شما چیست
1 |
curl http://icanhazip.com |
صرف نظر از روشی که برای دریافت آدرس IP خود استفاده می کنید، می توانید آن را در نوار آدرس مرورگر خود وارد کنید تا به سرور خود برسید.
مرحله دوم،نصب (MYSQL (Maria DB:
بعد از راه اندازی وب سرور، MariaDB را که جایگزینی برای MySQL است را باید نصب کنیم. MariaDB یک بخش توسعه یافته است که از سیستم مدیریت پایگاه داده رابطه ای MySQL پشتیبانی می کند. پایگاه داده برای اینکه اطلاعات وب سایت را بتواند در خود ذخیره کند سازماندهی شده است.
بار دیگر با استفاده از نرم افزار yum ، نرم افزار را دریافت و نصب می کنیم. جهت برقراری ارتباط بین مولفه ها با یکدیگر ، تعدادی از بسته های کمکی را نصب می کنیم.
1 |
sudo yum install mariadb-server mariadb |
جهت آغاز به کار MariaDB بعد از کامل شدن نصب ،دستور زیر را اجرا کنید:
1 |
sudo systemctl start mariadb |
بعد از اجرای پایگاه داده MySQL، یک اسکریپت امنیتی ساده که بعضی از دستورات خطرناک پیش فرض را حذف و دسترسی ما به پایگاه داده را کمی محدود می کند را اجرا می کنیم. برای شروع بکار این اسکریپت دستور زیر را اجرا کنید:
1 |
sudo mysql_secure_installation |
پس از اجرای دستور بالا، رمز عبور root را می خواهد. و با توجه به اینکه MySQL را نصب کرده اید، به احتمال زیاد آن را ندارید، پس با فشردن Enter، آن را خالی بگذارید. سپس تنظیم رمز عبور root را از شما درخواست می کند. Y را فشرده و دستورات زیر را دنبال کنید:
1 2 3 4 5 6 7 8 9 10 11 |
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! |
در ادامه کلید Enter را بزنید تا برای باقی سوالات مقادیر پیش فرض را قبول کند. برخی از کاربران و پایگاه های داده را حذف، ورود از راه دور به root را غیرفعال ، و برای اینکه MySQL تغییراتی که اعمال کرده ایم را بپذیرد، قوانین جدیدی را بارگذاری می کند.
در مرحله آخر دستور زیر را انجام داده تا، MariaDB فعال شده و بوت شود.
1 |
sudo systemctl enable mariadb.service |
حال پایگاه داده سیستم شما تنظیم شده و می توانیم ادامه دهیم.
مرحله سوم،نصب PHP:
PHP از مولفه هایی است که به منظور پردازش کد،برای نمایش محتوا باید راه اندازی شود. PHP می تواند اسکریپت ها را اجرا کرده، به پایگاه داده MySQL دسترسی پیدا کرده و محتوا پردازش شده را برای نمایش به وب سرور منتقل می کند.
بار دیگر از yum برای اجرا مولفه های خود می توانیم استفاده کنیم و پکیج php-mysql را نصب می کنیم:
1 |
sudo yum install php php-mysql |
دستور بالا بدون هیچ مشکلی PHP را نصب می کند. جهت کار با PHP باید وب سرور Apache را راه اندازی کنیم. به این منظور دستور زیر را اجرا کنید:
1 |
sudo systemctl restart httpd.service |
نصب ماژول های PHP:
به منظور افزایش قابلیت PHP، می توان بعضی از ماژول ها را نصب کرد.
دستور زیر را جهت مشاهده ماژول های موجود در PHP اجرا کنید:
1 |
yum search php- |
خروجی تمام مولفه هایی را که می توانید آن ها را نصب کنید به همراه یک شرح کوتاه از هرکدام را ارائه می دهد:
1 2 3 4 5 6 7 8 9 10 |
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 . . . |
با استفاده از دستور زیر می توان توضیحات بیشتری پیرامون نحوه فعالیت ماژول ها کسب کرد:
1 |
yum info package_name |
دستور بالا خروجی های زیادی با فیلدی به نام Description که شرح کاملی از عملکردهای ماژول ها را بیان می کند، نمایش می دهد.
بطور مثال، برای مشاهده عملکرد ماژول php-fpm دستور زیر را اجرا کنید:
1 |
yum info php-fpm |
با اجرای دستور بالا،اطلاعات زیادی مشابه زیر را مشاهده خواهید کرد:
1 2 3 4 5 6 7 |
. . . 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 دارید دستور زیر را اجرا کنید:
1 |
sudo yum install php-fpm |
در صورتی که می خواهید ماژول های بیشتری را نصب کنید، همانند دستور زیر، با دستور yum install، لیستی از هرکدام را تهیه کرده و با زدن space آنها را از هم جدا کنید.
1 |
sudo yum install package1 package2 ... |
در این مرحله LAMP stack نصب و پیکربندی شده است. اما PHP را باید آزمایش کرد.
مرحله چهارم: تست پردازش PHP در وب سرور
برای تست پیکربندی صحیح PHP در سیستم، یک اسکریپت ساده از PHP را ایجاد می کنیم.
این اسکریپت را info.php می نامیم. برای اینکه Apache فایل را بدرستی پیدا کرده و کار کند، باید آن را در یک دایرکتوری خاص، که “web root” نامیده می شود ذخیره کنید.
در CentOS 7، این دایرکتوری در /var/www/html/ قرار دهید. با دستور زیر می توان فایلی را در این مسیر ایجاد کرد:
1 |
sudo vi /var/www/html/info.php |
این دستور یک فایل خالی را باز می کند. می خواهیم متن زیر را که یک کد معتبر PHP است را در این فایل قرار دهیم:
1 |
<?php phpinfo(); ?> |
بعد از انجام این کار، فایل را ذخیره و ببندید.
در صورت استفاده از فایروال، برای اعمال ترافیک HTTP و HTTPS دستورات زیر را اجرا کنید:
1 2 3 |
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload |
حال برای بررسی اینکه ،وب سرور می تواند بطور صحیح محتوای تولید شده توسط یک اسکریپت PHP را نمایش دهد می توان را آزمایش کرد. برای این کار تنها کافیست این صفحه را در مرورگر خود مشاهده کنید. در اینجا دوباره نیاز به آدرس IP عمومی سرور خود نیاز دارید.
با دستور زیر، می توانید آدرسی را که می خواهید ببینید :
1 |
http://your_server_IP_address/info.php |
صفحه ای که به آن می روید تقریبا مشابه این صفحه باشد.
به طور کلی این صفحه اطلاعاتی درباره سرور از دید PHP می دهد. این روش برای اشکال زدایی مفید است و اطمینان حاصل می کند که تنظیمات به درستی اعمال می شود.
در صورتی که این کار با موفقیت انجام شد، PHP همانطور که انتظار دارید کار می کند.
بعد از انجام این تست بدلیل اینکه می تواند اطلاعات مربوط به سرور شما را به کاربران غیر مجاز ارائه دهد،ممکن است بخواهید این فایل را حذف کنید. برای این کار دستور زیر را انجام دهید:
1 |
sudo rm /var/www/html/info.php |
نتیجه گیری:
هم اکنون که LAMP stack را نصب کرده اید، گزینه های زیادی برای انجام کارهای بعدی دارید. بطور کلی ، پلت فرمی نصب کردید که این اجازه را به شما می دهد تا انواع وب سایت ها و نرم افزارهای وب را روی سرور خود نصب کنید.
با ما همراه بمانید.