این آموزش نحوه نصب وبسرور آپاچی را به همراه 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
در اینجا یک نما از فرآیند نصب را مشاهده میکنید.
حالا سیستم خود را بهگونهای تنظیم کنید که آپاچی در زمان راهاندازی سیستم، اجرا شود.
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 است. در نتیجه، صفحه پیشفرض وبسرور آپاچی را مشاهده کنید.
۴) نصب 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 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 را دوباره در مرورگرتان بارگذاری کنید و به پایین صفحه، بخش ماژولها بروید. اکنون باید ماژولهای زیادی را در این بخش مشاهده کنید.
اگر به خروجی 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 دسترسی پیدا کنید.
۸) لینکها
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/