در این آموزش قصد داریم بر روی نحوه نصب و راه اندازی LAMP Stack "Linux, Apache, MariaDB, PHP, PhpMyAdmin" در Red Hat Enterprise 7.0 و CentOS 7.0 تمرکز کنیم، همچنین قابل ذکر هست که سرویس httpd در هر دوی توزیع ها به Apache HTTP 2.4 ارتقاء داده شده است.
پیش نیازها
بسته به توزیع مورد استفاده تان، RedHat یا CentOS 7.0 از لینک های زیر برای راه اندازی و اجرای یک سیستم minimal از یک IP آدرس Static برای تنظیمات شبکه استفاده کنید.
برای RHEL 7.0
آموزش تصویری نصب RHEL (Red Hat Enterprise Linux) 7.0
برای CentOS 7.0
آموزش تصویری نصب CentOS 7.0
همچنین توصیه میشود مقالات زیر را هم مطالعه بفرمایید.
آموزش نصب "LAMP "Linux, Apache, MySQL or MariaDB, PHP در دبیان 9
آموزش نصب "LAMP "Linux, Apache, MySQL or MariaDB, PHP در Ubuntu 16.10
مرحله اول : نصب Apache به همراه تنظیمات اولیه
1 - بعد از نصب و راه اندازی سیستم و انجام تنظیمات اینترفیس شبکه تان توسط یک IP آدرس ثابت در RedHat/CentOS 7.0 جلوتر میرویم و پکیچ باینری سرویس httpd برای Apache 2.4 را که توسط ریپازیتوری های رسمی ارائه شده همانند زیر نصب کنید.
2 - بعد از اتمام نصب توسط yum از دستورات زیر برای مدیریت سرویس آپاچی استفاده کنید، از آنجایی که RedHat و CentOS 7.0 هر دو اسکریپت های init شان از SysV به systemd ارتقاء داده اند، شما میتوانید از اسکریپت های sysv و apache همزمان برای مدیریت سرویس استفاده کنید.
3 - در مرحله بعد سرویس آپاچی را با استفاده از اسکریپت init systemd استارت کرده و رول های فایروال را در RedHat/CentOS 7.0 با استفاده از firewall-cmd باز کنید، که به صورت پیش فرض برای مدیریت iptables از طریق سرویس firewalld میباشد.
نکته : توجه داشته باشید بعد از reboot کردن سیستم یا restart کردن سرویس firewalld این rule که استفاده کرده اید به دلیل اینکه هنوز باز هستند، از بین خواهد رفت و به طور دائمی اعمال نخواهد شد. برای اعمال کردن دائمی رول ها یا قوانین iptables در فایروال از آپشن permanent و بعد از آن ریستارت کردن سرویس firewalld استفاده کنید.
آپشن های مهم دیگر Firewalld در زیر ارائه شده است.
4 - برای مطمئن شدن از عملکرد وب سرور آپاچی، یک مرورگر باز کنید و IP آدرس سرورتان را در URL تایپ کنید، (برای مثال http://server-ip) سپس یک صفحه همانند عکس زیر نمایش داده میشود.
5 - اکنون، مسیر DocumentRoot آپاچی روی دایرکتوری /var/www/html تنظیم شده است، که به صورت پیش فرض خالی هست و هیچ فایل index در آن ارائه نشده است. اگر شما میخواهید لیست یک دایرکتوری از مسیر DocumentRoot تان را مشاهده کنید، فایل تنظیمات آپاچی "welcom.conf" را باز کنید و در قسمت "<LocationMatch>" کاراکتر منهای '-' کنار عبارت Index را به بعلاوه '+' تغییر دهید، برای مثال همانند شکل زیر عمل کنید.
6 - بعد از ذخیره تغییرات فایل را ببندید و سرویس Apache را برای انعکاس تغییرات جدید restart کرده، سپس صفحه مرورگر خود را برای مشاهده تغییرات reload کنید.
مرحله دوم : نصب PHP5 برای Apache
7 - قبل از نصب زبان برنامه نویسی PHP5 برای Apache، با استفاده از دستور زیر، لیستی از تمامی ماژول های PHP را به دست آورید.
8 - بسته به نوع برنامه های که میخواهید استفاده کنید، ماژول های مورد نیاز PHP را از لیست بالا را نصب کرده، اما برای پشتیبانی MariaDB در PHP و PhpMyAdmin احتیاج هست که شما ماژول های زیر را نصب کنید.
9 - برای گرفتن لیست کامل اطلاعات درباره PHP از طریق مرورگرتان، ابتدا یک فایل info.php در مسیر Document Root آپاچی با استفاده از دستور زیر از طریق یوزر root ایجاد کرده، سپس سرویس httpd را ریستارت کرده و در مرورگرتان آدرس فایل info.php را به صورت مستقیم وارد کنید. (http://server-ip/info.php)
10 - اگر شما یک خطایی مربوط به Date و Timezone در PHP دریافت کردید، فایل تنظیمات php.ini را باز کرده، خط date.timezone را جستجو و از حالت کامنت خارج کنید، سپس موقعیت زمانی خودتان را اضافه کنید و بعد از ذخیره تغییرات و خارج شدن از فایل سرویس Apache را restart کنید.
شما میتوانید برای تعیین و عوض کردن date.timezone خود، از لیست Timezones پشتیبانی شده توسط PHP همانند زیر استفاده کنید.
مرحله سوم : نصب و تنظیمات دیتابیس MariaDB
11 - لینوکس Red Hat Enterprise/CentOS 7.0 برای مدیریت دیتابیس سیستم از MySQL به MariaDB سوئیچ کرده است. برای نصب دیتابیس MariaDB از دستور زیر استفاده کنید.
12 - بعد از نصب پکیج MariaDB، سرویس دیتابیس را start کنید و برای امن کردن دیتابیس از اسکریپت mysql_secure_installation (تنظیم پسورد root، غیرفعال کردن لاگین root از به صورت remote، حذف کردن دیتابیس test و حذف کردن یوزرهای ناشناس) استفاده کنید.
13 - برای تست عملکرد دیتابیس توسط یوزر root به MariaDB لاگین کنید و با استفاده از دستور quit خارج شوید. (همانند توضیحات زیر)
مرحله چهارم : نصب PhpMyAdmin
14 - به صورت پیش فرض ریپازیتوری های رسمی RedHat 7.0 یا CentOS 7.0 هیچ پکیجی برای اینترفیس وب PhpMyAdmin ارائه نداده است. اگر شما برای مدیریت دیتابیس تان در کامند لاین MySQL راحت نیستید، میتوانید پکیج PhpMyAdmin را با استفاده از فعال کردن ریپازیتوری های epel یا remi در CentOS 7.0 نصب کنید. برای این کار از دستورات زیر استفاده کنید.
بعد از فعال کردن ریپازیتوری ها شما میتوانید PhpMyAdmin را نصب کنید.
15 - سپس فایل phpmyadmin.conf را برای دسترسی دادن به هاست های راه دور ویرایش میکنیم، conf.d در دایرکتوری آپاچی قرار دارد.
مطمئن شوید که عبارت Require all granted (برای Apache 2.4) و Allow from & ltip address> درون قسمت مربوط به دایرکتوری /usr/share/phpmyadmin اضافه شده باشد.
در نهایت برای اعمال تغییرات سرویس آپاچی را restart میکنیم.
16 - برای اینکه بتوانید با استفاده از متد cookie authentication (احراز هویت کوکی) به اینترفیس وب PhpMyAdmin لاگین کنید، یکblowfish string همانند تصویر زیر و با استفاده از ایجاد یک secret string در فایل کانفیگ phpmyadmin (فایل config.inc.php) اضافه کنید و سپس سرویس وب apache را restart کنید و در مرورگر خود آدرس http://server=ip/phpmyadmin را وارد نمایید.
همچنین توصیه میشود مقالات زیر را هم مطالعه بفرمایید.
آموزش نصب PhpMyAdmin در لینوکس (CentOS/RedHat 6 - 7 و Fedora 20 - 24)
آموزش Secure کردن PhpMyAdmin
مرحله پنجم : فعال کردن LAMP در Boot سیستم
17 - اگر شما نیاز دارید که سرویس Apache و MariaDB به صورت اتوماتیک بعد از reboot کردن سیستم start شود دستورات زیر را برای فعال کردن آنها در سرتاسر سیستم وارد کنید.
این همه اون چیزی هست که برای نصب ابتدایی LAMP (لینوکس، آپاچی، مای اسکیول، پی اچ پی) در RedHat Enterprise 7.0 یا CentOS 7.0 مورد نیاز است. در مقاله بعدی از سری مقالات مربوط به LAMP Stack در CentOS/RHEL 7.0 میخواهیم نحوه ایجاد Virtual Hosts، تولید کردن SSL Certificates و Key ها و پشتیبانی SSL برای Apache HTTP Server را توضیح دهیم.
پیش نیازها
بسته به توزیع مورد استفاده تان، RedHat یا CentOS 7.0 از لینک های زیر برای راه اندازی و اجرای یک سیستم minimal از یک IP آدرس Static برای تنظیمات شبکه استفاده کنید.
برای RHEL 7.0
آموزش تصویری نصب RHEL (Red Hat Enterprise Linux) 7.0
برای CentOS 7.0
آموزش تصویری نصب CentOS 7.0
همچنین توصیه میشود مقالات زیر را هم مطالعه بفرمایید.
آموزش نصب "LAMP "Linux, Apache, MySQL or MariaDB, PHP در دبیان 9
آموزش نصب "LAMP "Linux, Apache, MySQL or MariaDB, PHP در Ubuntu 16.10
مرحله اول : نصب Apache به همراه تنظیمات اولیه
1 - بعد از نصب و راه اندازی سیستم و انجام تنظیمات اینترفیس شبکه تان توسط یک IP آدرس ثابت در RedHat/CentOS 7.0 جلوتر میرویم و پکیچ باینری سرویس httpd برای Apache 2.4 را که توسط ریپازیتوری های رسمی ارائه شده همانند زیر نصب کنید.
کد PHP:
# yum install httpd
2 - بعد از اتمام نصب توسط yum از دستورات زیر برای مدیریت سرویس آپاچی استفاده کنید، از آنجایی که RedHat و CentOS 7.0 هر دو اسکریپت های init شان از SysV به systemd ارتقاء داده اند، شما میتوانید از اسکریپت های sysv و apache همزمان برای مدیریت سرویس استفاده کنید.
کد PHP:
# systemctl status|start|stop|restart|reload httpd
OR
# service httpd status|start|stop|restart|reload
OR
# apachectl configtest| graceful
3 - در مرحله بعد سرویس آپاچی را با استفاده از اسکریپت init systemd استارت کرده و رول های فایروال را در RedHat/CentOS 7.0 با استفاده از firewall-cmd باز کنید، که به صورت پیش فرض برای مدیریت iptables از طریق سرویس firewalld میباشد.
کد PHP:
# firewall-cmd --add-service=http
کد PHP:
# firewall-cmd --permanent --add-service=http
# systemctl restart firewalld
آپشن های مهم دیگر Firewalld در زیر ارائه شده است.
کد PHP:
# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=8080/tcp
4 - برای مطمئن شدن از عملکرد وب سرور آپاچی، یک مرورگر باز کنید و IP آدرس سرورتان را در URL تایپ کنید، (برای مثال http://server-ip) سپس یک صفحه همانند عکس زیر نمایش داده میشود.
5 - اکنون، مسیر DocumentRoot آپاچی روی دایرکتوری /var/www/html تنظیم شده است، که به صورت پیش فرض خالی هست و هیچ فایل index در آن ارائه نشده است. اگر شما میخواهید لیست یک دایرکتوری از مسیر DocumentRoot تان را مشاهده کنید، فایل تنظیمات آپاچی "welcom.conf" را باز کنید و در قسمت "<LocationMatch>" کاراکتر منهای '-' کنار عبارت Index را به بعلاوه '+' تغییر دهید، برای مثال همانند شکل زیر عمل کنید.
کد PHP:
# nano /etc/httpd/conf.d/welcome.conf
6 - بعد از ذخیره تغییرات فایل را ببندید و سرویس Apache را برای انعکاس تغییرات جدید restart کرده، سپس صفحه مرورگر خود را برای مشاهده تغییرات reload کنید.
کد PHP:
# systemctl restart httpd
مرحله دوم : نصب PHP5 برای Apache
7 - قبل از نصب زبان برنامه نویسی PHP5 برای Apache، با استفاده از دستور زیر، لیستی از تمامی ماژول های PHP را به دست آورید.
کد PHP:
# yum search php
8 - بسته به نوع برنامه های که میخواهید استفاده کنید، ماژول های مورد نیاز PHP را از لیست بالا را نصب کرده، اما برای پشتیبانی MariaDB در PHP و PhpMyAdmin احتیاج هست که شما ماژول های زیر را نصب کنید.
کد PHP:
# yum install php php-mysql php-pdo php-gd php-mbstring
9 - برای گرفتن لیست کامل اطلاعات درباره PHP از طریق مرورگرتان، ابتدا یک فایل info.php در مسیر Document Root آپاچی با استفاده از دستور زیر از طریق یوزر root ایجاد کرده، سپس سرویس httpd را ریستارت کرده و در مرورگرتان آدرس فایل info.php را به صورت مستقیم وارد کنید. (http://server-ip/info.php)
کد PHP:
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
10 - اگر شما یک خطایی مربوط به Date و Timezone در PHP دریافت کردید، فایل تنظیمات php.ini را باز کرده، خط date.timezone را جستجو و از حالت کامنت خارج کنید، سپس موقعیت زمانی خودتان را اضافه کنید و بعد از ذخیره تغییرات و خارج شدن از فایل سرویس Apache را restart کنید.
کد PHP:
# nano /etc/php.ini
کد PHP:
date.timezone = Asia/Tehran
مرحله سوم : نصب و تنظیمات دیتابیس MariaDB
11 - لینوکس Red Hat Enterprise/CentOS 7.0 برای مدیریت دیتابیس سیستم از MySQL به MariaDB سوئیچ کرده است. برای نصب دیتابیس MariaDB از دستور زیر استفاده کنید.
کد PHP:
# yum install mariadb-server mariadb
12 - بعد از نصب پکیج MariaDB، سرویس دیتابیس را start کنید و برای امن کردن دیتابیس از اسکریپت mysql_secure_installation (تنظیم پسورد root، غیرفعال کردن لاگین root از به صورت remote، حذف کردن دیتابیس test و حذف کردن یوزرهای ناشناس) استفاده کنید.
کد PHP:
# systemctl start mariadb
# mysql_secure_installation
13 - برای تست عملکرد دیتابیس توسط یوزر root به MariaDB لاگین کنید و با استفاده از دستور quit خارج شوید. (همانند توضیحات زیر)
کد PHP:
mysql -u root -p
MariaDB > SHOW VARIABLES;
MariaDB > quit
مرحله چهارم : نصب PhpMyAdmin
14 - به صورت پیش فرض ریپازیتوری های رسمی RedHat 7.0 یا CentOS 7.0 هیچ پکیجی برای اینترفیس وب PhpMyAdmin ارائه نداده است. اگر شما برای مدیریت دیتابیس تان در کامند لاین MySQL راحت نیستید، میتوانید پکیج PhpMyAdmin را با استفاده از فعال کردن ریپازیتوری های epel یا remi در CentOS 7.0 نصب کنید. برای این کار از دستورات زیر استفاده کنید.
کد PHP:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
کد PHP:
# yum install phpmyadmin
15 - سپس فایل phpmyadmin.conf را برای دسترسی دادن به هاست های راه دور ویرایش میکنیم، conf.d در دایرکتوری آپاچی قرار دارد.
کد PHP:
# nano /etc/httpd/conf.d/phpmyadmin.conf
در نهایت برای اعمال تغییرات سرویس آپاچی را restart میکنیم.
کد PHP:
-------------- On RHEL/CentOS 7 and Fedora 22-24 --------------
# systemctl restart httpd
-------------- On RHEL/CentOS 6 and Fedora 20-21 --------------
# service httpd restart
16 - برای اینکه بتوانید با استفاده از متد cookie authentication (احراز هویت کوکی) به اینترفیس وب PhpMyAdmin لاگین کنید، یکblowfish string همانند تصویر زیر و با استفاده از ایجاد یک secret string در فایل کانفیگ phpmyadmin (فایل config.inc.php) اضافه کنید و سپس سرویس وب apache را restart کنید و در مرورگر خود آدرس http://server=ip/phpmyadmin را وارد نمایید.
کد PHP:
# nano /etc/httpd/conf.d/phpmyadmin.conf
# systemctl restart httpd
همچنین توصیه میشود مقالات زیر را هم مطالعه بفرمایید.
آموزش نصب PhpMyAdmin در لینوکس (CentOS/RedHat 6 - 7 و Fedora 20 - 24)
آموزش Secure کردن PhpMyAdmin
مرحله پنجم : فعال کردن LAMP در Boot سیستم
17 - اگر شما نیاز دارید که سرویس Apache و MariaDB به صورت اتوماتیک بعد از reboot کردن سیستم start شود دستورات زیر را برای فعال کردن آنها در سرتاسر سیستم وارد کنید.
کد PHP:
# systemctl enable mariadb
# systemctl enable httpd
این همه اون چیزی هست که برای نصب ابتدایی LAMP (لینوکس، آپاچی، مای اسکیول، پی اچ پی) در RedHat Enterprise 7.0 یا CentOS 7.0 مورد نیاز است. در مقاله بعدی از سری مقالات مربوط به LAMP Stack در CentOS/RHEL 7.0 میخواهیم نحوه ایجاد Virtual Hosts، تولید کردن SSL Certificates و Key ها و پشتیبانی SSL برای Apache HTTP Server را توضیح دهیم.