امروز با آموزش نصب LAMP در سنت او اس ۶ (centos 6) در خدمت شما عزیزان هستیم. LAMP اختصاری از تعدادی کلمه معنادار هست که شاید بد نباشه همین ابتدا معنای آن ها را عنوان کنیم:
- L: اختصار کلمه Linux می باشد.
- A: اشاره به وب سرویس Apache دارد.
- M: این حرف اشاره به MySQL یا نسخه بهینه شده آن یعنی MariaDB دارد.
- P: این حرف نیز اشاره به زبان PHP دارد که معمولا زبان های Python و Perl را نیز شامل میشود.
معمولا در سروری که میخواهید خدمات میزبانی وب و یا کاربردهای مشابه آن را ارائه کنید میبایست این سرویس ها را کنار یکدیگر نصب کنید. البته اجباری برای این کار نیست و تقریبا میتوان گفت نصب بسته های اشاره شده امروزه تبدیل به یک سنت شده است. در ادامه میخواهیم مراحل نصب هر یک از بسته های گفته شده را خدمت شما آموزش دهیم.
نکته: برای اجرای دستورات حتما از کاربر root استفاده کنید و در صورتی که کاربر sudoers در سیستم تعریف شده است و با آن میخواهید دستورات را به اجرا در بیاورید ابتدای هر دستور از عبارت sudo استفاده کنید.
افزودن مخازن epel
همانطور که میدانید لینوکس دارای مخازن متعددیست که با توجه به استفاده ی شما میتوان هر یک را فعال کرد و از بسته های موجود در آن استفاده کرد. ما به شما عزیزان برای استفاده از بسته های به روز در سنت او اس مخازن epel را پیشنهاد میکنیم. چرا که مخازن پیش فرض در سنت او اس معمولا دارای بسته های به روزی نیستند.
جهت افزودن این مخازن ابتدا میباید پکیج مورد نظر را از وب سایت رسمی فدورا که ارائه دهنده این مخازن میباشد به صورت زیر دانلود کنید:
1 2 |
# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # CentOS 32-bit # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # CentOS 64-bit |
بعد از دانلود نسخه ی دلخواه، بسته مورد نظر را به صورت زیر نصب کنید:
1 2 |
# rpm -ivh epel-release-6-8.noarch.rpm # CentOS 32-bit # rpm -ivh epel-release-6-8.noarch.rpm # CentOS 64-bit |
نکته: بسته های دانلود شده مناسب برای CentOS 6.x بوده و برای نسخه های ۷ باید به آموزش مربوطه مراجعه کنید.
به روزرسانی سیستم
ابتدا مثل همیشه توصیه ما به شما این است که مخازن سیستم خود را به روز کنید. این کار به این معنیست که سیستم شما به مخازن اصلی توزیع مورد نظر(منظور سنت او اس میباشد) متصل شده و از آخرین به روزرسانی های بسته های موجود در مخازن سیستم را مطلع میکند و در ادامه از شما میخواهد که بسته های موجود در سیستم را به روز کنید که در صورت تایید این کار اتفاق می افتد. ما برای تایید خودکار این امر از سوئیچ y- استفاده میکنیم:
1 |
# yum update -y |
نصب Apache
این سرویس در سنت او اس تحت عنوان httpd شناخته میشود. حال میبایست وب سرویس قدرتمند و معتبر Apache را نصب کنید. این کار بسیار ساده بوده و با دستور زیر انجام خواهد شد:
1 |
# yum install httpd |
به صورت پیش فرض این سرویس فعال نبوده و میتوانید با دستور زیر آن را فعال کنید:
1 |
# service httpd start |
در ادامه و برای اطمینان حاصل کردن از اینکه نصب سرویس با موفقیت انجام شده است IP سرور خود را در مرورگر وارد کرده تا صفحه ای مشابه صفحه زیر برای شما به نمایش در بیاید:
نکته: ما در آموزش های قبل راه های پیدا کردن آدرس IP سرور خود را به طرق مختلف آموزش داده ایم.
نصب MySQL
بعد از نصب وب سرور مورد نظر حال باید برای نصب یک دیتابیس اقدام کنید. همانطور که گفته شد استاندارد LAMP نصب دیتابیس MySQL به صورت رایج بوده و ما در ادامه قصد داریم تا روش نصب آن را بیان کنیم:
1 |
# yum install mysql-server |
بعد از نصب دیتابیس و برای اینکه بتوانید کانفیگ امن آن را به طور خودکار انجام دهید میبایست ابتدا سرویس mysqld را فعال نمائید:
1 |
# service mysqld start |
دیتابیس شما نصب شده است. منتها در نظر داشته باشید که نصب MySQL به صورت پیش فرض و به تنهایی مخاطراتی را برای شما بوجود می آورد. وجود نام های کاربری و جداول پیش فرض موجود در این دیتابیس بخشی از این خطرهاست. برای رفع این خطر پذیری کافیست دستور زیر را اجرا کنید:
1 |
# mysql_secure_installation |
در گام اول بعلت عدم انتخاب رمز عبوری برای دیتابیس کافیست اینتر کرده و مقدار رمز عبور را خالی بگذارید:
1 2 |
Enter current password for root (enter for none): OK, successfully used password, moving on... |
بعد از این مرحله سیستم از شما میخواد تا رمز عبوری برای دیتابیس خود انتخاب کنید.
در ادامه سیستم از شما میپرسد که آیا میخواهید کاربرهای پیش فرض و بی نام موجود در پایگاه داده را حذف کند؟ ما با وارد کردن حرف Y جهت حذف این نام های کاربری اقدام میکنیم:
1 2 3 4 5 6 7 8 |
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! |
در مرحله بعد سیستم از شما میپرسد که آیا میخواهید دسترسی ریموت به دیتابیس را برای کاربر root ببندد؟ ما با وارد کردن حرف Y اقدام به مسدود سازی اتصال به دیتابیس از راه دور مینمائیم:
1 2 3 4 5 |
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! |
در مرحله بعد با وارد کردن حرف Y دیتابیس test را نیز حذف میکنیم:
1 2 3 4 5 6 7 8 9 |
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! |
در انتها سیستم برای به روزرسانی تغییرات انجام شده درخواست ری لود کردن دسترسی های تخصیص یافته را میدهد که با وارد کردن حرف Y این کار انجام میشود:
1 2 3 4 5 6 7 8 9 10 11 12 |
Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! |
حالا شما با خیال راحت تری نصب دیتابیس MySQL را به اتمام رسانده اید.
نصب PHP
در انتها شما میبایست اقدام به نصب بسته های مورد نیاز مروبط به php کنید. بسته هایی که دارای اهمیت بیشتری است را میتوانید به صورت زیر روی سیستم خود نصب کنید:
1 |
# yum install php php-pear php-mysql |
همچنین شما میتوانید به صورت زیر لیستی از بسته های دیگر مرتبط با php را به صورت زیر مشاهده کنید و در صورت نیاز اقدام به نصب هر یک از آن ها نمائید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# yum search php- | less Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile epel/metalink | 32 kB 00:00 * base: mirror.ratiokontakt.de * epel: mirror.wiuwiu.de * extras: ftp.rz.uni-frankfurt.de * updates: mirror.wiuwiu.de base | 3.7 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 ================================================================= N/S Matched: php- ================================================================== php-EasyRdf-doc.noarch : Documentation for php-EasyRdf php-cloudfiles-devel-doc.noarch : Development documentation for php-cloudfiles php-fedora-autoloader-devel.noarch : php-fedora-autoloader devel php-pear-Auth-radius.noarch : RADIUS support for php-pear-Auth php-pear-Auth-samba.noarch : Samba support for php-pear-Auth php-pecl-judy-devel.x86_64 : php-pecl-judy developer files (header) php-pecl-propro-devel.x86_64 : php-pecl-propro developer files (header) php-pecl-raphf-devel.x86_64 : php-pecl-raphf developer files (header) php-punic.noarch : PHP-Unicode CLDR php-when-tests.noarch : Test files for php-when php-zetacomponents-console-tools-doc.noarch : Documentation for php-zetacomponents-console-tools php-zetacomponents-graph-doc.noarch : Documentation for php-zetacomponents-graph perl-PHP-Serialization.noarch : Converts between PHP's serialize() output and the equivalent Perl structure php-Analog.noarch : PHP micro logging package php-Assetic.noarch : Asset Management for PHP php-EasyRdf.noarch : A PHP library designed to make it easy to consume and produce RDF php-Faker.noarch : A PHP library that generates fake data php-IDNA_Convert.noarch : Provides conversion of internationalized strings to UTF8 php-JMSParser.noarch : Library for writing recursive-descent parsers php-JsonSchema.noarch : PHP implementation of JSON schema ... |
در صورتی که بخواهید به توضیحات بیشتری از هر یک از بسته های مورد نظر دست پیدا کنید میتوانید از قاعده زیر استفاده کنید:
1 |
# yum info <package_name> |
بعنوان مثال برای دستیابی به توضیحات بیشتر بسته php-cli میتوانید به صورت زیر عمل کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# yum info php-cli Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: centosmirror.netcup.net * epel: mirror.wiuwiu.de * extras: ftp.rz.uni-frankfurt.de * updates: mirror.wiuwiu.de Installed Packages Name : php-cli Arch : x86_64 Version : 5.3.3 Release : 49.el6 Size : 6.2 M Repo : installed From repo : base Summary : Command-line interface for PHP URL : http://www.php.net/ License : PHP Description : The php-cli package contains the command-line interface : executing PHP scripts, /usr/bin/php, and the CGI interface. |
سپس در صورت تمایل میتوانید آن را به صورت زیر نصب کنید:
1 |
# yum install php-cli |
یکی از کارهایی که انجام دادن آن لازم به نظر میرسد فعال کردن خودکار سرویس ها در استارت آپ ماشین و یا هنگام ریبوت است. ما به صورت زیر هر دو سرویس httpd و mysqld را فعال میکنیم:
1 2 |
# chkconfig httpd on # chkconfig mysqld on |
شما میتوانید با ایجاد یک فایل با نام info.php از صحت نصب php روی سرور خود مطمان شوید. برای این کار با ویرایشگر متن به صورت زیر فایل مورد نظر را ایجاد نمائید:
1 |
# vim /var/www/html/info.php |
سپس کد زیر را درون آن تایپ کنید:
1 2 3 |
<?php phpinfo(); ?> |
با وارد کردن عبارت زیر در مرورگر خود میتوانید کانفیگ مربوط به PHP را در سرور خود مشاهده کرده و از نصب صحیح آن اطمینان حاصل کنید:
1 |
http://your_domain_or_ip/info.php |
در صورت انجام صحیح مراجل فوق خروجی مشابه زیر را دریافت خواهید کرد:
نکته: حتما به خاطر داشته باشید که فایل info.php را حذف کنید. چرا که وجود این فایل میتواند برای هکرها حاوی اطلاعات جالبی باشد.
نکته: اگر مراحل نصب، صحیح انجام شده باشد و شما نتوانستید بعد از نصب آپاچی و همچنین ایجاد فایل info.php تصاویری که مشابه آن را برای شما قرار دادیم در مرورگر خود ببینید مشکل از فایروال ماشین شماست. شما باید با سیستم خود مجوز عبور ترافیک های مربوط به پروتکل HTTP و پورت ۸۰ را به صورت زیر بدهید:
ابتدا با یک ویرایشگر فایل به مسیر زیر بروید:
1 |
# vim /etc/sysconfig/iptables |
سپس عبارت زیر را در جای مناسب مطابق شکل زیر وارد کنید:
1 |
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT |
در نهایت سرویس iptables را ری استارت کنید:
1 2 3 4 5 |
# service iptables restart iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] |
حال شما میتوانید با مراجعه مجدد به مرورگر خود به صفحات مورد نظر دسترسی داشته باشید.