امروز با آموزش نصب LAMP در سنت او اس ۷ (centos 7) در خدمت شما عزیزان هستیم. LAMP اختصاری از تعدادی کلمه معنادار هست که شاید بد نباشه همین ابتدا معنای آن ها را عنوان کنیم:
L: اختصار کلمه Linux می باشد.
A: اشاره به وب سرویس Apache دارد.
M: این حرف اشاره به MySQL یا نسخه بهینه شده آن یعنی MariaDB دارد.
P: این حرف نیز اشاره به زبان PHP دارد که معمولا زبان های Python و Perl را نیز شامل میشود.
معمولا در سروری که میخواهید خدمات میزبانی وب و یا کاربردهای مشابه آن را ارائه کنید میبایست این سرویس ها را کنار یکدیگر نصب کنید. البته اجباری برای این کار نیست و تقریبا میتوان گفت نصب بسته های اشاره شده امروزه تبدیل به یک سنت شده است. در ادامه میخواهیم مراحل نصب هر یک از بسته های گفته شده را خدمت شما آموزش دهیم.
نکته: برای اجرای دستورات حتما از کاربر root استفاده کنید و در صورتی که کاربر sudoers در سیستم تعریف شده است و با آن میخواهید دستورات را به اجرا در بیاورید ابتدای هر دستور از عبارت sudo استفاده کنید.
افزودن مخازن epel
همانطور که میدانید لینوکس دارای مخازن متعددیست که با توجه به استفاده ی شما میتوان هر یک را فعال کرد و از بسته های موجود در آن استفاده کرد. ما به شما عزیزان برای استفاده از بسته های به روز در سنت او اس مخازن epel را پیشنهاد میکنیم. چرا که مخازن پیش فرض در سنت او اس معمولا دارای بسته های به روزی نیستند.
جهت افزودن این مخازن ابتدا میباید پکیج مورد نظر را از وب سایت رسمی فدورا که ارائه دهنده این مخازن میباشد به صورت زیر دانلود کنید:
1 |
# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
بعد از دانلود، بسته مورد نظر را به صورت زیر نصب کنید:
1 |
# rpm -ivh epel-release-latest-7.noarch.rpm |
به روزرسانی سیستم
ابتدا مثل همیشه توصیه ما به شما این است که مخازن سیستم خود را به روز کنید. این کار به این معنیست که سیستم شما به مخازن اصلی توزیع مورد نظر(منظور سنت او اس میباشد) متصل شده و از آخرین به روزرسانی های بسته های موجود در مخازن سیستم را مطلع میکند و در ادامه از شما میخواهد که بسته های موجود در سیستم را به روز کنید که در صورت تایید این کار اتفاق می افتد. ما برای تایید خودکار این امر از سوئیچ y- استفاده میکنیم:
1 |
# yum update -y |
نصب Apache
این سرویس در سنت او اس تحت عنوان httpd شناخته میشود. حال میبایست وب سرویس قدرتمند و معتبر Apache را نصب کنید. این کار بسیار ساده بوده و با دستور زیر انجام خواهد شد:
1 |
# yum install httpd –y |
حال صحت نصب آپاچی را بررسی کنید:
1 |
# apachectl configtest |
در صورتی که خروجی زیر را دریافت کنید باید نام هاست یا IP خود را به آپاچی معرفی کنید:
1 2 |
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message Syntax OK |
با توجه به خروجی دریافت شده به مسیر زیر بروید:
1 |
# vim /etc/httpd/conf/httpd.conf |
و در انتهای فایل عبارت زیر را وارد کنید: (نام هاست یا IP سرور خود را وارد کنید)
1 |
ServerName Server_Doamin_or_IP_Address |
سپس مجددا دستور تست کانفیگ آپاچی را وارد کنید:
1 2 |
# apachectl configtest Syntax OK |
همانطور که مشاهده میکنید مشکل برطرف شده است.
در مرحله بعد سرویس آپاچی را ری استارت کرده و جهت اطمینان از اجرا شدن بدون مشکل آن وضعیت سرویس را بررسی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# systemctl restart httpd # systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2018-06-25 22:40:28 EDT; 6s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1772 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1772 /usr/sbin/httpd -DFOREGROUND ├─1773 /usr/sbin/httpd -DFOREGROUND ├─1774 /usr/sbin/httpd -DFOREGROUND ├─1775 /usr/sbin/httpd -DFOREGROUND ├─1776 /usr/sbin/httpd -DFOREGROUND └─1777 /usr/sbin/httpd -DFOREGROUND Jun 25 22:40:28 centos1 systemd[1]: Starting The Apache HTTP Server... Jun 25 22:40:28 centos1 systemd[1]: Started The Apache HTTP Server. |
در صورت دریافت خروجی مشابه بالا مشکلی در اجرای آپاچی وجود ندارد.
حال با توجه به اینکه احتمالا اگر آدرس IP سرور خود را در مرورگر وارد کنید صفحه پیش فرض آپاچی را مشاهده نخواهید کرد باید از دستورات زیر جهت دادن مجوزهای لارم به فایروال جهت باز کردن پورت های مربوط به پروتکل HTTP استفاده نمائید:
1 2 |
# firewall-cmd --permanent --add-service=http success |
نکته: اگر نمیخواهید این عمل به صورت دائم روی سرور شما اعمال شود سوئیچ permanent– را از دستور بالا حذف نمائید.
بعد از آن لازم است سرویس فایروال را ری استارت کنید:
1 |
# systemctl restart firewalld |
حال با وارد کردن آدرس IP سرور خود در مرورگر صفحه پیش فرض آپاچی به صورت زیر نمایش داده میشود:
نکته: ما در آموزش های قبل راه های پیدا کردن آدرس IP سرور خود را به طرق مختلف آموزش داده ایم.
با توجه به اینکه مسیر ریشه برای میزبانی وب سایت آدرس var/www/html/ است و فایل index.php در آن وجود ندارد در صورتی که میخواهید آن را فعال کنید به مسیر زیر بروید:
1 |
# vim /etc/httpd/conf.d/welcome.conf |
و تغییرات لازم را به این صورت اعمال کنید:
1 |
Options -Indexes Change to Options +Indexes |
حال سرویس آپاچی را ری استارت کرده و برای اطمینان از اجرا شدن بی نقص آن وضعیت سرویس را بررسی کنید:
1 2 |
# systemctl restart httpd # systemctl status httpd |
حال در صورت بارگزاری مجدد مرورگر خود صفحه آپاچی به صورت زیر تغییر خواهد کرد:
نصب PHP
حال PHP و بسته های مورد نیاز و مربوط به آن را به صورت زیر نصب نمائید:
1 |
# yum install php php-mysql php-pdo php-gd php-mbstring -y |
شما میتوانید برای بررسی بسته های بیشتر به صورت زیر خروجی را در چند صفحه دریافت کنید:
1 |
# yum search php- | less |
در این صورت لیستی از بسته های مرتبط برای شما به نمایش در می آید:
1 2 3 4 5 6 7 8 9 10 11 |
php-EasyRdf-doc.noarch : Documentation for php-EasyRdf php-bartlett-php-compatinfo-db.noarch : Reference Database to be used with : php-compatinfo library php-di-symfony2-bridge.noarch : PHP-DI integration with Symfony 2 php-fedora-autoloader-devel.noarch : php-fedora-autoloader devel php-guzzlehttp-ringphp-tests.noarch : Tests for php-guzzlehttp-ringphp php-libvirt-doc.noarch : Documentation for php-libvirt php-ocramius-code-generator-utils.noarch : A set of code generator utilities : built on top of PHP-Parsers php-pear-Auth-radius.noarch : RADIUS support for php-pear-Auth php-pear-Auth-samba.noarch : Samba support for php-pear-Auth |
و شما در صورت نیاز میتوانید اطلاعات بیشتری را پیرامون بسته مورد نیاز خود کسب کنید: (به طور مثال 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 Loading mirror speeds from cached hostfile * base: mirrors.coreix.net * epel: epel.scopesky.iq * extras: mirrors.coreix.net * updates: mirrors.coreix.net Installed Packages Name : php-cli Arch : x86_64 Version : 5.4.16 Release : 45.el7 Size : 8.8 M Repo : installed From repo : base Summary : Command-line interface for PHP URL : http://www.php.net/ License : PHP and Zend and BSD 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 -y |
بعد از نصب PHP و برای اطمینان از صحت نصب انجام شده بهتر است در مسیر زیر فایل info.php را ایجاد کنید:
1 |
# vim /var/www/html/info.php |
و محتویات زیر را در آن بنویسید:
1 2 3 |
<?php phpinfo(); ?> |
سپس سرویس آپاچی را ری استارت کرده و وضعیت آن را بررسی کنید:
1 2 |
# systemctl restart httpd # systemctl status httpd |
حال فایل ایجاد شده را در مرورگر خود به صورت زیر فرا بخوانید:
1 |
http://ip_address/info.php |
اگر در صفحه باز شده در بخش اطلاعات زمانی خطای مربوط به timezone دریافت کردید باید فایل php.ini را ویرایش کنید.
یکی از روش هایی که میتوان بوسیله آن فهمید مقدار مناسب برای این گزینه چیست استفاده از timezone خود سرور شماست. به صورت زیر مقدار آن را بدست بیاورید:
1 2 |
# timedatectl | grep "Time zone" Time zone: America/New_York (EDT, -0400) |
حال به مسیر زیر بروید:
1 |
# vim /etc/php.ini |
در محتوای آن به دنبال عبارت date.timezone بگردید و آن را از حالت کامنت خارج کنید(عبارت ;; را از جلوی آن حذف کنید) و مقدار مناسبی را به آن بدهید:
1 |
date.timezone = America/New_York |
حال با ری استارت کردن سرویس آپاچی دیگر خطایی در این زمینه دریافت نخواهید کرد و اطلاعات time zone شما در آن بخش به نمایش درخواهد آمد.
نکته: حتما بعد از اطمینان پیدا کردن از صحت عملکرد php خود فایل info.php را از روی سرور حذف کنید.
نصب MariaDB
بعد از نصب وب سرور مورد نظر حال باید برای نصب یک دیتابیس اقدام کنید. همانطور که گفته شد استاندارد LAMP نصب دیتابیس MAriaDB (نسخه جدیدتر و بهینه تر MySQL) به صورت رایج بوده و ما در ادامه قصد داریم تا روش نصب آن را بیان کنیم:
1 |
# yum install mariadb-server mariadb -y |
بعد از نصب دیتابیس و برای اینکه بتوانید کانفیگ امن آن را به طور خودکار انجام دهید میبایست ابتدا سرویس mariadb را فعال نمائید:
1 |
# systemctl start mariadb |
در ادامه و به منظور اطمینان از صحت نصب آن وضعیت سرویس را بررسی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# systemctl status mariadb ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2018-06-25 23:49:52 EDT; 6s ago Process: 2566 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 2487 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 2565 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─2565 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └─2727 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/r... Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: MySQL manual for more instructions. Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: Please report any problems at http://mariadb.org/jira Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: The latest information about MariaDB is available at http://mariadb.org/. Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: You can find additional information about the MySQL part at: Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: http://dev.mysql.com Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: Consider joining MariaDB's strong and vibrant community: Jun 25 23:49:50 centos1 mariadb-prepare-db-dir[2487]: https://mariadb.org/get-involved/ Jun 25 23:49:51 centos1 mysqld_safe[2565]: 180625 23:49:51 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Jun 25 23:49:51 centos1 mysqld_safe[2565]: 180625 23:49:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Jun 25 23:49:52 centos1 systemd[1]: Started MariaDB database server. |
در صورت دریافت خروجی مشابه بالا نصب پایگاه داده شما با موفقیت به اتمام رسیده است.
نصب پایگاه داده به صورت پیش فرض میتواند دارای خطرات امنیتی باشد. برای از بین بردن این تهدیدات لازم است دستور زیر را وارد کرده و تنظیمات امنیتی را روی آن اعمال کنید:
1 |
# mysql_secure_installation |
بعد از اجرا کردن آن سیستم از شما در هر مرحله سوالاتی را میپرسد. در اولین پرسش از شما میخواهد رمز عبور پایگاه داده خود را وارد کنید. چون رمز عبوری تعیین نشده است کافیست فقط کلید اینتر را بفشارید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. 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 authorisation. Set root password? [Y/n] New password: |
در این مرحله از شما رمز عبور میخواهد. بعد از وارد کردن رمز عبور به تعداد دو بار سایر پرسش های را با حرف Y جهت تایید پاسخ دهید تا کانفیگ MariaDB به صورت امن پایان یابد.
در انتها با دستور زیر سرویس های httpd و Mariadb را هنگام بوت مجدد سیستم فعال کنید:
1 2 |
# systemctl enable httpd # systemctl enable mariadb |
نصب PhpMyadmin
PhpMyadmin یک ابزار بسیار مناسب جهت مدیریت پایگاه داده شماست که کارایی های فراوانی دارد و معمولا همراه با lamp روی سرور نصب میگردد. از آنجایی که ممکن است شما بخواهید آن را نیز روی سرور خود نصب نمائید ما تصمیم گرفتیم شیوه نصب آن را در این آموزش بیاوریم.
برای نصب PhpMyadmin کافیست دستور زیر را وارد کنید:
1 |
# yum install phpmyadmin -y |
بعد از نصب آن و به حهت صدور مجوز برای برقراری ارتباط به مسیر زیر بروید:
1 |
# vim /etc/httpd/conf.d/phpMyAdmin.conf |
سپس عبارت زیر را در آن بیابید:
1 2 3 4 5 6 7 |
<IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> |
و مقدار زیر را با آن جایگزین کنید:
1 2 3 4 5 6 7 8 |
<IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> # Require ip 127.0.0.1 # Require ip ::1 Require all granted </RequireAny> </IfModule> |
بعد از اعمال تغییرات نوبت به تغییر پارامتر blowfish میرسد. ابتدا باید از طریق وب سایت ارائه دهنده blowfish مقدار آن را دریافت کنید و سپس به آدرس زیر بروید:
1 |
# vim /etc/phpMyAdmin/config.inc.php |
مقدار هش دریافت شده را فضای blowfish_secret جایگزاری کنید و سپس تغییرات را ذخیره کرده و سرویس آپاچی را ری استارت و در انتها وضعیت آن را بررسی کنید:
1 2 |
# systemctl restart httpd # systemctl status httpd |
حال کافیست به صورت زیر و در مرورگر خود PhpMyadmin را فراخوانی کنید:
1 |
http://ip_address/phpmyadmin |
در انتها و با وارد کردن نام کاربری و رمز عبور میتوانید به PhpMyadmin لاگین کنید: