آذرسیس

How to upgrade PHP 7 on CentOS 7
5/5 - (1 امتیاز)

PHP یک زبان برنامه نویسی شی گرا و مخصوص سرور است که نسخه PHP 7 آن قابلیت های جدید و سرعت بالایی نسبت به نسخه های قبل تر دارد.

اگر شما نیز phpMyAdmin را برای مدیریت پایگاه داده خود نصب کرده‌اید، توصیه می کنیم قبل از ارتقا به بسته‌های اصلی در PHP 7 گزینه CentOS را در نظر داشته باشید.

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

اما نگران نباشید! نحوه ارتقا PHP 7 در CentOS 7 را به طور کامل و مرحله به مرحله، به شما کاربران علاقه مند توضیح خواهیم داد.

توجه کنید که در این مقاله از آذرسیس، فرض بر این است که PHP 5.x بر روی CentOS 7 اجرا می‌شود و از mod_php در ارتباط با Apache یا PHP-FPM در ارتباط با Nginx استفاده می‌شود.

همچنین در مراحل ارتقا PHP 7 در CentOS 7، فرض می کنیم که یک کاربر non-root وجود دارد که با امتیازات sudo برای کارهای اجرایی پیکربندی شده است. همراه ما باشید!

How-to-upgrade-PHP-7-to-CentOS-7

ارتقا PHP 7 در CentOS 7

PHP نسخه 6 یک شکست واضح بود! به همین خاطر اگر از نسخه PHP 5 استفاده می کنید، ارتقا PHP 7 در CentOS 7 امری ضروری است.

برای ارتقا PHP 7 در CentOS 7، مراحل زیر را به طور کامل پیش ببرید و در هر کدام از مراحل که سوال داشتید با پشتیبانی آذرسیس در ارتباط باشید.

How-to-upgrade-PHP-7-to-CentOS-7

اشتراک در مخزن پروژه IUS

برای شروع مراحل ارتقا PHP 7 در CentOS 7، از آن جایی که PHP 7.x هنوز در مخازن رسمی برای توزیع های اصلی آماده نشده است، باید از منابع دیگری استفاده کنیم.

برای این کار چندین مخزن فایل‌ های PHP 7 RPM را ارائه می‌دهند که در این سری آموزشی از مخزن IUS استفاده خواهیم کرد.

IUS یک اسکریپت نصب را برای اشتراک گذاری در مخزن خود، برای وارد کردن کلیدهای GPG مرتبط و مورد نیاز را ارائه می‌دهد.

در ادامه ارتقا PHP 7 در CentOS 7، ابتدا مطمئن شوید که در فهرست اصلی قرار دارید، سپس اسکریپت را با استفاده از curl بازیابی کنید:

cd ~
curl 'https://setup.ius.io/' -o setup-ius.sh

با استفاده از دستور رو به رو اسکرییپت را اجرا نمایید:

sudo bash setup-ius.sh

ارتقا mod_php با آپاچی

این بخش از ارتقا PHP 7 در CentOS 7، فرآیند ارتقا سیستمی را که از آپاچی به عنوان وب سرور و mod_php برای اجرای کد PHP استفاده می‌کند را توضیح می‌دهد.

توجه کنید که در صورت اجرا Nginx و PHP-FPM به صورت جایگزین می توانید این قسمت را رد کرده و به بخش بعدی بروید.

با دستور زیر بسته های PHP موجود را حذف کرده، پس از انتخاب y، Enter را فشار دهید:

sudo yum remove php-cli mod_php php-common

سپس نوبت به نصب بسته‌های جدید PHP 7 را از IUS می رسد، به همین خاطر مجدداً گزینه y را گزینش کرده و Enter را بزنید:

sudo yum install mod_php70u php70u-cli php70u-mysqlnd

در نهایت آپاچی را مجدداً راه اندازی کرده تا نسخه جدید mod_php بارگیری شود:

sudo apachectl restart

با استفاده از دستور زیر می توانید وضعیت آپاچی را که توسط واحد httpd systemd مدیریت می شود را بررسی کنید:

systemctl status httpd

ارتقاء PHP-FPM با Nginx

مرحله بعدی در ارتقا PHP 7 در CentOS 7، فرآیند ارتقا سیستمی است که از Nginx را به عنوان وب سرور و PHP-FPM را برای اجرا کد PHP استفاده می‌کند.

در صورتی که از قبل یک سیستم مبتنی بر آپاچی را ارتقا داده اید، به بخش تست PHP رفته و ابتدا بسته های PHP موجود را حذف کنید.

y را انتخاب کرده و Enter را بزنید:

sudo yum remove php-fpm php-cli php-common

پس از نصب بسته های جدید PHP 7 از IUS، مجدداً y را انتخاب و Enter را فشار دهید:

sudo yum install php70u-fpm-nginx php70u-cli php70u-mysqlnd

پس از اتمام مراحل بالا ارتقا PHP 7 در CentOS 7، نوبت به تغییر پیکربندی PHP-FPM و Nginx می‌رسد، مطابق پیکربندی PHP-FPM به اتصالات در سوکت TCP محلی گوش می دهد.

PHP-FPM می‌تواند مجموعه‌ای از فرآیندهای Child را مدیریت کرده و مطابق پیکربندی انجام شده، یک مخزن واحد به نام www را فراهم کند که در /etc/php-fpm.d/www.conf تعریف شده است.

این فایل را با nano و یا با ویرایشگر متن دلخواه خود باز کنید:

sudo nano /etc/php-fpm.d/www.conf

پس از طی مراحل بالا ارتقا PHP 7 در CentOS 7، به دنبال محتوا بلوک listen = 127.0.0.1:9000 بگردید، که به PHP-FPM دستور می دهد تا مطابق آدرس Loopback در پورت 9000 عمل کند.

این خط را با یک نقطه ویرگول کامنت گذاری کرده و listen = /run/php-fpm/www.sock را با استفاده از چند خط دستور زیر لغو کنید:

/etc/php-fpm.d/www.conf
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
;                            a specific port;
;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
;listen = 127.0.0.1:9000
; WARNING: If you switch to a unix socket, you have to grant your webserver user
;          access to that socket by setting listen.acl_users to the webserver user.
listen = /run/php-fpm/www.sock

سپس بلوک حاوی مقادیر listen.acl_users و uncomment listen.acl_users = nginx را جستجو کنید:

/etc/php-fpm.d/www.conf
; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
;listen.acl_users = apache,nginx
;listen.acl_users = apache
listen.acl_users = nginx
;listen.acl_groups =

از برنامه خارج شده و فایل را ذخیره کنید، در nano با فشار دادن Ctrl-X برای خروج، y برای تأیید، و Enter برای تأیید نام فایل جهت بازنویسی، انجام این کار امکان پذیر است.

با اطمینان از این که Nginx از مسیر صحیح برای مدیریت فایل‌های PHP استفاده می‌کند، به مسیر /etc/nginx/conf.d/default.conf بروید:

sudo nano /etc/nginx/conf.d/php-fpm.conf

php-fpm.conf یک upstream را تعریف می‌کند که می تواند توسط سایر دستورالعمل های پیکربندی Nginx به آن ارجاع داده شود.

در داخل بلوک upstream، از # برای کامنت‌گذاری به سرور 127.0.0.1:9000; و حذف سرور unix:/run/php-fpm/www.sock;: استفاده کنید:

/etc/nginx/conf.d/php-fpm.conf
# PHP-FPM FastCGI server
# network or unix domain socket configuration
upstream php-fpm {
        #server 127.0.0.1:9000;
        server unix:/run/php-fpm/www.sock;
}

از فایل بالا خارج شده و سپس آن را ذخیره کنید، در ادامه /etc/nginx/conf.d/default.conf را باز کنید:

sudo nano /etc/nginx/conf.d/default.conf

به دنبال بلوکی باشید که با location ~ \.php$ { شروع می شود، پس از دنبال کردن دستورالعمل fastcgi_pass این خط را کامنت‌گذاری و یا حذف کنید.

آن را با fastcgi_pass php-fpm جایگزین کنید، که به upstream تعریف شده در php-fpm.conf اشاره می کند:

/etc/nginx/conf.d/default.conf
  location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      # fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
      fastcgi_pass php-fpm;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
  }

پس از خروج از فایل و ذخیره، PHP-FPM و Nginx را مجدداً راه اندازی کنید تا دستورالعمل های پیکربندی جدید اعمال شوند:

sudo systemctl restart php-fpm
sudo systemctl restart nginx

با استفاده از systemctl می‌توانید وضعیت هر سرویس را بررسی کنید:

systemctl status php-fpm
systemctl status nginx

تست PHP در ارتقا PHP 7 در CentOS 7

در پایان مراحل  ارتقا PHP 7 در CentOS 7، با پیکربندی وب سرور و نصب بسته‌های جدید، PHP راه اندازی و اجرا می‌شود و دستور php -v نسخه نصب شده PHP در خط فرمان را بررسی می کند:

php -v
Output
PHP 7.0.1 (cli) (built: Dec 18 2015 16:35:26) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

همچنین شما می توانید یک فایل آزمایشی در document root وب سرور ایجاد کنید که موقعیت آن به پیکربندی سرور شما بستگی دارد، document root معمولاً روی یکی از این دایرکتوری‌ها تنظیم می‌شود:

/var/www/html
/var/www/
/usr/share/nginx/html

برای ادامه ارتقا PHP 7 در CentOS 7، مطابق دستور زیر می توانید در nano فایل جدیدی به نام info.php را در document root باز کنید:

sudo nano /var/www/html/info.php

در Nginx نیز می توانید به صورت جایگزین از دستور زیر استفاده کنید:

sudo nano /usr/share/nginx/html/info.php

در ادامه کد زیر را قرار دهید:

info.php
<?php
phpinfo();

info.php را ذخیره کرده، از ویرایشگر خارج شوید و سپس آدرس زیر را در مرورگر وارد و بارگذاری کنید:

http://server_domain_name_or_IP/info.php

صفحه اطلاعات PHP 7 نسخه در حال اجرا را فهرست بندی می‌کند، پس از بررسی مجدد، بهتر است info.php را با استفاده از دستور زیر پاک کنید:

sudo rm /var/www/html/info.php

How-to-upgrade-PHP-7-to-CentOS-7

لازم به ذکر است برای ایجاد یک محیط توسعه برای برنامه نویسی و ارتقا PHP 7 در CentOS، به یک سرور مجازی با کیفیت نیاز خواهید داشت.

آذرسیس تنها ارائه دهنده سرور مجازی از 60 لوکیشن مختلف در دنیا، سخت افزار های قدرتمند، پهنا باند نامحدود در دو نوع سرور مجازی لینوکس و سرور مجازی ویندوز آماده خدمات رسانی به شماست.

همچنین نکته قابل توجه از شرکت هاستیگ آذرسیس تحویل فوری و ضمانت 7 روز بازگشت وجه در صورت عدم رضایت می باشد.

برای سفارش و مشاهده پلن های مختلف با کم ترین قیمت، می توانید به وب سایت رسمی شرکت آذرسیس مراجعه نمایید.

سخن آخر

طبق آن چه که در این مقاله مشاهده کردید نحوه ارتقا PHP 7 در CentOS 7 را  به طور کامل برای شما کاربران گرامی بررسی کردیم.

امیدواریم مقاله ارتقا PHP 7 در CentOS 7 برای تان مفید بوده باشد، در صورت داشتن هر گونه انتقاد و پیشنهاد، از طریق ارسال تیکت با کارشناسان آذرسیس در میان بگذارید.

از مهم ترین ویژگی های PHP 7 چیست؟

مصرف کم داده، سرعت بالا و ساده کردن مدیریت خطا از ویژگی های مهم این زبان است.

Share this Post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *