چگونه میتوان نصب 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 نصب کنید؛ برای این منظور باید از فرمان زیر کمک بگیرید:
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 نصب کنید. برای این منظور فرمان زیر را اجرا نمایید:
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 زیر را اجرا کنید:
sudo yum update
اگر یک کرنل جدید نصب شده باشد، سیستم لینوکس را دوباره راهاندازی و ریبوت کنید؛
sudo reboot
<h2>تشخیص و جستجوی نسخه php</h2> برای یافتن نسخه php در سرور لینوکس CentOS اینترپرایز 8 به روش زیر عمل کنید:
-sudo yum search php
<img class=”wp-image-13017 aligncenter” src=”https://s3.me-central-1.amazonaws.com/s3.aws.ariaservice.online/app/uploads/2020/01/07144613/Search-PHP-version-on-CentOS-8-262×300.png” alt=”جستجوی نسخه php” width=”382″ height=”541″ /> ممکن است چند نسخه مختلف از 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
مثال زیر نشان میدهد که نسخههای 7.2، 7.3 و 7.4 برای نصب در دسترس هستند.
sudo yum module list 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
به صورت پیشفرض، نسخه 7.2 نصب میشود که با علامت [d] مشخص میگردد.
یادداشتی بر فعالسازی نسخههای مختلف php از جمله 7.3 و 7.4 در CentOS
اکیداً توصیه میشود که از نسخه پیشفرض 7.2 از php برای تولید برنامههای تحتوب استفاده کنید. با این وجود اگر به نسخههای 7.3 یا 7.4 احتیاج داشتید، از فرمانهای زیر کمک بگیرید. در نتیجه، ابزارهای Remi’s repo برای شما فعال میگردند.
sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
فعالسازی نسخه پیشفرض
نسخه پیشفرض php به 7.2 تنظیم و قفل شده است. امّا در همین حال، شما باید قادر باشید نسخه پیشفرض را به دلخواه خودتان تنظیم کنید. برای این منظور، فرمانهای زیر را تایپ میکنید:
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 7.4 بر روی CentOS 8 با استفاده از فرمان yum
اگر میخواهید نسخه 7.4 از php را بر روی لینوکس CentOS 8 نصب کنید، ابتدا بایستی ابزار Remi repo را فعال کنید و سپس با استفاده از yum، نسخه پیشفرض را انتخاب نمایید.
برای نسخه 7.3 از 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 7.x را بر روی سرور ابری CentOS 8 شروع کنید. برای این منظور، فرمان زیر را تایپ میکنید:
sudo yum install php php-fpm
اگر به هر دلیلی نمیخواهید سرور Apache را نصب کنید، فرمان زیر را تایپ نمایید:
sudo yum install php-fpm php-common php-cli
فعالسازی سرویس php-fpm
فرمان systemctl زیر را تایپ کنید:
sudo systemctl enable php-fpm.service
با فرمان زیر، سرویس php-fpm را راهاندازی کنید:
sudo systemctl start php-fpm.service sudo systemctl status php-fpm.service
برای کسب اطلاعات بیشتر، نحوه راهاندازی، بارگذاری و شروع سرویس PHP-fpm را ببینید:
sudo systemctl stop php-fpm.service sudo systemctl restart php-fpm.service
چگونه php را برای کار با سرور Nginx تنظیم کنیم؟
ابتدا باید از فرمان cat، تنظیمات سرور PHP-FPM FastCGI را پیدا کنید:
cat /etc/nginx/conf.d/php-fpm.conf
مطمئن شوید که سوکت یونیکس فعال است و کار میکند. برای این منظور داریم:
ls -l /run/php-fpm/www.sock
تنظیمات نمونه php-fpm برای CentOS 8 با سرور Nginx
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; }
راهاندازی دوباره سرویس یا سرور nginx
دوباره فرمان زیر را اجرا کنید:
sudo systemctl restart nginx.service
نسخه php را با فرمان زیر بررسی نمایید:
php –version
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 7.x در CentOS 8 همراه با سرور Nginx
یک فایل جدید به صورت زیر ایجاد کنید:
sudo vi /usr/share/nginx/html/hello.php
کد php زیر را اضافه کنید:
<?php echo "Hello, world!\n"; ?>
فایل را ذخیره کرده و در vim ببندید. سپس آن را به صورت زیر با فرمان curl اجرا نمایید:
curl -I http://localhost/hello.php curl http://localhost/hello.php<br data-mce-bogus="1">
مثال برنامه demo.php
در مرحله بعد، به صورت زیر یک فایل جدید ایجاد کنید.
sudo vi /usr/share/nginx/html/demo.php
و کد زیر را هم ضمیمه کنید:
<?php phpinfo(); ?>
فایل را ذخیره کنید و ببندید. یک مرورگر وب اجرا کنید و آدرس زیر را در آن تایپ نمایید:
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 نصب کنیم؟
میتوانید به صورت زیر ماژولها را جستجو کرده و نصب نمایید:
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 ##
======================== 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 7.x در CentOS 8
برای نمونه، برای نصب پشتیبانی گرافیکی و پایگاه داده مینویسیم:
sudo yum install php-mysqlnd php-gd
نصبهای رایج وردپرس بر روی CentOS 8 نیازمند افزونهها یا ماژولهای 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 اینترپرایز استفاده نماید.