بلاگ/نصب PHP 7.x روی CentOS 8
به‌روز شده

نصب PHP 7.x روی CentOS 8

چگونه می‌توان نصب PHP 7.x را بر روی سرور لینوکس CentOS 8 به همراه Nginx انجام داد؟ نصب آخرین نسخه PHP 7.4 روی سرور CentOS Enterprise Linux 8 چگونه است؟ اینها سؤالاتی هستند که احتمالاً برای دانستن آنها به سراغ این مطلب آمده‌اید. php یا پردازنده فرامتن یک زبان برنامه‌نویسی متن‌باز است که برای ساخت...

1398/10/294158 بازدید
نصب PHP 7.x روی CentOS 8
چگونه می‌توان نصب PHP 7.x را بر روی سرور لینوکس CentOS 8 به همراه Nginx انجام داد؟ نصب آخرین نسخه PHP 7.4 روی سرور CentOS Enterprise Linux 8 چگونه است؟ اینها سؤالاتی هستند که احتمالاً برای دانستن آنها به سراغ این مطلب آمده‌اید. php یا پردازنده فرامتن یک زبان برنامه‌نویسی متن‌باز است که برای ساخت صفحات وب دینامیک به کار می‌رود. کدهای php بر روی سرورهای وب مانند Nginx،  Apache و ... اجرا می‌شوند. در این مطلب قصد داریم که نحوه نصب PHP 7.x را بر روی سرور لینوکس CentOS 8 در کنار سرور Nginx به شما آموزش دهیم.

نصب PHP 7.x بر روی CentOS 8

۱) برنامه ترمینال را باز کنید و به سرور خارجی CentOS 8 لاگین کنید. ۲) باکس CentOS 8 را بروزرسانی کنید؛ برای این منظور، فرمان sudo yum update را اجرا نمایید. ۳) در جستجوی نسخه PHP، فرمان sudo yum search php را اجرا کنید. ۴) ابزار Remi’s repo را برای PHP 7.4 نصب کنید؛ برای این منظور باید از فرمان زیر کمک بگیرید:
php
sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
۵) نسخه <strong>7.2.11</strong> یا <strong>7.4</strong> از php و ماژول FastCGI را برای Nginx در CentOS 8 نصب کنید. برای این منظور فرمان زیر را اجرا نمایید:
php
sudo yum install php php-fpm;
۶) Nginx را به‌گونه‌ای تنظیم کنید که از php استفاده کند. ۷) با استفاده از فرمان <kbd><strong>sudo yum search php، </strong>ماژول‌های اضافی برای پشتیبانی از گرافیک و پایگاه داده نصب کنید.</kbd> ۸) سرور Nginx و php را فعال و دوباره راه‌اندازی نمایید. ۹) هر دو نصب php را تست کرده و بررسی نمایید. <h2><strong>بروزرسانی باکس CentOS 8</strong></h2> فرمان Yum زیر را اجرا کنید:
php
sudo yum update
اگر یک کرنل جدید نصب شده باشد، سیستم لینوکس را دوباره راه‌اندازی و ریبوت کنید؛
php
sudo reboot
<h2>تشخیص و جستجوی نسخه php</h2> برای یافتن نسخه php در سرور لینوکس CentOS اینترپرایز 8 به روش زیر عمل کنید:
php
-sudo yum search php
<img class="wp-image-13017 aligncenter" src="https://statics.ariaservice.net/blog/uploads/2020/01/Search-PHP-version-on-CentOS-8-262x300.png" alt="جستجوی نسخه php" width="382" height="541" /> ممکن است چند نسخه مختلف از php بر روی سیستم‌های شما نصب شده باشند. بررسی این موضوع می‌تواند با نوشتن فرمان زیر انجام شود:
php
sudo yum module list php[php/]نمونه خروجی:&amp;lt;pre&amp;gt;Last metadata expiration check: 0:25:04 ago on Mon Dec 16 13:01:39 2019.CentOS-8 - AppStreamName             Stream             Profiles                              Summary                          php              7.2 [d]            common [d], devel, minimal            PHP scripting language           Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
مثال زیر نشان می‌دهد که نسخه‌های 7.2، 7.3 و 7.4 برای نصب در دسترس هستند.
php
sudo yum module list php
نمونه خروجی:
php
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;Last metadata expiration check: 0:00:05 ago on Mon Dec 16 13:28:05 2019.CentOS-8 - AppStreamName            Stream              Profiles                              Summary                          php             7.2 &amp;lt;strong&amp;gt;[d]&amp;lt;/strong&amp;gt;             common [d], devel, minimal            PHP scripting language           Remi's Modular repository for Enterprise Linux 8 - x86_64Name            Stream              Profiles                              Summary                          php             remi-7.2            common [d], devel, minimal            PHP scripting language           php             remi-7.3            common [d], devel, minimal            PHP scripting language           php             remi-7.4            common [d], devel, minimal            PHP scripting language           Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
به صورت پیش‌فرض، نسخه 7.2 نصب می‌شود که با علامت [d] مشخص می‌گردد.

یادداشتی بر فعالسازی نسخه‌های مختلف php از جمله 7.3 و 7.4 در CentOS

اکیداً توصیه می‌شود که از نسخه پیش‌فرض 7.2 از php برای تولید برنامه‌های تحت‌وب استفاده کنید. با این وجود اگر به نسخه‌های 7.3 یا 7.4 احتیاج داشتید، از فرمان‌های زیر کمک بگیرید. در نتیجه، ابزارهای Remi’s repo برای شما فعال می‌گردند.
php
sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

فعالسازی نسخه پیش‌فرض

نسخه پیش‌فرض php به 7.2  تنظیم و قفل شده است. امّا در همین حال، شما باید قادر باشید نسخه پیش‌فرض را به دلخواه خودتان تنظیم کنید. برای این منظور، فرمان‌های زیر را تایپ می‌کنید:
php
sudo yum module list phpsudo yum module reset phpsudo yum module enable php:remi-7.4## verify it php set to 7.4 ##sudo yum module list php

نحوه نصب php 7.4 بر روی CentOS 8 با استفاده از فرمان yum

اگر می‌خواهید نسخه 7.4 از php را بر روی لینوکس CentOS 8 نصب کنید، ابتدا بایستی ابزار Remi repo را فعال کنید و سپس با استفاده از yum، نسخه پیش‌فرض را انتخاب نمایید. برای نسخه 7.3 از php، فرمان زیر را اجرا کنید:
php
sudo yum module list phpsudo yum module reset phpsudo yum module enable php:remi-7.3## verify it php set to 7.3 ##sudo yum module list php
نسخه php تنظیم شد؛ حالا وقت آن رسیده است که نصب PHP 7.x را بر روی سرور ابری CentOS 8 شروع کنید. برای این منظور، فرمان زیر را تایپ می‌کنید:
php
sudo yum install php php-fpm
اگر به هر دلیلی نمی‌خواهید سرور Apache را نصب کنید، فرمان زیر را تایپ نمایید:
php
sudo yum install php-fpm php-common php-cli

فعالسازی سرویس php-fpm

فرمان systemctl زیر را تایپ کنید:
php
sudo systemctl enable php-fpm.service
با فرمان زیر، سرویس php-fpm را راه‌اندازی کنید:
php
sudo systemctl start php-fpm.servicesudo systemctl status php-fpm.service
  برای کسب اطلاعات بیشتر، نحوه راه‌اندازی، بارگذاری و شروع سرویس PHP-fpm را ببینید:
php
sudo systemctl stop php-fpm.servicesudo systemctl restart php-fpm.service
  چگونه php را برای کار با سرور Nginx تنظیم کنیم؟ ابتدا باید از فرمان cat، تنظیمات سرور PHP-FPM FastCGI را پیدا کنید:
php
cat /etc/nginx/conf.d/php-fpm.conf
  مطمئن شوید که سوکت یونیکس فعال است و کار می‌کند. برای این منظور داریم:
php
ls -l /run/php-fpm/www.sock

تنظیمات نمونه php-fpm برای CentOS 8 با سرور  Nginx

php
cat /etc/nginx/default.d/php.confindex index.php index.html index.htm;location ~ \.php$ {    try_files $uri =404;    fastcgi_intercept_errors on;    fastcgi_index  index.php;    include        fastcgi_params;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    fastcgi_pass   php-fpm;}
 

راه‌اندازی دوباره سرویس یا سرور nginx

دوباره فرمان زیر را اجرا کنید:
php
sudo systemctl restart nginx.service
  نسخه php را با فرمان زیر بررسی نمایید:
php
php –version
   
php
PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies

تست و بررسی اجرای مناسب PHP 7.x در CentOS 8 همراه با سرور Nginx

یک فایل جدید به صورت زیر ایجاد کنید:
php
sudo vi /usr/share/nginx/html/hello.php
کد php زیر را اضافه کنید:
php
<?php	echo "Hello, world!\n";?>
فایل را ذخیره کرده و در vim ببندید. سپس آن را به صورت زیر با فرمان curl اجرا نمایید:
php
curl -I http://localhost/hello.phpcurl http://localhost/hello.php<br data-mce-bogus="1">

مثال برنامه demo.php

در مرحله بعد، به صورت زیر یک فایل جدید ایجاد کنید.
php
sudo vi /usr/share/nginx/html/demo.php
و کد زیر را هم ضمیمه کنید:
php
<?php phpinfo(); ?>
فایل را ذخیره کنید و ببندید. یک مرورگر وب اجرا کنید و آدرس زیر را در آن تایپ نمایید:
php
http://your-domain-OR-ip/hello.phphttp://192.168.2.254/hello.phphttp://192.168.2.254/demo.php<br data-mce-bogus="1">

چگونه ماژول‌های بیشتری برای php نصب کنیم؟

می‌توانید به صورت زیر ماژول‌ها را جستجو کرده و نصب نمایید:
php
sudo yum search php-sudo yum search php- | grep mysqlsudo yum search php74- ## for version 7.2 ##sudo yum search php74- ## for version 7.3 ##sudo yum search php74- ## for version 7.4 ##
 
php
======================== Summary & Name Matched: php74- ========================php74-php-zephir-parser-devel.x86_64 : php74-php-zephir-parser developer files============================= Name Matched: php74- =============================php74-php.x86_64 : PHP scripting language for creating dynamic web sitesphp74-build.x86_64 : Package shipping basic build configurationphp74-php-gd.x86_64 : A module for PHP applications for using the gd graphicsphp74-xhprof.noarch : A Hierarchical Profiler for PHP - Web interfacephp74-zephir.noarch : Zephir language for creation of extensions for PHP.php74-php-ast.x86_64 : Abstract Syntax Treephp74-php-cli.x86_64 : Command-line interface for PHPphp74-php-dba.x86_64 : A database abstraction layer module for PHP applicationsphp74-php-dbg.x86_64 : The interactive PHP debuggerphp74-php-ffi.x86_64 : Foreign Function Interfacephp74-php-fpm.x86_64 : PHP FastCGI Process Managerphp74-php-gmp.x86_64 : A module for PHP applications for using the GNU MPphp74-php-lz4.x86_64 : LZ4 Extension for PHPphp74-php-pdo.x86_64 : A database access abstraction module for PHP applicationsphp74-php-xml.x86_64 : A module for PHP applications which use XMLphp74-runtime.x86_64 : Package that handles php74 Software Collection.php74-php-imap.x86_64 : A module for PHP applications that use IMAPphp74-php-intl.x86_64 : Internationalization extension for PHP applicationsphp74-php-json.x86_64 : JavaScript Object Notation extension for PHPphp74-php-ldap.x86_64 : A module for PHP applications that use LDAPphp74-php-oci8.x86_64 : A module for PHP applications that use OCI8 databasesphp74-php-odbc.x86_64 : A module for PHP applications that use ODBC databasesphp74-php-pear.noarch : PHP Extension and Application Repository frameworkphp74-php-pggi.x86_64 : GTK bindingsphp74-php-snmp.x86_64 : A module for PHP applications that query SNMP-managedphp74-php-soap.x86_64 : A module for PHP applications that use the SOAP protocolphp74-php-tidy.x86_64 : Standard PHP module provides tidy library supportphp74-php-zstd.x86_64 : Zstd Extension for PHPphp74-scldevel.x86_64 : Package shipping development files for php74php74-unit-php.x86_64 : PHP module for NGINX Unitphp74-php-devel.x86_64 : Files needed for building PHP extensionsphp74-php-pgsql.x86_64 : A PostgreSQL database module for PHPphp74-php-pinba.x86_64 : Client extension for Pinba statistics serverphp74-php-bcmath.x86_64 : A module for PHP applications for using the bcmathphp74-php-brotli.x86_64 : Brotli Extension for PHPphp74-php-common.x86_64 : Common files for PHPphp74-php-pspell.x86_64 : A module for PHP applications for using pspellphp74-php-recode.x86_64 : A module for PHP applications for using the recodephp74-php-snappy.x86_64 : Snappy Extension for PHPphp74-php-sodium.x86_64 : Wrapper for the Sodium cryptographic libraryphp74-php-sqlsrv.x86_64 : Microsoft Drivers for PHP for SQL Serverphp74-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPCphp74-php-enchant.x86_64 : Enchant spelling extension for PHP applicationsphp74-php-libvirt.x86_64 : PHP language binding for Libvirtphp74-php-mysqlnd.x86_64 : A module for PHP applications that use MySQLphp74-php-opcache.x86_64 : The Zend OPcachephp74-php-process.x86_64 : Modules for PHP script using system processphp74-php-embedded.x86_64 : PHP library for embedding in applicationsphp74-php-mbstring.x86_64 : A module for PHP applications which need multi-bytephp74-php-phalcon4.x86_64 : Phalcon Frameworkphp74-php-componere.x86_64 : Composing PHP classes at runtimephp74-php-litespeed.x86_64 : LiteSpeed Web Server PHP supportphp74-php-maxminddb.x86_64 : MaxMind DB Reader extensionphp74-php-pdo-dblib.x86_64 : PDO driver for Microsoft SQL Server and Sybasephp74-php-phpiredis.x86_64 : Client extension for Redisphp74-php-smbclient.x86_64 : PHP wrapper for libsmbclientphp74-php-wkhtmltox.x86_64 : HTML Converterphp74-php-libvirt-doc.noarch : Document of php-libvirtphp74-php-snuffleupagus.x86_64 : Security module for PHPphp74-php-zephir-parser.x86_64 : Zephir parser extensionphp74-php-horde-horde-lz4.x86_64 : Horde LZ4 Compression Extension

نصب ماژول‌های php 7.x در CentOS 8

برای نمونه، برای نصب پشتیبانی گرافیکی و پایگاه داده می‌نویسیم:
php
sudo yum install php-mysqlnd php-gd
نصب‌های رایج وردپرس بر روی CentOS 8 نیازمند افزونه‌ها یا ماژول‌های php زیر خواهند بود:
php
sudo yum install php-mysqlnd php-gd php-pecl-zip php-mbstring php-xml php-opcache php-pecl-imagick

نحوه انجام تنظیمات در php 7.x

هر زمان که نیاز باشد، باید فایل‌های زیر را ویرایش کنید:     /etc/php.ini فایل مربوط به نصب و تنظیمات php؛ به این فایل نباید دست بزنید! به جای آن، در دایرکتوری /etc/php.d/ یک فایل custom.ini بسازید.     /etc/php-fpm.conf فایل تنظیمات Gloable FPM (FastCGI) /etc/php-fpm.d/www.conf فایل تنظیمات FastCGI (FPM) www pool /etc/php.d/ فایل تنظیمات ماژول‌های php

جمع‌بندی

به این ترتیب است که شما php را در CentOS 8 نصب و اجرا خواهید کرد. این در حالی است که به صورت پیش‌فرض، نسخه 7.2 از php بر روی لینوکس CentOS 8 نصب می‌شود. با این وجود، توسعه‌دهنده یا sysadmin می‌تواند آخرین نسخه php مانند 7.4 را با استفاده از منبع Remi نصب کند و در سرور لینوکس CentOS اینترپرایز استفاده نماید.