399 lines
16 KiB
Markdown
399 lines
16 KiB
Markdown
<p dir="rtl" align="center"> بسم الله الرحمن الرحیم </p>
|
|
|
|
# <p dir="rtl" align="center"> نحوه نصب PHP 8.2 روی Ubuntu 22.04|20.04|18.04 </p> #
|
|
|
|
## <p dir="rtl" align="right"> گام اول: به روزرسانی سیستم اوبونتو </p> ##
|
|
|
|
<p dir="rtl" align="right">به روز رسانیها را بررسی کنید و قبل از انجام هر اقدام دیگری آنها را نصب کنید. </p>
|
|
|
|
```r
|
|
sudo apt update && sudo apt -y upgrade
|
|
```
|
|
<p dir="rtl" align="right"> پس از ارتقا، کش APT را پاک کنید.</p>
|
|
|
|
```r
|
|
sudo apt autoremove
|
|
```
|
|
<p dir="rtl" align="right">درخط فرمان دستور زیر را اجرا کنید، این دستور بررسی می کند که آیا نیاز به راه اندازی مجدد است یا خیر و مطابق با آن عمل می کند.</p>
|
|
|
|
```r
|
|
[ -f /var/run/reboot-required ] && sudo reboot -f
|
|
```
|
|
<p dir="rtl" align="right">جزئیات انتشار سیستم عامل را می توان با استفاده از دستورات داده شده در اینجا بررسی کرد.</p>
|
|
|
|
```r
|
|
cat /etc/os-release
|
|
```
|
|
<p dir="rtl" align="right">خروجی دستور بالا:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white"-->
|
|
PRETTY_NAME="Ubuntu 22.04.1 LTS"<br>
|
|
NAME="Ubuntu"<br>
|
|
VERSION_ID="22.04"<br>
|
|
VERSION="22.04.1 LTS (Jammy Jellyfish)"<br>
|
|
VERSION_CODENAME=jammy<br>
|
|
ID=ubuntu<br>
|
|
ID_LIKE=debian<br>
|
|
HOME_URL="https://www.ubuntu.com/"<br>
|
|
SUPPORT_URL="https://help.ubuntu.com/"<br>
|
|
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"<br>
|
|
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"<br>
|
|
UBUNTU_CODENAME=jammy<br>
|
|
</p>
|
|
|
|
## <p dir="rtl" align="right"> گام دوم: مخزن Surý PHP APT را اضافه کنید </p> ##
|
|
|
|
<p dir="rtl" align="right">برای نصب بسته های PHP 8.2 روی اوبونتو از Ondřej Surýs PHP PPA استفاده کنید که آخرین نسخه های پایدار PHP را برای سیستم های اوبونتو و Debian است. </p>
|
|
|
|
<p dir="rtl" align="right"> * برای اوبونتو 18.04 این مخزن حاوی بسته های PHP 8.2 نیست. راهنمای ما در مورد ساختن از منبع را از پیوند زیر بررسی کنید </p>
|
|
|
|
[Build and Install PHP 8,7 on Ubuntu 18.04 (Bionic Beaver)](https://computingforgeeks.com/install-php-8-7-on-ubuntu-18-bionic-beaver/)
|
|
|
|
<p dir="rtl" align="right">قبل از افزودن مخزن، چند بسته وابسته را نصب کنید. </p>
|
|
|
|
```r
|
|
sudo apt update
|
|
sudo apt install -y lsb-release gnupg2 ca-certificates apt-transport-https software-properties-common
|
|
```
|
|
|
|
<p dir="rtl" align="right">دستورات زیر را در خط فرمان اجرا کنید تا Surý PPA را به سیستم خود اضافه کنید.</p>
|
|
|
|
```r
|
|
sudo add-apt-repository ppa:ondrej/php
|
|
```
|
|
<p dir="rtl" align="right">اجرای موفقیت آمیز دستور </p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white;">
|
|
PPA publishes dbgsym, you may need to include 'main/debug' component<br>
|
|
Repository: 'deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu/ jammy main'<br>
|
|
Description:<br>
|
|
Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.<br>
|
|
<br>
|
|
Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa<br>
|
|
<br>
|
|
You can get more information about the packages at https://deb.sury.org<br>
|
|
<br>
|
|
IMPORTANT: The <foo>-backports is now required on older Ubuntu releases.<br>
|
|
<br>
|
|
BUGS&FEATURES: This PPA now has a issue tracker:<br>
|
|
https://deb.sury.org/#bug-reporting<br>
|
|
<br>
|
|
CAVEATS:<br>
|
|
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman<br>
|
|
2. If you are using apache2, you are advised to add ppa:ondrej/apache2<br>
|
|
3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline<br>
|
|
or ppa:ondrej/nginx<br>
|
|
<br>
|
|
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.<br>org/<br>
|
|
<br>
|
|
WARNING: add-apt-repository is broken with non-UTF-8 locales, see<br>
|
|
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:<br>
|
|
<br>
|
|
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php<br>
|
|
More info: https://launchpad.net/~ondrej/+archive/ubuntu/php<br>
|
|
Adding repository.<br>
|
|
Press [ENTER] to continue or Ctrl-c to cancel.<br>
|
|
Adding deb entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list<br>
|
|
Adding disabled deb-src entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list<br>
|
|
Adding key to /etc/apt/trusted.gpg.d/ondrej-ubuntu-php.gpg with fingerprint 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C<br>
|
|
Hit:1 https://mirror.hetzner.com/ubuntu/packages jammy InRelease<br>
|
|
Hit:2 https://mirror.hetzner.com/ubuntu/packages jammy-updates InRelease<br>
|
|
Hit:3 https://mirror.hetzner.com/ubuntu/packages jammy-backports InRelease<br>
|
|
Hit:4 https://mirror.hetzner.com/ubuntu/security jammy-security InRelease<br>
|
|
Get:5 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease [23.9 kB]<br>
|
|
Get:6 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 Packages [108 kB]<br>
|
|
Get:7 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main Translation-en [33.3 kB]<br>
|
|
Fetched 166 kB in 1s (120 kB/s)<br>
|
|
Reading package lists... Done<br>
|
|
</p>
|
|
|
|
|
|
<p dir="rtl" align="right">با اجرای دستور زیر می توانید به صورت دستی تأیید کنید که مخزن کار می کند.</p>
|
|
|
|
```r
|
|
sudo apt update
|
|
```
|
|
<p dir="rtl" align="right">خروجی دستور بالا:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white;">
|
|
Hit:1 https://mirror.hetzner.com/ubuntu/packages jammy InRelease<br>
|
|
Hit:2 https://mirror.hetzner.com/ubuntu/packages jammy-updates InRelease<br>
|
|
Hit:3 https://mirror.hetzner.com/ubuntu/packages jammy-backports InRelease<br>
|
|
Hit:4 https://mirror.hetzner.com/ubuntu/security jammy-security InRelease<br>
|
|
Hit:5 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease<br>
|
|
Reading package lists... Done<br>
|
|
Building dependency tree... Done<br>
|
|
Reading state information... Done<br>
|
|
</p>
|
|
|
|
## <p dir="rtl" align="right"> گام سوم: نصب PHP 8.2 روی Ubuntu </p> ##
|
|
<p dir="rtl" align="right">هنگامی که PPA اضافه شد، از دستور apt برای نصب PHP 8.2 و سایر ماژول های PHP مرتبط روی سرور اوبونتو استفاده کنید.</p>
|
|
|
|
```r
|
|
sudo apt install php8.2
|
|
```
|
|
<p dir="rtl" align="right">خروجی دستور بالا:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white;">
|
|
The following additional packages will be installed:<br>
|
|
apache2 apache2-bin apache2-data apache2-utils bzip2 file libapache2-mod-php8.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3<br> libaprutil1-ldap liblua5.3-0 mailcap mime-support php-common<br>
|
|
php8.2-cli php8.2-common php8.2-opcache php8.2-readline ssl-cert<br>
|
|
Suggested packages:<br>
|
|
apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser bzip2-doc php-pear<br>
|
|
The following NEW packages will be installed:<br>
|
|
apache2 apache2-bin apache2-data apache2-utils bzip2 file libapache2-mod-php8.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3<br> libaprutil1-ldap liblua5.3-0 mailcap mime-support php-common php8.2<br>
|
|
php8.2-cli php8.2-common php8.2-opcache php8.2-readline ssl-cert<br>
|
|
0 upgraded, 21 newly installed, 0 to remove and 2 not upgraded.<br>
|
|
Need to get 6,990 kB of archives.<br>
|
|
After this operation, 29.8 MB of additional disk space will be used.<br>
|
|
Do you want to continue? [Y/n] y<br>
|
|
</p>
|
|
<p dir="rtl" align="right">نصب بسته را طبق درخواست با کلید Y بپذیرید.</p>
|
|
<p dir="rtl" align="right">برای بررسی نسخه PHP که در حال حاضر روی سیستم نصب شده است دستور زیر را اجرا کنید:</p>
|
|
|
|
```r
|
|
php -v
|
|
```
|
|
<p dir="rtl" align="right">یا دستور:</p>
|
|
|
|
```r
|
|
php --version
|
|
```
|
|
<p dir="rtl" align="right">خروجی:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white;">
|
|
PHP 8.2.7 (cli) (built: Jun 8 2023 15:27:40) (NTS) <br>
|
|
Copyright (c) The PHP Group<br>
|
|
Zend Engine v4.2.7, Copyright (c) Zend Technologies<br>
|
|
with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies<br>
|
|
</p>
|
|
|
|
## <p dir="rtl" align="right"> گام چهارم: نصب ماژولهای PHP 8.2 </p> ##
|
|
<p dir="rtl" align="right">ماژول های PHP کتابخانه های نرم افزاری هستند که برای افزودن قابلیت به PHP ایجاد شده اند. این ماژولها معمولاً به زبان C نوشته می شوند و می توانید به صورت پویا در PHP بارگذاری کنید یا به عنوان اشیاء مشترک کامپایل کنید.
|
|
<br>
|
|
اگر میخواهید ماژولهای PHP 8.2 را روی سیستم اوبونتو نصب کنید، از apt package manager با دستور داده شده در اینجا استفاده کنید:
|
|
</p>
|
|
|
|
```r
|
|
sudo apt install -y php8.2-<module-name>
|
|
```
|
|
|
|
<p dir="rtl" align="right">جایی که <module-name> با نام واقعی ماژولی که قرار است نصب شود جایگزین می شود.</p>
|
|
<p dir="rtl" align="right">در این مثال ما ماژول PHP 8.2 fpm را از PPA که قبلا اضافه شده بود نصب می کنیم.</p>
|
|
|
|
```r
|
|
sudo apt install php8.2-fpm
|
|
```
|
|
<p dir="rtl" align="right">خروجی دستور بالا:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white;">
|
|
Reading package lists... Done<br>
|
|
Building dependency tree... Done<br>
|
|
Reading state information... Done<br>
|
|
Suggested packages:<br>
|
|
php-pear<br>
|
|
The following NEW packages will be installed:<br>
|
|
php8.2-fpm<br>
|
|
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.<br>
|
|
Need to get 1,886 kB of archives.<br>
|
|
After this operation, 5,756 kB of additional disk space will be used.
|
|
Get:1 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 php8.2-fpm amd64 8.2.1-2+ubuntu22.04.1+deb.sury.org+1<br> [1,886 kB]<br>
|
|
Fetched 1,886 kB in 0s (5,211 kB/s)<br>
|
|
Selecting previously unselected package php8.2-fpm.<br>
|
|
(Reading database ... 56412 files and directories currently installed.)<br>
|
|
Preparing to unpack .../php8.2-fpm_8.2.1-2+ubuntu22.04.1+deb.sury.org+1_amd64.deb ...<br>
|
|
Unpacking php8.2-fpm (8.2.1-2+ubuntu22.04.1+deb.sury.org+1) ...<br>
|
|
Setting up php8.2-fpm (8.2.1-2+ubuntu22.04.1+deb.sury.org+1) ...<br>
|
|
....<br>
|
|
|
|
<p dir="rtl" align="right">:نصب ماژول های پرکاربرد</p>
|
|
|
|
```r
|
|
sudo apt install php8.2-{bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
|
|
```
|
|
<p dir="rtl" align="right">:ماژول های نصب شده را می توان با دستور زیر فهرست کرد</p>
|
|
|
|
```r
|
|
php -m
|
|
```
|
|
|
|
<p dir="rtl" align="right">خروجی:</p>
|
|
<p style="background-color: rgb(50, 50, 50); color:white"-->
|
|
[PHP Modules]<br>
|
|
bcmath<br>
|
|
bz2<br>
|
|
calendar<br>
|
|
Core<br>
|
|
ctype<br>
|
|
curl<br>
|
|
date<br>
|
|
dom<br>
|
|
exif<br>
|
|
FFI<br>
|
|
fileinfo<br>
|
|
filter<br>
|
|
ftp<br>
|
|
gd<br>
|
|
gettext<br>
|
|
hash<br>
|
|
iconv<br>
|
|
intl<br>
|
|
json<br>
|
|
ldap<br>
|
|
libxml<br>
|
|
mbstring<br>
|
|
mysqli<br>
|
|
mysqlnd<br>
|
|
openssl<br>
|
|
pcntl<br>
|
|
pcre<br>
|
|
PDO<br>
|
|
pdo_mysql<br>
|
|
pdo_pgsql<br>
|
|
pgsql<br>
|
|
Phar<br>
|
|
posix<br>
|
|
readline<br>
|
|
Reflection<br>
|
|
session<br>
|
|
shmop<br>
|
|
SimpleXML<br>
|
|
soap<br>
|
|
sockets<br>
|
|
sodium<br>
|
|
SPL<br>
|
|
standard<br>
|
|
sysvmsg<br>
|
|
sysvsem<br>
|
|
sysvshm<br>
|
|
tokenizer<br>
|
|
xml<br>
|
|
xmlreader<br>
|
|
xmlwriter<br>
|
|
xsl<br>
|
|
Zend OPcache<br>
|
|
zip<br>
|
|
zlib<br>
|
|
<br>
|
|
[Zend Modules]<br>
|
|
Zend OPcache<br>
|
|
</p>
|
|
|
|
## <p dir="rtl" align="right"> گام پنجم: استفاده از PHP با Nginx / Apache</p> ##
|
|
|
|
<p dir="rtl" align="right">ما هر دو پیکربندی وب سرور انجینکس و آپاچی را برای میزبانی برنامه پی-اچ-پی شما در نظر خواهیم گرفت.</p>
|
|
|
|
### <p dir="rtl" align="right"> میزبانی برنامه PHP با وب سرور Nginx</p> ###
|
|
|
|
<p dir="rtl" align="right">با Nginx، کد PHP معمولاً توسط یک فرآیند جداگانه مانند PHP-FPM (مدیر فرآیند FastCGI) اجرا می شود. PHP-FPM دیمونی است که به درخواست های دریافتی PHP گوش می دهد و آنها را در یک فرآیند جداگانه اجرا می کند. Nginx فقط درخواست های دریافتی را به PHP-FPM ارسال می کند که در آنجا اجرا می شوند.</p>
|
|
<p dir="rtl" align="right">وب سرور Nginx و extension FPM را نصب کنید.</p>
|
|
|
|
```r
|
|
sudo apt install nginx php8.2-fpm
|
|
```
|
|
|
|
<p dir="rtl" align="right">پیکربندی سرور Nginx خود را باز کنید و بلوک زیر را داخل بلوک http اضافه کنید تا درخواستهای PHP را برای اجرا توسط PHP-FPM پیکربندی کنید:</p>
|
|
|
|
```r
|
|
sudo nano /etc/nginx/nginx.conf
|
|
```
|
|
|
|
<p dir="rtl" align="right">در فایل باز شده متن زیر را قرار دهید</p>
|
|
|
|
```r
|
|
server {
|
|
listen 80;
|
|
|
|
server_name mysite.example.com;
|
|
root /var/www/mysite;
|
|
index index.php index.html;
|
|
|
|
location ~ \.php$ {
|
|
include snippets/fastcgi-php.conf;
|
|
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
|
|
}
|
|
}
|
|
```
|
|
|
|
<p dir="rtl" align="right">برای ذخیره ی فایل کلید ترکیبی ctrl+ O را بزنید. </p>
|
|
<p dir="rtl" align="right">برای خروج از فایل و برگشتن به خط فرمان کلید ترکیبی ctrl + X را بزنید. </p>
|
|
<b>
|
|
<p dir="rtl" align="right">اعتبار سنجی پیکربندی انجینکس با دستور زیر انجام می گیرد:</p>
|
|
|
|
```r
|
|
sudo nginx -t
|
|
```
|
|
|
|
<p dir="rtl" align="right">خروجی دستور فوق:</p>
|
|
|
|
<p style="background-color: rgb(50, 50, 50); color:white"-->
|
|
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok <br>
|
|
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
|
</p>
|
|
<p dir="rtl" align="right">نشان دهنده درستی پیکربندی است. "ok" , "successful"</p>
|
|
|
|
### <p dir="rtl" align="right">میزبانی برنامه پی-اچ-پی با وب سرور آپاچی</p> ###
|
|
|
|
## <p dir="rtl" align="right"> در آپاچی می توانیم از یک ماژول داخلی به نام mod_php برای پردازش کدهای PHP به طور مستقیم در فرآیند آپاچی استفاده کنیم. </p> ##
|
|
<p dir="rtl" align="right">اما ابتدا باید بسته وب سرور آپاچی، PHP و پسوند Apache PHP را نصب کنید:</p>
|
|
|
|
```r
|
|
sudo apt install apache2 libapache2-mod-php8.2
|
|
```
|
|
<p dir="rtl" align="right">اگر دستور فوق جواب نداد به جای آن دستور زیر را اجرا کنید:</p>
|
|
|
|
```r
|
|
sudo apt install apache2 php8.2-fpm
|
|
```
|
|
|
|
<p dir="rtl" align="right">ماژول mod_php فعالسازی:</p>
|
|
|
|
```r
|
|
sudo a2enmod php8.2
|
|
```
|
|
<p dir="rtl" align="right">برای نمایش آزمایشی </p>
|
|
<p dir="rtl" align="right">خط فرمان را باز کنید و دستورات زیر را اجرا کنید:.</p>
|
|
|
|
```r
|
|
cd /var/www/
|
|
/var/www$ ls
|
|
```
|
|
<p style="background-color:black;color:white">
|
|
خروجی:<br>
|
|
html
|
|
</p>
|
|
|
|
<p dir="rtl" align="right"> اگر پوشه ی html وجود نداشت با دستور زیر این پوشه را ایجاد کنید:</p>
|
|
|
|
```r
|
|
sudo mkdir html
|
|
```
|
|
|
|
<p dir="rtl" align="right"> سپس فایل آزمایشی را ایجاد کنید:</p>
|
|
|
|
```r
|
|
cd html/
|
|
sudo nano testPHP.php
|
|
```
|
|
|
|
<p dir="rtl" align="right">در فایل باز شده متن زیر را قرار دهید</p>
|
|
|
|
```r
|
|
<?php
|
|
|
|
phpinfo();
|
|
|
|
?>
|
|
```
|
|
<p dir="rtl" align="right"> با کلید ترکیبی Ctrl+O تغییرات را ذخیره کنید و با کلید ترکیبی Ctrl+X از فایل خارج شوید.</p>
|
|
|
|
<p dir="rtl" align="right">بعد از پیکربندی سرویس آپاچی را دوباره راه اندازی کنید:</p>
|
|
|
|
```r
|
|
sudo systemctl restart apache2
|
|
```
|
|
<p dir="rtl" align="right">از URL صفحه وب بازدید کنید:</p>
|
|
|
|
```r
|
|
http://localhost/testPHP.php
|
|
```
|
|
|
|
|
|
## <p dir="rtl" align="right"> [منبع:](https://computingforgeeks.com/how-to-install-php-8-2-on-ubuntu/) </p> ##
|
|
|
|
<p dir="rtl" align="center">صلوات</p>
|