با توجه به اینکه مطمئن هستیم اکثر شما در مورد LAMP می دانید، از معرفی آن صرف نظر می کنیم. در این آموزش به نحوه نصب و کانفیگ سرور معروف LAMP (شامل Linux Apache، MariaDB، PHP، PhpMyAdmin) روی آخرین نسخه منتشر شده Red Hat Enterprise Linux 7.0 و CentOS 7.0 با اشاره به اینکه هر دو توزیع از httpd daemon به Apache HTTP 2.4 آپگرید شده است، می پردازیم
ملزومات
بسته به توزیع مورد استفاده، RHEL یا CentOS 7.0 از لینک های زیر برای نصب برروی یک سیستم minimal استفاده کنید و یک IP Address استاتیک برای کانفیگ شبکه اختصاص دهید.
مرحله اول: سرور آپاچی را با کانفیگ اولیه نصب کنید
1. بعد از انجام نصب minimal سیستم ، شبکه سرور خود را با یک IP Address استاتیک کانفیگ کنید. (تعریف ipstatic روی RHEL/CentOS 7.0)و پکیج باینری سرویس httpd برای Apache 2.4 را از ریپازیتوری رسمی وبا استفاده ازدستور زیر نصب کنید.
2. بعد از اتمام نصب، از دستورات زیر برای مدیریت سرویس Apache استفاده کنید، از آن پس هر دوی RHEL و CentOS 7.0 اسکریپت های init خود را از SysV به systemd ارتقا می دهند، شما می توانید همچنین از SysV و اسکریپت های آپاچی در زمان یکسان برای مدیریت سرویس استفاده کنید.
3.در مرحله بعدی، سرویس آپاچی را با استفاده از اسکریپت init آغاز کنید و دستورات فایروال RHEL/CentOS 7.0 را با استفاده از firewall-cmd باز کنید، که دستور پیش فرضی برای مدیریت iptables از طریق سرویس firewalld می باشد.
نکته : توجه داشته باشید که استفاده از این دستور، تاثیر خود را بعد از یک reboot سیستم یا restart سرویس فایروال از دست خواهد داد، چرا که دستورات on-fly را باز می کند، که به طور ثابت اجرا نمی شود. برای اعمال ثبات قوانین iptable بر روی فایروال، از permanent- استفاده کنید و برای گرفتن نتیجه، فایروال را restart کنید.
دیگر گزینه های مهم فایروال در زیر ارائه شده است:
4. به منظور بررسی عملکرد آپاچی، یک مرورگر ریموت باز کنید و آدرس IP سرور خود را با استفاده از پروتکل HTTP در قسمت URL تایپ کنید، یک صفحه پیش فرض باید مانند تصویر زیر نمایان شود.
5. در حال حاضر، مسیر DocumentRoot آپاچی روی دایرکتوری /var/www/html تنظیم شده است که به طور پیش فرض هیچ فایل ایندکسی(index) را ارائه نمی کند. اگر می خواهید یک لیست دایرکتوری از مسیر DocumentRoot خود ببینید، فایل کانفیگ welcome آپاچی را باز کنید و عبارت indexes را از – تا + در قسمت <LocationMach> تنظیم کنید، به عنوان نمونه از اسکرین شات زیر استفاده نمائید.
6. فایل را ببندید، سرویس آپاچی را restart کنید تا تغییرات اعمال شوند و صفحه مرورگر خود را برای دیدن نتیجه پایانی، مجددا بارگذاری کنید.
مرحله 2: نصب پشتیبان PHP5 برای Apache
7. قبل از نصب پشتیبان زبان داینامیک PHP5 (یا PHP5 dynamic language) برای Apache، یک لیست کامل از ماژول ها و extensionهای دردسترس PHP با استفاده از دستور زیر، تهیه کنید.
8. بسته به نوع اپلیکیشن هایی که می خواهید استفاده کنید، ماژول های مورد نیاز PHP را از لیست بالا نصب کنید، اما برای پشتیبانی MariaDB در PHP و PhpMyAdmin لازم است تا ماژول های زیر را نصب کنید.
9. برای دریافت لیست اطلاعات کامل درمورد PHP از مرورگر خود، یک فایل info.php بر روی Document Root آپاچی با استفاده از دستور زیر تحت روت بسازید و سرویس httpd را restart کنید.
سپس مرورگر خود را با آدرس زیر باز کنید.
10. اگر با error بر روی PHP Date و Timezone مواجه شدید، فایل کانفیگ php.ini را باز کنید، عبارت date.timezone را جستجو و uncomment کنید، مکان فیزیکی خود را اضافه و سرویس Apache را ری استارت کنید.
خط date.timezone را با استفاده از لیست Timezoneهای پشتیبانی شده PHP تعیین و تغییر دهید.
مرحله 3: دیتابیس MariaDB را نصب و کانفیگ کنید
11. Red Hat Enterprise Linux/CentOS 7.0 برای سیستم مدیریت دیتابیس پیش فرض، از MySQL به MariaDB سوئیچ کرد. برای نصب دیتابیس MariaDB از دستور زیر استفاده کنید.
12. بعد از اینکه پکیج MariaDB نصب شد، سرویس دیتابیس را استارت کنید و از اسکریپت mysql_secure_installation برای دیتابیس امن (پسورد root را تنظیم کنید، لاگین از راه دور را از root غیرفعال کنید، دیتابیس آزمایشی و کاربران ناشناس را حذف کنید) استفاده کنید.
13. برای تست قابلیت دیتابیس، با استفاده از اکانت root به MariaDB لاگین کنید و با استفاده از عبارت quit خارج شوید.
مرحله 4: PhpMyAdmin را نصب کنید
14. به طور پیش فرض، منابع official RHEL 7.0 یا CentOS 7.0 هیچ پکیج باینری را برای اینترفیس کاربری وب PhpMyAdmin فراهم نمی کند. اگر شما برای استفاده از خط فرمان MySQL برای مدیریت دیتابیس خود راحت نیستید، می توانید پکیج PhpMyAdmin را با فعال سازی ریپازیتوری CentOS 7.0 rpmforge با استفاده از دستور زیر، نصب کنید.
پس از فعال سازی منبع rpmforge پکیج PhpMyAdmin را نصب کنید.
15. سپس PhpMyAdmin را برای برقراری ارتباطات remote hosts کانفیگ کنید که از طریق ویرایش فایل phpmyadmin.conf، واقع در دایرکتوری conf.d آپاچی و کامنت کردن خطوط زیر، انجام شود.
از یک # استفاده کنید و این خطوط را کامنت کنید.
16. برای لاگین به اینترفیس کاربری وب PhpMyAdmin با استفاده از روش احراز هویت کوکی، یک استرینگ blowfish مشابه آنچه در اسکرین شات زیر آمده است، با استفاده از ایجاد یک استرینگ مخفی به فایل config.inc.php در phpmyadmin اضافه کنید، سرویس وب آپاچی را restart کنید.
سپس مرورگر خود را با آدرس زیر باز کنید.
مرحله 5: سیستم گسترده LAMP را فعال کنید
17. اگر به سرویس های MariaDB و آپاچی برای آغاز اتوماتیک بعد از ریبوت نیاز دارید، دستورات زیر را برای فعال کردن system-wide آنها، به جریان درآورید.
ملزومات
بسته به توزیع مورد استفاده، RHEL یا CentOS 7.0 از لینک های زیر برای نصب برروی یک سیستم minimal استفاده کنید و یک IP Address استاتیک برای کانفیگ شبکه اختصاص دهید.
مرحله اول: سرور آپاچی را با کانفیگ اولیه نصب کنید
1. بعد از انجام نصب minimal سیستم ، شبکه سرور خود را با یک IP Address استاتیک کانفیگ کنید. (تعریف ipstatic روی RHEL/CentOS 7.0)و پکیج باینری سرویس httpd برای Apache 2.4 را از ریپازیتوری رسمی وبا استفاده ازدستور زیر نصب کنید.
کد:
# yum install httpd
2. بعد از اتمام نصب، از دستورات زیر برای مدیریت سرویس Apache استفاده کنید، از آن پس هر دوی RHEL و CentOS 7.0 اسکریپت های init خود را از SysV به systemd ارتقا می دهند، شما می توانید همچنین از SysV و اسکریپت های آپاچی در زمان یکسان برای مدیریت سرویس استفاده کنید.
کد:
# systemctl status|start|stop|restart|reload httpd OR # service httpd status|start|stop|restart|reload OR # apachectl configtest| graceful
3.در مرحله بعدی، سرویس آپاچی را با استفاده از اسکریپت init آغاز کنید و دستورات فایروال RHEL/CentOS 7.0 را با استفاده از firewall-cmd باز کنید، که دستور پیش فرضی برای مدیریت iptables از طریق سرویس firewalld می باشد.
کد:
# firewall-cmd --add-service=http
کد:
# firewall-cmd --permanent --add-service=http # systemctl restart firewalld
دیگر گزینه های مهم فایروال در زیر ارائه شده است:
کد:
# 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
کد PHP:
http://server_ip/
5. در حال حاضر، مسیر DocumentRoot آپاچی روی دایرکتوری /var/www/html تنظیم شده است که به طور پیش فرض هیچ فایل ایندکسی(index) را ارائه نمی کند. اگر می خواهید یک لیست دایرکتوری از مسیر DocumentRoot خود ببینید، فایل کانفیگ welcome آپاچی را باز کنید و عبارت indexes را از – تا + در قسمت <LocationMach> تنظیم کنید، به عنوان نمونه از اسکرین شات زیر استفاده نمائید.
کد:
# nano /etc/httpd/conf.d/welcome.conf
6. فایل را ببندید، سرویس آپاچی را restart کنید تا تغییرات اعمال شوند و صفحه مرورگر خود را برای دیدن نتیجه پایانی، مجددا بارگذاری کنید.
کد:
# systemctl restart httpd
مرحله 2: نصب پشتیبان PHP5 برای Apache
7. قبل از نصب پشتیبان زبان داینامیک PHP5 (یا PHP5 dynamic language) برای Apache، یک لیست کامل از ماژول ها و extensionهای دردسترس PHP با استفاده از دستور زیر، تهیه کنید.
کد:
# yum search php
8. بسته به نوع اپلیکیشن هایی که می خواهید استفاده کنید، ماژول های مورد نیاز PHP را از لیست بالا نصب کنید، اما برای پشتیبانی MariaDB در PHP و PhpMyAdmin لازم است تا ماژول های زیر را نصب کنید.
کد:
# yum install php php-mysql php-pdo php-gd php-mbstring
9. برای دریافت لیست اطلاعات کامل درمورد PHP از مرورگر خود، یک فایل info.php بر روی Document Root آپاچی با استفاده از دستور زیر تحت روت بسازید و سرویس httpd را restart کنید.
کد:
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php # systemctl restart httpd
کد PHP:
http://server_ip/info.php
10. اگر با error بر روی PHP Date و Timezone مواجه شدید، فایل کانفیگ php.ini را باز کنید، عبارت date.timezone را جستجو و uncomment کنید، مکان فیزیکی خود را اضافه و سرویس Apache را ری استارت کنید.
کد:
# nano /etc/php.ini
کد:
date.timezone = Continent/City
مرحله 3: دیتابیس MariaDB را نصب و کانفیگ کنید
11. Red Hat Enterprise Linux/CentOS 7.0 برای سیستم مدیریت دیتابیس پیش فرض، از MySQL به MariaDB سوئیچ کرد. برای نصب دیتابیس MariaDB از دستور زیر استفاده کنید.
کد:
# yum install mariadb-server mariadb
12. بعد از اینکه پکیج MariaDB نصب شد، سرویس دیتابیس را استارت کنید و از اسکریپت mysql_secure_installation برای دیتابیس امن (پسورد root را تنظیم کنید، لاگین از راه دور را از root غیرفعال کنید، دیتابیس آزمایشی و کاربران ناشناس را حذف کنید) استفاده کنید.
کد:
# systemctl start mariadb # mysql_secure_installation
13. برای تست قابلیت دیتابیس، با استفاده از اکانت root به MariaDB لاگین کنید و با استفاده از عبارت quit خارج شوید.
کد:
mysql -u root -p MariaDB > SHOW VARIABLES; MariaDB > quit
مرحله 4: PhpMyAdmin را نصب کنید
14. به طور پیش فرض، منابع official RHEL 7.0 یا CentOS 7.0 هیچ پکیج باینری را برای اینترفیس کاربری وب PhpMyAdmin فراهم نمی کند. اگر شما برای استفاده از خط فرمان MySQL برای مدیریت دیتابیس خود راحت نیستید، می توانید پکیج PhpMyAdmin را با فعال سازی ریپازیتوری CentOS 7.0 rpmforge با استفاده از دستور زیر، نصب کنید.
کد PHP:
yum install http://pkgs.repoforge.org/rpmforge-r....rf.x86_64.rpm
کد:
# yum install phpmyadmin
15. سپس PhpMyAdmin را برای برقراری ارتباطات remote hosts کانفیگ کنید که از طریق ویرایش فایل phpmyadmin.conf، واقع در دایرکتوری conf.d آپاچی و کامنت کردن خطوط زیر، انجام شود.
کد:
# nano /etc/httpd/conf.d/phpmyadmin.conf
کد:
# Order Deny,Allow # Deny from all # Allow from 127.0.0.1
16. برای لاگین به اینترفیس کاربری وب PhpMyAdmin با استفاده از روش احراز هویت کوکی، یک استرینگ blowfish مشابه آنچه در اسکرین شات زیر آمده است، با استفاده از ایجاد یک استرینگ مخفی به فایل config.inc.php در phpmyadmin اضافه کنید، سرویس وب آپاچی را restart کنید.
کد:
# nano /etc/httpd/conf.d/phpmyadmin.conf # systemctl restart httpd
کد PHP:
http://server_ip/phpmyadmin/
مرحله 5: سیستم گسترده LAMP را فعال کنید
17. اگر به سرویس های MariaDB و آپاچی برای آغاز اتوماتیک بعد از ریبوت نیاز دارید، دستورات زیر را برای فعال کردن system-wide آنها، به جریان درآورید.
کد:
# systemctl enable mariadb # systemctl enable httpd