چگونه میتوان نصب 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
[/php]
۵) نسخه <strong>7.2.11</strong> یا <strong>7.4</strong> از php و ماژول FastCGI را برای Nginx در CentOS 8 نصب کنید. برای این منظور فرمان زیر را اجرا نمایید:
[php]
sudo yum install php php-fpm;
[/php]
۶) 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]
اگر یک کرنل جدید نصب شده باشد، سیستم لینوکس را دوباره راهاندازی و ریبوت کنید؛
[php]
sudo reboot
[/php]
<h2>تشخیص و جستجوی نسخه php</h2> برای یافتن نسخه php در سرور لینوکس CentOS اینترپرایز 8 به روش زیر عمل کنید:
[php]
-sudo yum search php
[/php]
<img class=”wp-image-13017 aligncenter” src=”https://www.ariaservice.net/app/uploads/2020/01/Search-PHP-version-on-CentOS-8-262×300.png” alt=”جستجوی نسخه php” width=”382″ height=”541″ /> ممکن است چند نسخه مختلف از php بر روی سیستمهای شما نصب شده باشند. بررسی این موضوع میتواند با نوشتن فرمان زیر انجام شود:
[php]
sudo yum module list php
[php/]
نمونه خروجی:
[php]
&amp;amp;lt;pre&amp;amp;gt;Last metadata expiration check: 0:25:04 ago on Mon Dec 16 13:01:39 2019.
CentOS-8 – AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[/php]
مثال زیر نشان میدهد که نسخههای 7.2، 7.3 و 7.4 برای نصب در دسترس هستند.
[php]
sudo yum module list php
[/php]
نمونه خروجی:
[php]&amp;amp;lt;/pre&amp;amp;gt;
&amp;amp;lt;pre&amp;amp;gt;Last metadata expiration check: 0:00:05 ago on Mon Dec 16 13:28:05 2019.
CentOS-8 – AppStream
Name Stream Profiles Summary
php 7.2 &amp;amp;lt;strong&amp;amp;gt;[d]&amp;amp;lt;/strong&amp;amp;gt; common [d], devel, minimal PHP scripting language
Remi’s Modular repository for Enterprise Linux 8 – x86_64
Name 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
[/php]
به صورت پیشفرض، نسخه 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]

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

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

تنظیمات نمونه php-fpm برای CentOS 8 با سرور Nginx
[php]
cat /etc/nginx/default.d/php.conf
index 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;
}
[/php]
راهاندازی دوباره سرویس یا سرور nginx
دوباره فرمان زیر را اجرا کنید:
[php]
sudo systemctl restart nginx.service
[/php]
نسخه php را با فرمان زیر بررسی نمایید:
[php]
php –version
[/php]
[php]
PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[/php]
تست و بررسی اجرای مناسب PHP 7.x در CentOS 8 همراه با سرور Nginx
یک فایل جدید به صورت زیر ایجاد کنید:
[php]
sudo vi /usr/share/nginx/html/hello.php
[/php]
کد php زیر را اضافه کنید:
[php]
<?php
echo "Hello, world!\n";
?>
[/php]
فایل را ذخیره کرده و در vim ببندید. سپس آن را به صورت زیر با فرمان curl اجرا نمایید:
[php]
curl -I http://localhost/hello.php
curl http://localhost/hello.php<br data-mce-bogus="1">
[/php]
مثال برنامه demo.php
در مرحله بعد، به صورت زیر یک فایل جدید ایجاد کنید.
[php]
sudo vi /usr/share/nginx/html/demo.php
[/php]
و کد زیر را هم ضمیمه کنید:
[php]
<?php phpinfo(); ?>
[/php]
فایل را ذخیره کنید و ببندید. یک مرورگر وب اجرا کنید و آدرس زیر را در آن تایپ نمایید:
[php]
http://your-domain-OR-ip/hello.php
http://192.168.2.254/hello.php
http://192.168.2.254/demo.php<br data-mce-bogus="1">
[/php]
چگونه ماژولهای بیشتری برای php نصب کنیم؟
میتوانید به صورت زیر ماژولها را جستجو کرده و نصب نمایید:
[php]
sudo yum search php-
sudo yum search php- | grep mysql
sudo yum search php74- ## for version 7.2 ##
sudo yum search php74- ## for version 7.3 ##
sudo yum search php74- ## for version 7.4 ##
[/php]
[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 sites
php74-build.x86_64 : Package shipping basic build configuration
php74-php-gd.x86_64 : A module for PHP applications for using the gd graphics
php74-xhprof.noarch : A Hierarchical Profiler for PHP – Web interface
php74-zephir.noarch : Zephir language for creation of extensions for PHP.
php74-php-ast.x86_64 : Abstract Syntax Tree
php74-php-cli.x86_64 : Command-line interface for PHP
php74-php-dba.x86_64 : A database abstraction layer module for PHP applications
php74-php-dbg.x86_64 : The interactive PHP debugger
php74-php-ffi.x86_64 : Foreign Function Interface
php74-php-fpm.x86_64 : PHP FastCGI Process Manager
php74-php-gmp.x86_64 : A module for PHP applications for using the GNU MP
php74-php-lz4.x86_64 : LZ4 Extension for PHP
php74-php-pdo.x86_64 : A database access abstraction module for PHP applications
php74-php-xml.x86_64 : A module for PHP applications which use XML
php74-runtime.x86_64 : Package that handles php74 Software Collection.
php74-php-imap.x86_64 : A module for PHP applications that use IMAP
php74-php-intl.x86_64 : Internationalization extension for PHP applications
php74-php-json.x86_64 : JavaScript Object Notation extension for PHP
php74-php-ldap.x86_64 : A module for PHP applications that use LDAP
php74-php-oci8.x86_64 : A module for PHP applications that use OCI8 databases
php74-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
php74-php-pear.noarch : PHP Extension and Application Repository framework
php74-php-pggi.x86_64 : GTK bindings
php74-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed
php74-php-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php74-php-tidy.x86_64 : Standard PHP module provides tidy library support
php74-php-zstd.x86_64 : Zstd Extension for PHP
php74-scldevel.x86_64 : Package shipping development files for php74
php74-unit-php.x86_64 : PHP module for NGINX Unit
php74-php-devel.x86_64 : Files needed for building PHP extensions
php74-php-pgsql.x86_64 : A PostgreSQL database module for PHP
php74-php-pinba.x86_64 : Client extension for Pinba statistics server
php74-php-bcmath.x86_64 : A module for PHP applications for using the bcmath
php74-php-brotli.x86_64 : Brotli Extension for PHP
php74-php-common.x86_64 : Common files for PHP
php74-php-pspell.x86_64 : A module for PHP applications for using pspell
php74-php-recode.x86_64 : A module for PHP applications for using the recode
php74-php-snappy.x86_64 : Snappy Extension for PHP
php74-php-sodium.x86_64 : Wrapper for the Sodium cryptographic library
php74-php-sqlsrv.x86_64 : Microsoft Drivers for PHP for SQL Server
php74-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
php74-php-enchant.x86_64 : Enchant spelling extension for PHP applications
php74-php-libvirt.x86_64 : PHP language binding for Libvirt
php74-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
php74-php-opcache.x86_64 : The Zend OPcache
php74-php-process.x86_64 : Modules for PHP script using system process
php74-php-embedded.x86_64 : PHP library for embedding in applications
php74-php-mbstring.x86_64 : A module for PHP applications which need multi-byte
php74-php-phalcon4.x86_64 : Phalcon Framework
php74-php-componere.x86_64 : Composing PHP classes at runtime
php74-php-litespeed.x86_64 : LiteSpeed Web Server PHP support
php74-php-maxminddb.x86_64 : MaxMind DB Reader extension
php74-php-pdo-dblib.x86_64 : PDO driver for Microsoft SQL Server and Sybase
php74-php-phpiredis.x86_64 : Client extension for Redis
php74-php-smbclient.x86_64 : PHP wrapper for libsmbclient
php74-php-wkhtmltox.x86_64 : HTML Converter
php74-php-libvirt-doc.noarch : Document of php-libvirt
php74-php-snuffleupagus.x86_64 : Security module for PHP
php74-php-zephir-parser.x86_64 : Zephir parser extension
php74-php-horde-horde-lz4.x86_64 : Horde LZ4 Compression Extension
[/php]
نصب ماژولهای php 7.x در CentOS 8
برای نمونه، برای نصب پشتیبانی گرافیکی و پایگاه داده مینویسیم:
[php]
sudo yum install php-mysqlnd php-gd
[/php]
نصبهای رایج وردپرس بر روی CentOS 8 نیازمند افزونهها یا ماژولهای php زیر خواهند بود:
[php]
sudo yum install php-mysqlnd php-gd php-pecl-zip php-mbstring php-xml php-opcache php-pecl-imagick
[/php]
نحوه انجام تنظیمات در 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 اینترپرایز استفاده نماید.

