این آموزش نحوه نصب وب‌سرور آپاچی را به همراه php و MySQL را در سرور CentOS 7 به شما نشان می‌دهد. قبل از هر چیز توجه داشته باشید که LAMP مخفف ترکیب لینوکس، آپاچی، مای‌اس‌کیواِل و پی‌اچ‌پی است.

۱) نکات ابتدایی

در این مطلب آموزشی، از عنوان هاست server1.example.com با آی‌پی معادل 192.168.0.100 استفاده شده است. این تنظیمات ممکن است برای شما متفاوت باشند. بنابراین باید آنها را متناسب با پروژه خود تغییر دهید.

در اینجا منبع EPEL را اضافه می‌کنیم تا بتوانیم آخرین نسخه phpMyAdmin را در اختیار داشته باشیم.


rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

yum -y install epel-release

برای ویرایش فایل‌ها در این shell، ویرایشگر nano نصب خواهیم کرد. اگر کار با vi را ترجیح می‌دهید، از این مرحله عبور کنید.


yum -y install nano

۲) نصب MySQL  یا  MariaDB

MariaDB در واقع، نسخه‌ای از MySQL است که توسط مایکل وایدنیس توسعه داده شده است. مایکل وایدنیس همان کسی است که یکی از پایه‌گذران اصلی MySQL بوده است. برای نصب MariaDB از طریق yum، فرمان زیر را اجرا نمایید.

yum -y install mariadb-server mariadb

در اینجا یک لینک در هنگام شروع به کار سیستم برای MySQL ایجاد می‌کنیم. در نتیجه، MySQL هر زمان که سیستم راه‌اندازی می‌شود، به صورت اتوماتیک اجرا می‌شود.


systemctl start mariadb.service

systemctl enable mariadb.service

تنظیم کلمه عبور برای حساب کاربری روت MySQL


mysql_secure_installation

خروجی


[root@server1 ~]# mysql_secure_installation

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): <--ENTER

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: <--yourmariadbpassword

Re-enter new password: <--yourmariadbpassword

Password updated successfully!

Reloading privilege tables..

... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB 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] <--ENTER

... Success!

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] <--ENTER

... Success!

By default, MariaDB 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] <--ENTER

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] <--ENTER

... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

[root@server1 ~]#

۳) نصب وب‌سرور Apache

CentOS 7 با نسخه 2.4 از وب‌سرور آپاچی همراه است. بنابراین، می‌توانیم آن را مستقیماً به عنوان یک بسته در CentOS 7 نصب کنیم.


yum -y install httpd

در اینجا یک نما از فرآیند نصب را مشاهده می‌کنید.

نصب وب‌سرور آپاچی در سیستم‌عامل CentOS

نصب وب‌سرور آپاچی در سیستم‌عامل CentOS

 

حالا سیستم خود را به‌گونه‌ای تنظیم کنید که آپاچی در زمان راه‌اندازی سیستم، اجرا شود.


systemctl start httpd.service

systemctl enable httpd.service

به منظور دسترسی خارجی به وب‌سرور باید پورت‌های ۸۰ اچ‌تی‌تی‌پی و ۴۴۳ اچ‌تی‌تی‌پی‌اس را در فایروال باز کنیم. firewalld فایروال پیش‌فرض در سیستم‌عامل CentOS است. تنظیمات این فایروال از طریق فرمان firewalld صورت می‌گیرد.


firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

حالا مرورگر خود را به سمت آدرس IP سرورتان هدایت کنید. در اینجا آدرس IP برابر http://192.168.0.100 است. در نتیجه، صفحه پیش‌فرض وب‌سرور آپاچی را مشاهده کنید.

صفحه پیش‌فرض نصب وب‌سرور آپاچی در CentOS

صفحه پیش‌فرض نصب وب‌سرور آپاچی در CentOS

۴) نصب php

نسخه‌ای از php که به همراه CentOS عرضه شده، نسبتاً قدیمی است (PHP 5.4). بر این اساس، در اینجا نحوه نصب نسخه‌های جدیدتر php مانند نسخه ۷ را از منبع Remi به شما نشان می‌دهیم.

اضافه کردن منبع Remi در CentOS


rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

ابزارهای yum-utils را نیز نصب می‌کنیم؛ چرا که به ابزار yum-config-manager نیاز داریم.


yum -y install yum-utils

و بروزرسانی yum را نیز اجرا می‌کنیم.


yum update

حالا زمان ‌آن است که نسخه‌ای که را می‌خواهید از php در سرور استفاده کنید، انتخاب نمایید. اگر هم دوست دارید از php نسخه 5.4 استفاده کنیم، می‌توانید مستقیماً به سراغ بخش بعدی آموزش بروید. برای نصب نسخه 7.0 فرمان‌های بخش ۴.۲  را دنبال کنید و نحوه نصب نسخه‌های 7.1، 7.4 و 7.3 به ترتیب در بخش‌های  ۴.۳، ۴.۴ و ۴.۵  آمده است. یکی از این بخش‌ها را انتخاب کرده و تنها یک نسخه از php را در کنار Apache mod_php استفاده کنید.

۴.۱) نصب PHP 5.4

به منظور نصب PHP 5.4، فرمان زیر را اجرا نمایید.


yum -y install php

۴.۲) نصب PHP 7.0

امکان نصب PHP 7.0 و ماژول Apache PHP 7.0 به صورت زیر وجود دارد.


yum-config-manager --enable remi-php70

yum -y install php php-opcache

۴.۳) نصب PHP 7.1

اگر می‌خواهید از نسخه 7.1 پی‌اچ‌پی استفاده کنید، فرمان زیر را اجرا نمایید.


yum-config-manager --enable remi-php71

yum -y install php php-opcache

۴.۴) نصب PHP 7.2

در صورتی که می‌خواهید از نسخه PHP 7.2 استفاده کنید:


yum-config-manager --enable remi-php72

yum -y install php php-opcache

۴.۵) نصب PHP 7.3

اگر می‌خواهید نسخه PHP 7.3 را نصب کنید:


yum-config-manager --enable remi-php73

yum -y install php php-opcache

در این مثال و در سیستم مجازی، از نسخه PHP 7.3 استفاده خواهیم کرد.

برای اینکه تغییرات اِعمال شوند، باید آپاچی را دوباره اندازی کنیم.


systemctl restart httpd.service

۵) تست php و دریافت اطلاعات در مورد نسخه نصب‌شده

ریشه داکیومنت برای وب‌سایت پیش‌فرض به صورت /var/www/html خواهد بود. در این دایرکتوری، یک فایل php کوچک با نام info.php ایجاد می‌کنیم و برای تست نصب در مرورگر از آن استفاده می‌کنیم. این فایل اطلاعات مفید زیادی در رابطه با نصب php به ما نشان می‌دهد.


nano /var/www/html/info.php

 


<?php

phpinfo();

حالا این فایل با آدرسی مانند http://192.168.0.100/info.php در مرورگر فراخوانی می‌کنیم.

 

اطلاعات نسخه php به همراه نصب وب‌سرور آپاچی

اطلاعات نسخه php به همراه نصب وب‌سرور آپاچی

همان‌طور که می‌بینید، PHP 7.3 به‌خوبی در حال اجرا در هندلر Apache 2.0 است. این موضوع در خط Server API نشان داده می‌شود. اگر به طرف پایین صفحه حرکت کنید، ماژول‌هایی را نیز می‌بینید که در حال حاضر برای php فعال هستند. MySQL در اینجا لیست نشده و به این معناست که هنوز در php ما از آن پشتیبانی نمی‌شود.

۶) ایجاد پشتیبانی از MySQL در PHP

برای داشتن قابلیت پشتیبانی از php در MySQL می‌توانیم بسته php-mysqlnd را نصب کنیم. ضمن اینکه نصب برخی دیگر از ماژول‌های php برای استفاده در برنامه‌های دیگر مفید خواهد بود. با کمک فرمان زیر می‌توانید ماژول‌های در دسترس برای PHP5 را پیدا کنید.


yum search php

آنهایی را که می‌خواهید، انتخاب کرده و مطابق زیر نصب کنید.


yum -y install php-mysqlnd php-pdo

در گام بعدی، برخی‌ ماژول‌ها که برای سیستم‌های CMS مورد نیاز هستند، نصب خواهیم کرد. ماژول‌هایی مانند وردپرس، جوملا و دروپال.


yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

حالا وب‌سرور آپاچی را دوباره راه‌اندازی می‌کنیم.


systemctl restart httpd.service

حالا آدرس http://192.168.0.100/info.php را دوباره در مرورگرتان بارگذاری کنید و به پایین صفحه، بخش ماژول‌ها بروید. اکنون باید ماژول‌های زیادی را در این بخش مشاهده کنید.

فعال‌شدن پشتیبانی MySQL در پی‌اچ‌پی

فعال‌شدن پشتیبانی MySQL در پی‌اچ‌پی

اگر به خروجی PHP info دیگر نیازی ندارید، می‌توانید با درنظر گرفتن ملاحظات امنیتی، آن را پاک کنید.


rm /var/www/html/info.php

۷) نصب phpMyAdmin

phpMyAdmin یک رابط کاربری تحت وب است که از طریق آن می‌توانید پایگاه‌های داده MySQL را مدیریت کنید. نصب این ابزار به صورت زیر انجام می‌گیرد.


yum -y install phpMyAdmin

حالا باید تنظیمات phpMyAdmin را انجام دهید. ما تنظمیات نصب وب‌سرور آپاچی را به‌گونه‌ای تغییر داده‌ایم که phpMyAdmin تنها از localhost  اجازه ارتباط نداشته باشد. این کار از طریق اضافه کردن خط “Require all granted” صورت گرفته است.


nano /etc/httpd/conf.d/phpMyAdmin.conf

ویرایش فایل به صورت زیر:


[...]

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>

AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>

# Apache 2.4

# <RequireAny>

# Require ip 127.0.0.1

# Require ip ::1

# </RequireAny>

Require all granted

</IfModule>

<IfModule !mod_authz_core.c>

# Apache 2.2

Order Deny,Allow

Deny from All

Allow from 127.0.0.1

Allow from ::1

</IfModule>

</Directory>

<Directory /usr/share/phpMyAdmin/>

Options none

AllowOverride Limit

Require all granted

</Directory>

[...]

وب‌سرور آپاچی را دوباره راه‌اندازی کنید تا تغییرات اِعمال شوند.


systemctl restart  httpd.service

سپس می‌توانید از طریق آدرس http://192.168.0.100/phpmyadmin/ به  phpMyAdmin دسترسی پیدا کنید.

صفحه ورود به phpMyAdmin

صفحه ورود به phpMyAdmin

 

صفحه phpMyAdmin در سیستم CentOS

صفحه phpMyAdmin در سیستم CentOS

۸) لینک‌ها

 Apache: http://httpd.apache.org/

 PHP: http://www.php.net/

MySQL: http://www.mysql.com/

CentOS: http://www.centos.org/

phpMyAdmin: http://www.phpmyadmin.net/