این آموزش نحوه نصب وبسرور آپاچی را به همراه php و MySQL را در سرور CentOS 7 به شما نشان میدهد. قبل از هر چیز توجه داشته باشید که LAMP مخفف ترکیب لینوکس، آپاچی، مایاسکیواِل و پیاچپی است.
۱) نکات ابتدایی
در این مطلب آموزشی، از عنوان هاست server1.example.com با آیپی معادل 192.168.0.100 استفاده شده است. این تنظیمات ممکن است برای شما متفاوت باشند. بنابراین باید آنها را متناسب با پروژه خود تغییر دهید.
در اینجا منبع EPEL را اضافه میکنیم تا بتوانیم آخرین نسخه phpMyAdmin را در اختیار داشته باشیم.
[php]
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
[/php]
برای ویرایش فایلها در این shell، ویرایشگر nano نصب خواهیم کرد. اگر کار با vi را ترجیح میدهید، از این مرحله عبور کنید.
[php]
yum -y install nano
[/php]
۲) نصب MySQL یا MariaDB
MariaDB در واقع، نسخهای از MySQL است که توسط مایکل وایدنیس توسعه داده شده است. مایکل وایدنیس همان کسی است که یکی از پایهگذران اصلی MySQL بوده است. برای نصب MariaDB از طریق yum، فرمان زیر را اجرا نمایید.
yum -y install mariadb-server mariadb
در اینجا یک لینک در هنگام شروع به کار سیستم برای MySQL ایجاد میکنیم. در نتیجه، MySQL هر زمان که سیستم راهاندازی میشود، به صورت اتوماتیک اجرا میشود.
[php]
systemctl start mariadb.service
systemctl enable mariadb.service
[/php]
تنظیم کلمه عبور برای حساب کاربری روت MySQL
[php]
mysql_secure_installation
[/php]
خروجی
[php]
[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 ~]#
[/php]
۳) نصب وبسرور Apache
CentOS 7 با نسخه 2.4 از وبسرور آپاچی همراه است. بنابراین، میتوانیم آن را مستقیماً به عنوان یک بسته در CentOS 7 نصب کنیم.
[php]
yum -y install httpd
[/php]
در اینجا یک نما از فرآیند نصب را مشاهده میکنید.

نصب وبسرور آپاچی در سیستمعامل CentOS
حالا سیستم خود را بهگونهای تنظیم کنید که آپاچی در زمان راهاندازی سیستم، اجرا شود.
[php]
systemctl start httpd.service
systemctl enable httpd.service
[/php]
به منظور دسترسی خارجی به وبسرور باید پورتهای ۸۰ اچتیتیپی و ۴۴۳ اچتیتیپیاس را در فایروال باز کنیم. firewalld فایروال پیشفرض در سیستمعامل CentOS است. تنظیمات این فایروال از طریق فرمان firewalld صورت میگیرد.
[php]
firewall-cmd –permanent –zone=public –add-service=http
firewall-cmd –permanent –zone=public –add-service=https
firewall-cmd –reload
[/php]
حالا مرورگر خود را به سمت آدرس IP سرورتان هدایت کنید. در اینجا آدرس IP برابر http://192.168.0.100 است. در نتیجه، صفحه پیشفرض وبسرور آپاچی را مشاهده کنید.

صفحه پیشفرض نصب وبسرور آپاچی در CentOS
۴) نصب php
نسخهای از php که به همراه CentOS عرضه شده، نسبتاً قدیمی است (PHP 5.4). بر این اساس، در اینجا نحوه نصب نسخههای جدیدتر php مانند نسخه ۷ را از منبع Remi به شما نشان میدهیم.
اضافه کردن منبع Remi در CentOS
[php]
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[/php]
ابزارهای yum-utils را نیز نصب میکنیم؛ چرا که به ابزار yum-config-manager نیاز داریم.
[php]
yum -y install yum-utils
[/php]
و بروزرسانی yum را نیز اجرا میکنیم.
[php]
yum update
[/php]
حالا زمان آن است که نسخهای که را میخواهید از php در سرور استفاده کنید، انتخاب نمایید. اگر هم دوست دارید از php نسخه 5.4 استفاده کنیم، میتوانید مستقیماً به سراغ بخش بعدی آموزش بروید. برای نصب نسخه 7.0 فرمانهای بخش ۴.۲ را دنبال کنید و نحوه نصب نسخههای 7.1، 7.4 و 7.3 به ترتیب در بخشهای ۴.۳، ۴.۴ و ۴.۵ آمده است. یکی از این بخشها را انتخاب کرده و تنها یک نسخه از php را در کنار Apache mod_php استفاده کنید.
۴.۱) نصب PHP 5.4
به منظور نصب PHP 5.4، فرمان زیر را اجرا نمایید.
[php]
yum -y install php
[/php]
۴.۲) نصب PHP 7.0
امکان نصب PHP 7.0 و ماژول Apache PHP 7.0 به صورت زیر وجود دارد.
[php]
yum-config-manager –enable remi-php70
yum -y install php php-opcache
[/php]
۴.۳) نصب PHP 7.1
اگر میخواهید از نسخه 7.1 پیاچپی استفاده کنید، فرمان زیر را اجرا نمایید.
[php]
yum-config-manager –enable remi-php71
yum -y install php php-opcache
[/php]
۴.۴) نصب PHP 7.2
در صورتی که میخواهید از نسخه PHP 7.2 استفاده کنید:
[php]
yum-config-manager –enable remi-php72
yum -y install php php-opcache
[/php]
۴.۵) نصب PHP 7.3
اگر میخواهید نسخه PHP 7.3 را نصب کنید:
[php]
yum-config-manager –enable remi-php73
yum -y install php php-opcache
[/php]
در این مثال و در سیستم مجازی، از نسخه PHP 7.3 استفاده خواهیم کرد.
برای اینکه تغییرات اِعمال شوند، باید آپاچی را دوباره اندازی کنیم.
[php]
systemctl restart httpd.service
[/php]
۵) تست php و دریافت اطلاعات در مورد نسخه نصبشده
ریشه داکیومنت برای وبسایت پیشفرض به صورت /var/www/html خواهد بود. در این دایرکتوری، یک فایل php کوچک با نام info.php ایجاد میکنیم و برای تست نصب در مرورگر از آن استفاده میکنیم. این فایل اطلاعات مفید زیادی در رابطه با نصب php به ما نشان میدهد.
[php]
nano /var/www/html/info.php
[/php]
[php]
<?php
phpinfo();
[/php]
حالا این فایل با آدرسی مانند http://192.168.0.100/info.php در مرورگر فراخوانی میکنیم.

اطلاعات نسخه php به همراه نصب وبسرور آپاچی
همانطور که میبینید، PHP 7.3 بهخوبی در حال اجرا در هندلر Apache 2.0 است. این موضوع در خط Server API نشان داده میشود. اگر به طرف پایین صفحه حرکت کنید، ماژولهایی را نیز میبینید که در حال حاضر برای php فعال هستند. MySQL در اینجا لیست نشده و به این معناست که هنوز در php ما از آن پشتیبانی نمیشود.
۶) ایجاد پشتیبانی از MySQL در PHP
برای داشتن قابلیت پشتیبانی از php در MySQL میتوانیم بسته php-mysqlnd را نصب کنیم. ضمن اینکه نصب برخی دیگر از ماژولهای php برای استفاده در برنامههای دیگر مفید خواهد بود. با کمک فرمان زیر میتوانید ماژولهای در دسترس برای PHP5 را پیدا کنید.
[php]
yum search php
[/php]
آنهایی را که میخواهید، انتخاب کرده و مطابق زیر نصب کنید.
[php]
yum -y install php-mysqlnd php-pdo
[/php]
در گام بعدی، برخی ماژولها که برای سیستمهای CMS مورد نیاز هستند، نصب خواهیم کرد. ماژولهایی مانند وردپرس، جوملا و دروپال.
[php]
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel
[/php]
حالا وبسرور آپاچی را دوباره راهاندازی میکنیم.
[php]
systemctl restart httpd.service
[/php]
حالا آدرس http://192.168.0.100/info.php را دوباره در مرورگرتان بارگذاری کنید و به پایین صفحه، بخش ماژولها بروید. اکنون باید ماژولهای زیادی را در این بخش مشاهده کنید.

فعالشدن پشتیبانی MySQL در پیاچپی
اگر به خروجی PHP info دیگر نیازی ندارید، میتوانید با درنظر گرفتن ملاحظات امنیتی، آن را پاک کنید.
[php]
rm /var/www/html/info.php
[/php]
۷) نصب phpMyAdmin
phpMyAdmin یک رابط کاربری تحت وب است که از طریق آن میتوانید پایگاههای داده MySQL را مدیریت کنید. نصب این ابزار به صورت زیر انجام میگیرد.
[php]
yum -y install phpMyAdmin
[/php]
حالا باید تنظیمات phpMyAdmin را انجام دهید. ما تنظمیات نصب وبسرور آپاچی را بهگونهای تغییر دادهایم که phpMyAdmin تنها از localhost اجازه ارتباط نداشته باشد. این کار از طریق اضافه کردن خط “Require all granted” صورت گرفته است.
[php]
nano /etc/httpd/conf.d/phpMyAdmin.conf
[/php]
ویرایش فایل به صورت زیر:
[php]
[…]
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>
[…]
[/php]
وبسرور آپاچی را دوباره راهاندازی کنید تا تغییرات اِعمال شوند.
[php]
systemctl restart httpd.service
[/php]
سپس میتوانید از طریق آدرس http://192.168.0.100/phpmyadmin/ به phpMyAdmin دسترسی پیدا کنید.

صفحه ورود به phpMyAdmin

صفحه 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/