Pasang PHP 8.1 dan Sediakan Persekitaran Pembangunan Tempatan pada Ubuntu


Versi terdahulu tutorial ini ditulis oleh alenaholligan.

Pengenalan

PHP adalah bahasa skrip sisi pelayan sumber terbuka yang popular yang direka untuk pembangunan web dan menguasai sebahagian besar internet dari blog dan laman e-dagang hingga aplikasi berskala besar. Dengan setiap versi baru, PHP memberikan prestasi yang lebih baik, keselamatan, dan ciri pembangunan moden untuk membantu pembangun membina perisian yang kukuh dan boleh diskala.

PHP 8.1 adalah versi stabil yang disokong untuk jangka panjang dan membawa peningkatan ketara serta ciri bahasa baru sambil mengekalkan kebolehpercayaan. Memasang PHP 8.1 pada Ubuntu memastikan persekitaran pembangunan tempatan anda adalah terkini, selamat, dan serasi dengan rangka kerja dan platform yang banyak digunakan seperti WordPress, Laravel, dan aplikasi PHP tersuai.

Tutorial ini membimbing anda melalui pemasangan PHP 8.1 pada Ubuntu, mengkonfigurasinya dengan Apache atau Nginx, menyiapkan sambungan PHP penting, dan memasang Composer untuk pengurusan kebergantungan. Anda juga akan belajar cara mengesahkan pemasangan anda dan menyelesaikan masalah biasa.

Sebarkan aplikasi PHP anda dari GitHub menggunakan Platform Aplikasi Linux-Console.net. Biarkan Linux-Console.net menumpukan kepada pengembangan aplikasi anda.

Kesimpulan Utama

  • Pemasangan PHP 8.1 pada Ubuntu 22.04: Ubuntu 22.04 LTS termasuk PHP 8.1 dalam repositori lalai, membolehkan anda memasang versi PHP yang stabil dan disokong jangka panjang menggunakan apt tanpa PPA pihak ketiga. Ini memastikan kemas kini yang boleh dijangka, tampalan keselamatan, dan keserasian dengan rangka kerja PHP moden.

  • Sambungan PHP penting untuk projek dunia sebenar: Kebanyakan aplikasi PHP tahap produksi bergantung pada sambungan seperti mysql, curl, xml, mbstring, zip, gd, dan bcmath. Memasang sambungan ini lebih awal mengelakkan ralat semasa menjalankan program kemudian dan memastikan keserasian dengan rangka kerja seperti Laravel, Symfony, dan WordPress.

  • Memilih Apache atau Nginx untuk pembangunan PHP: Apache boleh menjalankan PHP secara terus menggunakan mod_php, manakala Nginx memerlukan PHP‑FPM untuk pengendalian permintaan. Kedua-dua pendekatan berfungsi dengan baik untuk pembangunan tempatan, tetapi PHP‑FPM lebih hampir meniru persekitaran pengeluaran moden dan lebih baik dalam menampung beban tinggi.

  • Composer sebagai asas workflow PHP moden: Composer menguruskan kebergantungan projek melalui composer.json dan composer.lock, memastikan binaan yang konsisten merentas mesin. Ia penting untuk memasang rangka kerja, menjana autoloader, dan mengekalkan versi kebergantungan yang boleh dipercayai dalam projek PHP kolaboratif.

  • Menetapkan PHP khusus untuk pembangunan: Persekitaran pembangunan mendapat manfaat daripada laporan ralat yang terperinci, had memori yang lebih tinggi, dan masa pelaksanaan yang lebih lama. Menyesuaikan tetapan ini dalam php.ini membantu mengenal pasti pepijat dengan cepat semasa pembangunan, tetapi ia mesti sentiasa dikembalikan untuk penggunaan pengeluaran.

  • Penyelesaian masalah dan pengesahan adalah sebahagian daripada persediaan: Memeriksa PHP dengan php -v, menyemak sambungan yang dimuatkan, dan meninjau log Apache, Nginx, atau PHP‑FPM adalah langkah penting. Kebanyakan masalah persediaan berpunca daripada sambungan yang hilang, kebenaran, atau arahan pelayan web yang salah konfigurasi.

Prasyarat

Untuk menyelesaikan tutorial ini, anda memerlukan:

  • Mesin tempatan atau pelayan maya yang menjalankan Ubuntu (serasi dengan Ubuntu 22.04 LTS dan versi yang lebih baru)
  • Akses pentadbiran (sudo) ke mesin
  • Sambungan internet yang aktif
  • Kemahiran asas dengan baris arahan

Jika anda sedang menyediakan server Ubuntu baru, lihat panduan kami mengenai Persediaan Server Awal dengan Ubuntu.

Langkah 1 — Menyediakan PHP 8.1

Anda akan menyelesaikan pemasangan dan penyediaan melalui baris perintah, iaitu cara berinteraksi dengan komputer secara bukan grafik. Maksudnya, daripada mengklik pada butang, anda akan menaip teks dan menerima maklum balas daripada komputer anda melalui teks juga.

Baris perintah, juga dikenali sebagai shell atau terminal, boleh membantu anda mengubah suai dan mengautomasikan banyak tugas yang anda lakukan di komputer setiap hari dan merupakan alat penting bagi pembangun perisian. Terdapat banyak arahan terminal untuk dipelajari yang boleh membolehkan anda melakukan perkara yang lebih berkuasa. Artikel Pengenalan kepada Terminal Linux boleh membantu anda lebih memahami terminal.

Nota: Jika anda baru menggunakan Ubuntu, pertimbangkan untuk menyemak dokumentasi Ubuntu kami untuk panduan pentadbiran sistem tambahan.

Pada Ubuntu, anda boleh mencari aplikasi Terminal dengan mengklik ikon Ubuntu di sudut kiri atas skrin anda dan menaip terminal dalam bar carian. Klik pada ikon aplikasi Terminal untuk membukanya. Sebagai alternatif, anda boleh menekan kekunci CTRL, ALT, dan T pada papan kekunci anda pada masa yang sama untuk membuka aplikasi Terminal secara automatik.

Nota: Pada Ubuntu 22.04 LTS, PHP 8.1 tersedia dalam repositori lalai. Apabila anda memasang PHP tanpa menyatakan versi pada Ubuntu 22.04, sistem secara lalai akan memasang PHP 8.1.

Jika anda perlu menguruskan pelbagai versi PHP atau memasang versi yang berbeza, pertimbangkan untuk menggunakan phpenv atau phpbrew untuk pengurusan versi.

Jalankan arahan berikut untuk mengemas kini senarai pakej yang tersedia, kemudian pasang PHP 8.1:

sudo apt update
sudo apt install --no-install-recommends php8.1

Flag --no-install-recommends akan memastikan bahawa pakej lain seperti pelayan web Apache tidak dipasang.

Periksa maklumat versi PHP anda dengan arahan berikut:

php -v

Anda akan menerima output seperti ini:

PHP 8.1.2-1ubuntu2.22 (cli) (built: Jul 15 2025 12:11:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.22, Copyright (c), by Zend Technologies

Tetapan ini telah diuji pada Ubuntu 22.04 LTS menggunakan pakej PHP 8.1 daripada repositori rasmi Ubuntu.

Pasang sambungan PHP penting untuk pembangunan web:

sudo apt install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

Arahan ini akan memasang modul berikut:

  • php8.1-cli - penterjemah arahan, berguna untuk menguji skrip PHP dari shell atau melakukan tugas skrip shell am
  • php8.1-common - dokumentasi, contoh, dan modul biasa untuk PHP
  • php8.1-mysql - untuk bekerja dengan pangkalan data MySQL
  • php8.1-zip - untuk bekerja dengan fail yang dimampatkan
  • php8.1-gd - untuk bekerja dengan imej
  • php8.1-mbstring - digunakan untuk menguruskan rentetan bukan ASCII
  • php8.1-curl - membolehkan anda membuat permintaan HTTP dalam PHP
  • php8.1-xml - untuk bekerja dengan data XML
  • php8.1-bcmath - digunakan apabila bekerja dengan nombor titik apungan tepat

Fail konfigurasi PHP disimpan di /etc/php/8.1/. Fail konfigurasi utama ialah php.ini, yang mungkin terletak di direktori yang berbeza bergantung pada tetapan anda:

  • Konfigurasi CLI: /etc/php/8.1/cli/php.ini
  • Konfigurasi Apache: /etc/php/8.1/apache2/php.ini (jika Apache dipasang)
  • Konfigurasi PHP-FPM: /etc/php/8.1/fpm/php.ini (jika PHP-FPM dipasang)

Sahkan sambungan yang dipasang:

php -m

Ini menyenaraikan semua modul PHP yang dimuatkan. Jika php -v menunjukkan versi yang berbeza daripada yang dijangka, anda mungkin mempunyai beberapa versi PHP yang dipasang. Gunakan php8.1 -v untuk mengesahkan PHP 8.1 secara khusus.

Anda telah memasang PHP dan mengesahkan versi yang anda jalankan. Anda juga telah memasang sebarang modul PHP yang diperlukan dan berjaya menyenaraikan modul yang telah anda muatkan.

Langkah 2 — Mengkonfigurasi PHP dengan Apache

Pasang modul Apache PHP:

sudo apt install libapache2-mod-php8.1

Dayakan modul dan mulakan semula Apache:

sudo a2enmod php8.1
sudo systemctl restart apache2

Memahami mod_php: Modul mod_php menyemai PHP terus ke dalam proses Apache. Apabila Apache menerima permintaan untuk fail PHP, ia memprosesnya secara dalaman menggunakan penerjemah PHP yang disemai. Ini berbeza dengan Nginx, yang memerlukan perkhidmatan PHP-FPM berasingan. Arahan a2enmod mencipta pautan simbolik dalam /etc/apache2/mods-enabled/ untuk mengaktifkan modul tersebut.

Sahkan bahawa Apache memproses PHP dengan betul dengan membuat fail ujian di akar dokumen Apache (biasanya /var/www/html):

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Lawati http://localhost/info.php di pelayar anda. Anda sepatutnya melihat halaman maklumat konfigurasi PHP. Padamkan fail ini selepas ujian untuk keselamatan:

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

Menangani Masalah Apache PHP

Jika Apache tidak boleh start selepas memasang mod_php:

Periksa log ralat Apache:

sudo tail -20 /var/log/apache2/error.log

Isu biasa termasuk:

  • Modul PHP bertentangan: Jika anda mempunyai pelbagai versi PHP, nyahdayakan modul PHP lain terlebih dahulu dengan sudo a2dismod php7.4 (jika ada)
  • Ralat sintaks dalam konfigurasi Apache: Jalankan sudo apache2ctl configtest untuk semak

Jika anda melawat localhost dan melihat “It works! ” tetapi fail PHP dipaparkan sebagai teks biasa:

Ini bermakna Apache tidak memproses PHP. Periksa:

  1. Sahkan modul diaktifkan:
apache2ctl -M | grep php
  1. Jika tiada apa-apa yang muncul, modul belum dimuatkan. Aktifkan semula:
sudo a2enmod php8.1
sudo systemctl restart apache2
  1. Periksa bahawa fail PHP anda mempunyai sambungan yang betul (.php) dan mengandungi kod PHP

Jika anda mendapat ralat 403 Dilarang:

Semak kebenaran fail:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

Nota Keselamatan: Fungsi phpinfo() mendedahkan maklumat sistem secara terperinci. Jangan sesekali meninggalkan fail yang mengandungi phpinfo() di pelayan produksi.

Konfigurasi Hos Maya Apache

Untuk pembangunan tempatan dengan domain tersuai, buat hos maya:

sudo nano /etc/apache2/sites-available/example.local.conf

Tambah konfigurasi ini:

<VirtualHost *:80>
    ServerName example.local
    DocumentRoot /var/www/example.local
    <Directory /var/www/example.local>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  • ServerName: Nama domain untuk hos maya ini
  • DocumentRoot: Tempat fail PHP anda disimpan
  • AllowOverride All: Membenarkan fail .htaccess untuk menulis ganti tetapan Apache (diperlukan untuk rangka kerja seperti Laravel)
  • Require all granted: Membenarkan akses ke direktori

Buat direktori, aktifkan laman, dan mulakan semula Apache:

sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo a2ensite example.local.conf
sudo systemctl restart apache2

Tambah domain ke fail /etc/hosts anda untuk capaian setempat:

echo "127.0.0.1 example.local" | sudo tee -a /etc/hosts

Memilih Antara Apache dan Nginx

Sebelum mengkonfigurasi pelayan web anda, pertimbangkan yang mana sesuai dengan keperluan anda:

CiriApache dengan mod_phpNginx dengan PHP-FPM
Pemprosesan PHPTertanam dalam proses ApachePerkhidmatan PHP-FPM berasingan
Penggunaan MemoriLebih tinggi (PHP dalam setiap proses Apache)Rendah (kolam proses berasingan)
PrestasiBaik untuk trafik rendah hingga sederhanaLebih baik untuk trafik tinggi dan permintaan serentak
KonfigurasiPersediaan awal yang lebih mudahLebih kompleks (memerlukan konfigurasi PHP-FPM)
Sokongan .htaccessSokongan asliTidak disokong (mestilah dikonfigurasi dalam blok pelayan)
Penggunaan ProduksiBiasa dalam hosting bersamaBiasa dalam penyebaran moden
Lengkung PembelajaranLebih mudah untuk pemulaLengkungan pembelajaran yang lebih curam
Kecekapan SumberKurang cekap di bawah beban tinggiLebih cekap di bawah beban tinggi

Bilakah untuk memilih Apache:

  • Anda biasa dengan Apache atau memerlukan sokongan .htaccess
  • Menyiapkan persekitaran pembangunan yang mudah
  • Bekerja dengan rangka kerja yang bergantung sepenuhnya pada .htaccess (sesetengah tetapan WordPress)
  • Anda lebih suka konfigurasi awal yang lebih mudah

Bilakah untuk memilih Nginx:

  • Anda memerlukan prestasi yang lebih baik di bawah beban tinggi
  • Anda ingin meniru persekitaran pengeluaran moden
  • Anda sedang membina aplikasi yang akan boleh berkembang
  • Anda lebih suka seni bina yang lebih moden

Kedua-duanya berfungsi dengan baik untuk pembangunan tempatan. Pilihannya sering bergantung kepada keutamaan peribadi atau infrastruktur sedia ada.

Langkah 3 — Mengkonfigurasi PHP dengan Nginx

Pasang PHP-FPM (Pengurus Proses FastCGI):

sudo apt install php8.1-fpm

Mulakan dan aktifkan PHP-FPM:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

Memahami PHP-FPM dan FastCGI: Tidak seperti mod_php Apache, Nginx tidak memproses PHP secara langsung. PHP-FPM (Pengurus Proses FastCGI) berfungsi sebagai perkhidmatan berasingan yang Nginx berkomunikasi menggunakan protokol FastCGI. FastCGI adalah protokol binari untuk menghubungkan program dengan pelayan web—ia lebih pantas daripada CGI tradisional kerana ia mengekalkan proses tetap hidup antara permintaan.

Apabila Nginx menerima permintaan untuk fail PHP, ia meneruskan permintaan itu ke PHP-FPM melalui soket Unix (atau sambungan TCP). PHP-FPM memproses kod PHP dan mengembalikan hasilnya kepada Nginx, yang kemudian menghantarnya kepada klien. Pemisahan ini membolehkan PHP-FPM menguruskan kolam prosesnya sendiri, meningkatkan prestasi dan pengurusan sumber.

Konfigurasi Blok Pelayan Nginx

Buat konfigurasi blok pelayan:

sudo nano /etc/nginx/sites-available/example.local

Tambah konfigurasi ini:

server {
    listen 80;
    server_name example.local;
    root /var/www/example.local;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Konfigurasi diterangkan:

  • root: Direktori di mana fail PHP anda terletak
  • location ~ \.php$: Memadankan semua permintaan yang berakhir dengan .php menggunakan regex
  • include snippets/fastcgi-php.conf: Menyertakan konfigurasi FastCGI lalai Nginx (menetapkan SCRIPT_FILENAME dan pembolehubah lain yang diperlukan)
  • fastcgi_pass unix:/var/run/php/php8.1-fpm.sock: Soket Unix yang didengar oleh PHP-FPM. Inilah cara Nginx berkomunikasi dengan PHP-FPM. Laluan soket ditetapkan dalam /etc/php/8.1/fpm/pool.d/www.conf

Dayakan tapak dan uji konfigurasi:

sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo ln -s /etc/nginx/sites-available/example.local /etc/nginx/sites-enabled/
sudo nginx -t

Jika ujian lulus, mulakan semula Nginx:

sudo systemctl restart nginx

Tambah domain ke /etc/hosts:

echo "127.0.0.1 example.local" | sudo tee -a /etc/hosts

Buat fail PHP ujian:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.local/info.php

Lawati http://example.local/info.php. Anda sepatutnya melihat halaman konfigurasi PHP. Hapuskan fail ujian selepas pengesahan:

sudo rm /var/www/example.local/info.php

Menyelesaikan Masalah Nginx PHP

Jika anda mendapat ralat “502 Bad Gateway”:

Ini bermakna Nginx tidak dapat berkomunikasi dengan PHP-FPM. Semak:

  1. Sahkan PHP-FPM sedang berjalan:
sudo systemctl status php8.1-fpm
  1. Periksa sama ada laluan soket adalah betul. Lokasi soket ditetapkan dalam /etc/php/8.1/fpm/pool.d/www.conf:
grep listen /etc/php/8.1/fpm/pool.d/www.conf

Anda sepatutnya melihat sesuatu seperti listen=/run/php/php8.1-fpm.sock. Laluan dalam konfigurasi Nginx anda mesti sepadan dengan tepat. Perlu diperhatikan bahawa /var/run sering adalah pautan simbolik ke /run, jadi kedua-dua laluan berfungsi.

  1. Periksa kebenaran fail soket:
ls -la /var/run/php/php8.1-fpm.sock

Socket itu perlu dimiliki oleh www-data atau pengguna yang menjalankan Nginx. Jika kebenaran salah:

sudo chown www-data:www-data /var/run/php/php8.1-fpm.sock
  1. Semak log ralat Nginx:
sudo tail -20 /var/log/nginx/error.log

Anda mungkin melihat ralat seperti:

connect() to unix:/var/run/php/php8.1-fpm.sock failed (2: No such file or directory)

Ini menunjukkan bahawa laluan soket adalah tidak betul atau PHP-FPM tidak berjalan.

Jika fail PHP dimuat turun dan bukannya dijalankan:

Ini bermakna Nginx tidak menghantar fail PHP kepada PHP-FPM. Semak:

  • Blok location ~ \.php$ wujud dalam konfigurasi pelayan anda
  • Arahan fastcgi_pass menunjuk ke soket yang betul
  • Anda telah memulakan semula Nginx selepas membuat perubahan

Jika anda mendapat ralat “Fail tidak dijumpai”:

Semak bahawa snippets/fastcgi-php.conf wujud:

ls -la /etc/nginx/snippets/fastcgi-php.conf

Fail ini menetapkan SCRIPT_FILENAME yang memberitahu PHP-FPM fail mana yang perlu dijalankan. Tanpanya, PHP-FPM tidak tahu fail mana yang perlu diproses.

Langkah 4 — Mengkonfigurasi PHP untuk Pembangunan

Sediakan PHP untuk pembangunan dengan menyesuaikan pelaporan ralat, tetapan paparan, dan had memori dalam php.ini. Tetapan ini berbeza daripada konfigurasi untuk pengeluaran.

PHP menggunakan fail konfigurasi berasingan untuk penggunaan CLI (baris arahan) dan pelayan web. Sunting fail yang sesuai:

Untuk CLI (apabila menjalankan PHP dari terminal):

sudo nano /etc/php/8.1/cli/php.ini

Untuk pelayan web (Apache atau Nginx dengan PHP-FPM):

# For Apache
sudo nano /etc/php/8.1/apache2/php.ini

# For PHP-FPM (Nginx)
sudo nano /etc/php/8.1/fpm/php.ini

Nota: Jika anda menggunakan CLI dan pelayan web, anda perlu mengkonfigurasi kedua-dua fail secara berasingan. Perubahan pada cli/php.ini tidak mempengaruhi permintaan web, dan perubahan pada apache2/php.ini atau fpm/php.ini tidak mempengaruhi skrip CLI.

Tetapan Pembangunan Asas

Cari dan kemas kini tetapan ini dalam fail php.ini anda:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = America/New_York

Apa yang setiap tetapan lakukan:

  • display_errors=On: Menunjukkan ralat PHP secara terus di pelayar (berguna untuk penyahpepijatan, berbahaya dalam pengeluaran)
  • display_startup_errors=On: Menunjukkan ralat yang berlaku semasa permulaan PHP
  • error_reporting=E_ALL: Melaporkan semua jenis ralat (amaran, notis, dll.)
  • log_errors=On: Menulis ralat ke dalam fail log
  • error_log: Tempat PHP menulis log ralat
  • memory_limit=256M: Memori maksimum yang boleh digunakan oleh skrip (tingkatkan jika anda mendapat ralat “memory exhausted”)
  • upload_max_filesize=64M: Saiz maksimum untuk fail yang dimuat naik
  • post_max_size=64M: Saiz maksimum untuk data POST (mestilah lebih besar daripada upload_max_filesize)
  • max_execution_time=300: Masa maksimum skrip boleh berjalan (dalam saat)
  • date.timezone: Menetapkan zon waktu lalai (gunakan zon waktu tempatan anda: Asia/Kolkata, Europe/London, UTC, dll.)

Amaran Pengeluaran: Jangan sekali-kali gunakan tetapan pembangunan ini dalam pengeluaran. Sentiasa tetapkan display_errors=Off dan gunakan tahap laporan ralat yang sesuai pada pelayan langsung.

Selepas membuat perubahan, mulakan semula pelayan web anda:

# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm

Mengesahkan Konfigurasi Anda

Periksa jika perubahan anda berkesan:

# For CLI
php -i | grep display_errors

# For web server (create a test file)
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.php

Lawati fail ujian di pelayar anda dan cari display_errors. Ia sepatutnya menunjukkan On. Padamkan fail ujian selepas pengesahan.

Jika perubahan anda tidak muncul:

  1. Pastikan anda mengedit fail php.ini yang betul (CLI vs pelayan web)
  2. Periksa kesilapan ejaan dalam nama tetapan (ia sensitif kepada huruf besar dan kecil)
  3. Mulakan semula pelayan web anda selepas membuat perubahan
  4. Sesetengah tetapan boleh ditimpa oleh .htaccess (Apache) atau php.ini dalam direktori projek anda

Anda boleh mula menggunakan PHP sekarang, tetapi anda mungkin ingin menggunakan pelbagai perpustakaan untuk membina aplikasi PHP dengan cepat. Sebelum anda menguji persekitaran PHP anda, terlebih dahulu sediakan pengurus kebergantungan untuk projek anda.

Langkah 5 — Menyiapkan Composer untuk Pengurusan Kebergantungan (Pilihan)

Perpustakaan adalah kumpulan kod yang boleh membantu anda menyelesaikan masalah biasa tanpa perlu menulis semuanya sendiri. Oleh kerana terdapat banyak perpustakaan yang tersedia, menggunakan pengurus kebergantungan akan membantu anda menguruskan pelbagai perpustakaan apabila anda menjadi lebih mahir dalam menulis PHP.

Composer adalah alat untuk pengurusan kebergantungan dalam PHP. Ia membolehkan anda menyatakan perpustakaan yang projek anda bergantung kepadanya dan akan mengurus pemasangan serta kemas kini pakej-pakej ini.

Walaupun serupa, Composer bukan pengurus pakej dalam erti kata yang sama seperti yum atau apt. Ia mengendalikan “pakej” atau perpustakaan, tetapi ia menguruskan mereka berdasarkan setiap projek, memasangnya dalam direktori (contohnya vendor) di dalam projek anda. Secara lalai, ia tidak memasang apa-apa secara global. Oleh itu, ia adalah pengurus kebergantungan. Walau bagaimanapun, ia menyokong projek global untuk kemudahan melalui arahan global.

Idea ini bukan baru, dan Composer sangat dipengaruhi oleh npm Node dan bundler Ruby.

Andaikan :

  • Anda mempunyai projek yang bergantung pada beberapa pustaka.
  • Beberapa perpustakaan itu bergantung pada perpustakaan lain.

Komposer:

  • Membolehkan anda menyatakan pustaka yang anda bergantung pada.
  • Mengetahui versi mana bagi pakej mana yang boleh dan perlu dipasang serta memasangnya dengan memuat turunnya ke dalam projek anda.
  • Membolehkan anda mengemaskini semua kebergantungan anda dengan satu arahan.
  • Membolehkan anda melihat bab Penggunaan Asas untuk maklumat lanjut mengenai pengisytiharan kebergantungan.

Muat turun pemasang Composer:

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Sahkan integriti pemasang dengan memeriksa hash SHA-384nya. Dapatkan hash terkini:

HASH=$(curl -sS https://composer.github.io/installer.sig)

Sahkan kesesuaian hash:

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"

Anda harus lihat:

Installer verified

Jika anda melihat Installer corrupt, muat turun tidak lengkap atau telah diubah. Muat turun pemasang sekali lagi dan sahkan hash. Jika masih gagal, periksa sambungan internet anda atau cuba memuat turun dari rangkaian yang berbeza.

Pasang Composer secara global:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Anda akan menerima output yang serupa dengan ini:

All settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Uji pemasangan anda:

composer

Anda akan menerima output seperti berikut:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.5 2022-04-13 16:43:00

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display help for the given command. When no command is given display help for the list command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json file.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .

Ini mengesahkan bahawa Composer telah berjaya dipasang pada sistem anda dan tersedia secara menyeluruh di seluruh sistem.

Nota: Jika anda lebih suka mempunyai fail boleh laksana Composer yang berasingan untuk setiap projek yang anda hoskan di pelayan anda, anda boleh memasangnya secara tempatan, mengikut projek. Kaedah ini juga berguna apabila pengguna sistem anda tidak mempunyai kebenaran untuk memasang perisian secara menyeluruh dalam sistem.

Untuk melakukan ini, gunakan perintah php /tmp/composer-setup.php tanpa sebarang argumen. Perintah ini akan menjana fail composer.phar dalam direktori semasa anda, yang boleh anda jalankan menggunakan php composer.phar.

Langkah 6 — Menggunakan Composer dalam Projek PHP

Sebagai langkah terakhir, anda boleh secara pilihan memulakan projek anda dengan composer init. Ini akan membuat fail composer.json yang akan menguruskan kebergantungan projek anda. Memulakan projek juga membolehkan anda menetapkan butiran projek seperti Pengarang dan Lesen, serta menggunakan fungsi autoload Composer. Anda boleh menetapkan kebergantungan sekarang atau menambahnya kemudian.

Buat direktori projek dan inisialisasi Composer:

cd ~
mkdir example-project
cd example-project
composer init

Menjalankan arahan ini akan memulakan wizard persediaan. Butiran yang anda masukkan dalam wizard boleh dikemas kini kemudian, jadi jangan ragu untuk meninggalkan nilai lalai dan hanya tekan ENTER. Jika anda belum bersedia untuk memasang mana-mana kebergantungan, anda boleh memilih no. Masukkan butiran anda pada setiap arahan:

                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [sammy/example-project]:  sammy/project1
Description []:
Author [n to skip]: Sammy <sammy@linux-console.net>
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n

{
    "name": "sammy/project1",
    "type": "project",
    "authors": [
        {
            "name": "Sammy",
            "email": "sammy@linux-console.net"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes

Sebelum anda mengesahkan penjanaan, anda akan melihat sampel fail composer.json yang akan dibuat oleh wizard. Jika semuanya kelihatan baik, anda boleh mengesahkan pilihan lalai ya. Jika anda perlu memulakan semula, pilih tidak.

Pada kali pertama anda menentukan sebarang kebergantungan, Composer akan mencipta folder vendor. Semua kebergantungan dipasang ke dalam folder vendor ini. Composer juga mencipta fail composer.lock. Fail ini menentukan versi tepat bagi setiap kebergantungan dan sub-kebergantungan yang digunakan dalam projek anda. Ini memastikan bahawa mana-mana komputer yang menjalankan program anda, akan menggunakan versi yang sama tepat bagi setiap pakej.

Nota: Folder vendor tidak seharusnya dimasukkan ke dalam sistem kawalan versi (VCS) anda. Folder vendor hanya mengandungi pakej yang anda pasang dari vendor lain. Vendor individu tersebut akan menyelenggara kod mereka sendiri dalam sistem kawalan versi mereka sendiri. Anda hanya seharusnya menjejak kod yang anda tulis. Sebagai ganti memasukkan folder vendor, anda hanya perlu memasukkan fail composer.json dan composer.lock anda. Anda boleh belajar lebih lanjut tentang cara mengabaikan fail tertentu dalam Panduan Rujukan: Cara Menggunakan Git.

Sekarang anda telah memasang PHP dan mempunyai cara untuk mengurus kebergantungan projek anda menggunakan Composer, anda sudah bersedia untuk menguji persekitaran anda.

Langkah 7 — Menguji Persekitaran PHP

Buat dan jalankan skrip PHP asas untuk menguji pemasangan anda:

nano hello.php

Tambahkan kod PHP berikut:

<?php
echo 'Hello World!';
?>

Simpan dan tutup fail (tekan CTRL+X, kemudian Y, kemudian ENTER). Jalankan skrip:

php hello.php

Jika PHP diproses dengan betul, anda hanya akan melihat aksara di dalam tanda petik:

Hello World!

PHP telah berjaya memproses skrip itu, bermakna persekitaran PHP anda telah berjaya dipasang dan anda sudah bersedia untuk meneruskan perjalanan pengaturcaraan anda.

Langkah 8 — Menyediakan Projek PHP Dunia Sebenar

Rangka kerja PHP moden seperti Laravel, Symfony, dan WordPress memerlukan sambungan PHP tertentu dan Composer. Pasang rangka kerja menggunakan Composer atau pemasang rangka kerja tersebut, kemudian konfigurasikan pelayan web anda untuk menunjuk ke direktori awam projek.

Menetapkan Laravel

Pasang Laravel menggunakan Composer:

composer create-project laravel/laravel my-laravel-app
cd my-laravel-app

Arahan ini memuat turun Laravel dan semua kebergantungannya. Proses ini mungkin mengambil masa beberapa minit.

Laravel memerlukan sambungan PHP ini (dipasang dalam Langkah 1):

  • php8.1-mbstring - Pengendalian rentetan berbilang bait
  • php8.1-xml - penguraian XML
  • php8.1-curl - permintaan HTTP
  • php8.1-zip - Pengurusan arkib
  • php8.1-bcmath - Matematik ketepatan sewenang-wenangnya

Jika Laravel mengatakan “mbstring hilang” walaupun anda telah memasangnya:

Ini biasanya bermaksud sambungan dipasang tetapi tidak dimuatkan. Semak:

  1. Sahkan sambungan telah dipasang:
php -m | grep mbstring
  1. Jika ia tiada, pasangnya:
sudo apt install php8.1-mbstring
  1. Jika ia dipasang tetapi tidak dipaparkan, mulakan semula pelayan web anda:
# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm
  1. Periksa fail php.ini yang sedang digunakan. Pemasang Laravel menggunakan PHP CLI, jadi periksa:
php --ini

Pastikan sambungan diaktifkan dalam fail CLI php.ini.

Mengesahkan pemasangan Laravel:

Selepas pemasangan selesai, mulakan pelayan pembangunan Laravel:

php artisan serve

Anda patut melihat:

INFO  Server running on [http://127.0.0.1:8000]

Lawati http://localhost:8000 dalam pelayar anda. Anda sepatutnya melihat halaman sambutan Laravel.

Untuk tetapan seperti pengeluaran dengan Apache atau Nginx:

Konfigurasikan pelayan web anda untuk menunjuk ke direktori public (bukan root projek). public/index.php Laravel adalah titik masuk untuk semua permintaan.

Nota: Ketahui lebih lanjut tentang Laravel dalam tutorial kami mengenai Cara Memasang Laravel di Ubuntu.

Menetapkan WordPress

Muat turun dan ekstrak WordPress:

cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo chown -R www-data:www-data /var/www/wordpress

WordPress memerlukan pangkalan data MySQL atau MariaDB. Pasang MySQL jika perlu:

sudo apt install mysql-server
sudo mysql_secure_installation

Skrip mysql_secure_installation akan meminta anda untuk:

  • Tetapkan kata laluan root
  • Buang pengguna tanpa nama
  • Larang log masuk root dari jarak jauh
  • Buang pangkalan data ujian
  • Muat semula jadual keistimewaan

Buat pangkalan data dan pengguna untuk WordPress:

sudo mysql -u root -p

Di petunjuk MySQL:

CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Gantikan secure_password dengan kata laluan yang kuat. WordPress akan menggunakan kelayakan ini untuk menyambung ke pangkalan data.

Jika WordPress tidak dapat menyambung ke pangkalan data:

  1. Sahkan MySQL sedang berjalan:
sudo systemctl status mysql
  1. Uji sambungan pangkalan data:
mysql -u wpuser -p wordpress_db

Jika ini gagal, semak:

  • Nama pengguna dan kata laluan adalah betul
  • Pangkalan data wujud: SHOW DATABASES;
  • Pengguna mempunyai kebenaran: SHOW GRANTS FOR 'wpuser'@'localhost';
  1. Periksa sama ada sambungan MySQL PHP dipasang:
php -m | grep mysql

Jika tiada, pasang ia:

sudo apt install php8.1-mysql
sudo systemctl restart apache2  # or php8.1-fpm for Nginx

Melengkapkan pemasangan WordPress:

Konfigurasikan pelayan web anda untuk menunjuk ke /var/www/wordpress (lihat Langkah 2 untuk Apache atau Langkah 3 untuk Nginx). Lawati laman web itu di pelayar anda. WordPress akan meminta anda untuk:

  1. Pilih bahasa anda
  2. Masukkan maklumat akaun pangkalan data (gunakan pangkalan data, nama pengguna, dan kata laluan yang anda cipta)
  3. Lengkapkan pemasangan

Nota: Untuk pemasangan WordPress secara terperinci, lihat Cara Memasang WordPress dengan LAMP pada Ubuntu.

Menetapkan Symfony

Pasang Symfony menggunakan Composer:

composer create-project symfony/website-skeleton my-symfony-app
cd my-symfony-app

Symfony memerlukan sambungan yang sama seperti Laravel. Mulakan pelayan pembangunan:

symfony server:start

Atau gunakan pelayan terbina dalam PHP:

php -S localhost:8000 -t public

Jika pemasangan Symfony gagal dengan ralat sambungan:

Periksa bahawa semua sambungan yang diperlukan telah dipasang dan dimuatkan:

php -m | grep -E 'mbstring|xml|curl|zip|bcmath'

Jika ada yang tiada, pasang mereka dan mulakan semula pelayan web anda.

Langkah 9 — Amalan Terbaik untuk Pembangunan Tempatan

Pastikan persekitaran tempatan anda selamat, gunakan kawalan versi, tetapkan kebenaran fail yang betul, dan sediakan konfigurasi khusus persekitaran. Amalan ini mencegah isu keselamatan dan memudahkan pembangunan.

Pertimbangan Keselamatan

Walaupun dalam pembangunan tempatan, ikut amalan terbaik keselamatan:

  1. Nyahaktifkan fungsi PHP berbahaya dalam produksi: Fungsi seperti exec(), system(), dan shell_exec() harus dihadkan dalam fail php.ini produksi.

  2. Gunakan pembolehubah persekitaran: Simpan konfigurasi sensitif dalam fail .env (jangan sekali-kali komitkan ke kawalan versi). Laravel dan Symfony menyokong ini secara asli.

  3. Tetapkan kebenaran fail yang sesuai: Fail pelayan web harus boleh dibaca oleh pengguna pelayan web tetapi tidak boleh ditulis:

sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type d -exec chmod 755 {} \;
sudo find /var/www/your-project -type f -exec chmod 644 {} \;

Mengapa kebenaran ini penting: Direktori memerlukan 755 (baca, tulis, laksana untuk pemilik; baca dan laksana untuk orang lain) supaya pelayan web dapat menelusuri mereka. Fail memerlukan 644 (baca dan tulis untuk pemilik; hanya baca untuk orang lain) supaya pelayan web boleh membaca tetapi tidak mengubahnya. Ini menghalang skrip berbahaya daripada menulis ganti fail anda.

Integrasi Kawalan Versi

Sentiasa gunakan kawalan versi untuk projek PHP anda. Mulakan Git dalam direktori projek anda:

cd /var/www/your-project
git init

Buat fail .gitignore untuk mengecualikan fail yang tidak diperlukan:

/vendor/
/node_modules/
.env
.DS_Store
*.log

Pengoptimuman Prestasi

Untuk prestasi yang lebih baik dalam pembangunan tempatan:

  • Hidupkan OPcache: OPcache disertakan dengan PHP 8.1 dan meningkatkan prestasi dengan menyimpan kod PHP yang telah disusun dalam cache.

  • Gunakan pengoptimum autoloader Composer:

composer install --optimize-autoloader --no-dev
  • Konfigurasikan kolam PHP-FPM untuk pengurusan sumber yang lebih baik jika menggunakan Nginx.

Langkah 10 — Menyelesaikan Masalah Biasa

Isu pemasangan PHP yang biasa termasuk sambungan yang hilang, kebenaran fail yang salah, kesalahan konfigurasi pelayan web, dan konflik versi. Kebanyakan masalah boleh diselesaikan dengan memeriksa pemasangan sambungan, mengesahkan kebenaran fail, dan menyemak log pelayan web.

Sambungan PHP Tidak Berfungsi

Jika php -m tidak menunjukkan sambungan yang baru anda pasang:

  • Sahkan bahawa ia benar-benar dipasang:
dpkg -l | grep php8.1-extension_name
  • Periksa jika fail sambungan wujud:
ls /usr/lib/php/*/extension_name.so
  • Sahkan ia diaktifkan dalam php.ini. Sesetengah sambungan perlu diaktifkan secara eksplisit:
grep -i extension_name /etc/php/8.1/*/php.ini
  • Mulakan semula pelayan web anda:
# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm
  • Semak php.ini yang sedang digunakan:
php --ini

Pastikan anda memeriksa fail php.ini yang betul (CLI vs pelayan web).

Jika sambungan masih tidak muncul:

  • Sesetengah sambungan memerlukan perpustakaan sistem tambahan. Semak dokumentasi sambungan tersebut
  • Sahkan bahawa anda memasang versi yang betul (php8.1-extension, bukan php8.0-extension)
  • Periksa versi PHP yang bertentangan yang mungkin mengganggu

Ralat Pelayan Dalaman 500

Ralat 500 bermakna pelayan menghadapi ralat tetapi tidak dapat menunjukkan butiran. Semak log ralat:

# Apache
sudo tail -20 /var/log/apache2/error.log

# Nginx
sudo tail -20 /var/log/nginx/error.log

# PHP-FPM
sudo tail -20 /var/log/php8.1-fpm.log

Punca dan penyelesaian biasa:

  1. Kebenaran fail tidak betul: Fail PHP mesti boleh dibaca oleh pengguna pelayan web
sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type f -exec chmod 644 {} \;
sudo find /var/www/your-project -type d -exec chmod 755 {} \;
  1. Tambahan PHP hilang: Semak log ralat untuk mesej seperti “Panggilan kepada fungsi yang tidak ditakrifkan”. Pasang tambahan yang hilang dan mulakan semula pelayan web.

  2. Ralat sintaks dalam fail PHP: Log ralat akan menunjukkan fail dan nombor baris. Isu biasa:

    • Titik koma hilang
    • Kurungan atau petikan yang tidak ditutup
    • Menggunakan fungsi atau kelas yang tidak ditakrifkan
  3. Konfigurasi pelayan web yang salah:

    • Apache: Semak konfigurasi hos maya, pemuatan modul
    • Nginx: Sahkan laluan soket PHP-FPM, konfigurasi FastCGI
  4. Had memori PHP melebihi: Tingkatkan memory_limit dalam php.ini jika anda melihat ralat “Saiz memori yang dibenarkan habis”

Konflik Versi PHP

Jika php -v menunjukkan versi yang berbeza daripada yang dijangka, anda mempunyai beberapa versi PHP yang dipasang.

Semak versi yang dipasang:

dpkg -l | grep php | grep -E 'php[0-9]'

Gunakan versi yang betul secara jelas:

php8.1 -v
php8.1 -m

Kemaskini pelayan web anda untuk menggunakan PHP 8.1:

Untuk Apache, nyahdayakan modul PHP lain dan aktifkan PHP 8.1:

sudo a2dismod php7.4 php8.0  # if they exist
sudo a2enmod php8.1
sudo systemctl restart apache2

Untuk PHP-FPM, hentikan versi lain dan mulakan PHP 8.1:

sudo systemctl stop php7.4-fpm php8.0-fpm  # if they exist
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

Tetapkan PHP 8.1 sebagai versi CLI lalai:

sudo update-alternatives --set php /usr/bin/php8.1

Isu Memori Komposer

Jika Composer kehabisan memori, anda akan melihat ralat seperti:

Fatal error: Allowed memory size of 134217728 bytes exhausted

Betulkan dengan menjalankan Composer dengan memori yang ditingkatkan:

php -d memory_limit=512M /usr/local/bin/composer install

Atau tingkatkan had memori PHP dalam php.ini:

memory_limit = 512M

Jika pemasangan Composer gagal kerana ketidakpadanan hash:

Pengesahan hash mungkin gagal jika:

  • Pemasang telah dikemas kini sejak anda memuat turunnya (muat turun semula untuk mendapatkan hash terkini)
  • Muat turun anda rosak (cuba muat turun semula)
  • Anda berada di belakang proksi yang mengubah fail (periksa tetapan rangkaian anda)

Masalah Sambungan Pangkalan Data

Jika aplikasi PHP anda tidak dapat menyambung ke MySQL/MariaDB, anda mungkin akan melihat ralat seperti:

SQLSTATE[HY000] [2002] No such file or directory

atau

Access denied for user 'username'@'localhost'

Langkah penyelesaian masalah:

  1. Sahkan bahawa perkhidmatan pangkalan data sedang berjalan:
sudo systemctl status mysql

Jika ia tidak berjalan, mulakan ia:

sudo systemctl start mysql
sudo systemctl enable mysql
  1. Periksa sama ada sambungan MySQL PHP dipasang:
php -m | grep mysql

Jika tiada, pasang ia:

sudo apt install php8.1-mysql
sudo systemctl restart apache2  # or php8.1-fpm for Nginx
  1. Sahkan kelayakan dan kebenaran pangkalan data. Uji sambungan:
mysql -u username -p database_name

Jika ini gagal, semak:

  • Nama pengguna dan kata laluan adalah betul
  • Pangkalan data wujud: SHOW DATABASES;
  • Pengguna mempunyai kebenaran: SHOW GRANTS FOR 'username'@'localhost';

Nota: Untuk tetapan MySQL, lihat Cara Memasang MySQL di Ubuntu.

Fail PHP Dipaparkan sebagai Teks Biasa dan Tidak Berfungsi

Jika fail PHP anda dipaparkan sebagai teks biasa di pelayar:

  1. Periksa sambungan fail: Ia mesti .php, bukan .txt atau .html

  2. Sahkan PHP sedang memproses fail:

    • Apache: Semak mod_php dihidupkan: apache2ctl -M | grep php
    • Nginx: Periksa sama ada PHP-FPM berjalan dan laluan soket adalah betul
  3. Periksa kebenaran fail: Pelayan web mesti boleh membaca fail tersebut

  4. Sahkan fail mengandungi kod PHP: Pastikan ia bermula dengan <?php atau <?

  5. Semak konfigurasi pelayan web:

    • Apache: Hos maya mungkin tidak dikonfigurasi dengan betul
    • Nginx: Blok location ~ \.php$ mungkin hilang atau tidak betul

Masalah Muat Naik Fail

Jika pemuatan fail gagal, anda mungkin akan melihat ralat seperti:

The uploaded file exceeds the upload_max_filesize directive

Semak tetapan php.ini ini:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

Penting: post_max_size mesti lebih besar daripada upload_max_filesize. Jika anda menetapkan upload_max_filesize=100M, tetapkan post_max_size=110M atau lebih tinggi.

Jika muat naik masih gagal:

  1. Semak log ralat untuk mesej ralat tertentu
  2. Sahkan bahawa direktori muat naik wujud dan boleh ditulis:
sudo chmod 755 /path/to/upload/directory
sudo chown www-data:www-data /path/to/upload/directory
  1. Periksa ruang cakera: df -h
  2. Sahkan borang menggunakan enctype="multipart/form-data"

Mulakan semula pelayan web anda selepas membuat perubahan pada php.ini.

Soalan Lazim

Bagaimana saya memasang PHP 8.1 di Ubuntu?

Pasang PHP 8.1 menggunakan pengurus pakej Ubuntu: sudo apt update && sudo apt install php8.1. PHP 8.1 tersedia dalam repositori lalai Ubuntu, jadi tiada sumber pakej tambahan diperlukan.

Apakah sambungan PHP yang penting untuk pembangunan?

Sambungan penting termasuk php8.1-cli, php8.1-mysql, php8.1-curl, php8.1-xml, php8.1-mbstring, php8.1-zip, php8.1-gd, dan php8.1-bcmath. Ini merangkumi kebolehkaitan pangkalan data, permintaan HTTP, pengendalian rentetan, dan pemprosesan imej.

Bagaimana saya mengkonfigurasi PHP dengan Apache atau Nginx?

Untuk Apache, pasang libapache2-mod-php8.1 dan aktifkannya dengan sudo a2enmod php8.1. Untuk Nginx, pasang php8.1-fpm dan konfigurasikan Nginx untuk menghantar permintaan PHP ke soket PHP-FPM menggunakan FastCGI.

Bagaimana saya boleh mengesahkan bahawa PHP dipasang dengan betul?

Jalankan php -v untuk menyemak versi PHP. Buat fail ujian dengan <?php phpinfo(); ?> dan aksesnya melalui pelayan web anda untuk melihat maklumat konfigurasi PHP secara terperinci.

Bolehkah saya menjalankan Laravel atau WordPress secara tempatan dengan tetapan ini?

Ya. Laravel memerlukan Composer dan sambungan PHP standard yang disebutkan di atas. WordPress memerlukan pangkalan data MySQL selain PHP. Kedua-dua rangka kerja berfungsi dengan konfigurasi Apache atau Nginx.

Bagaimana saya memasang Composer untuk projek PHP?

Muat turun pemasang Composer, sahkan hashnya, dan pasangkannya secara global: sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer. Sahkan dengan composer --version.

Bagaimana saya menyelesaikan masalah sambungan PHP yang hilang?

Periksa sambungan yang dipasang dengan php -m. Pasang sambungan yang hilang menggunakan sudo apt install php8.1-extension_name, kemudian mulakan semula pelayan web anda.

Bagaimana saya mengkonfigurasi laporan ralat PHP untuk pembangunan?

Sunting php.ini dan tetapkan display_errors=On, error_reporting=E_ALL, dan log_errors=On. Ingat untuk mematikan paparan ralat dalam persekitaran produksi.

Apakah perbezaan antara Apache dan Nginx untuk PHP?

Apache menggunakan mod_php untuk memproses PHP secara langsung (PHP tertanam dalam proses Apache), manakala Nginx memerlukan PHP-FPM (Pengurus Proses FastCGI) untuk mengendalikan permintaan PHP (PHP berjalan sebagai perkhidmatan berasingan). Lihat bahagian “Memilih Antara Apache dan Nginx” di atas untuk jadual perbandingan yang lebih terperinci. Kedua-dua pendekatan berfungsi dengan baik; pilih berdasarkan keperluan prestasi, kefahaman, dan infrastruktur yang sedia ada.

Bolehkah saya memasang pelbagai versi PHP pada sistem yang sama?

Ya, menggunakan alat seperti phpenv atau phpbrew. Walau bagaimanapun, bagi kebanyakan senario pembangunan, satu versi PHP sudah mencukupi. Gunakan pengurus versi apabila anda perlu menguji aplikasi terhadap versi PHP yang berbeza.

Kesimpulan

Anda kini mempunyai persekitaran pembangunan PHP 8.1 yang telah dikonfigurasikan sepenuhnya pada Ubuntu dengan sokongan untuk kedua-dua pelayan web Apache dan Nginx. Tetapan anda termasuk sambungan PHP penting, Composer untuk pengurusan kebergantungan, dan konfigurasi yang betul untuk pembangunan tempatan.

Sebelum memulakan projek seterusnya, pertimbangkan untuk menyediakan Persekitaran Pembangunan Bersepadu (IDE) seperti VS Code dengan sambungan PHP untuk penyorotan sintaks, penyahpepijatan, dan sokongan IntelliSense.

Dengan persekitaran anda sudah sedia, anda boleh menerokai pembangunan PHP dengan lebih lanjut:

  • Belajar asas PHP dengan Cara Bekerja Dengan String dalam PHP
  • Bina API menggunakan Cara Menggunakan Web API dalam PHP
  • Fahami fungsi dalam Cara Menggunakan Fungsi dalam PHP
  • Sediakan pangkalan data dengan Cara Memasang dan Menggunakan PostgreSQL di Ubuntu

Untuk penempatan pengeluaran, pertimbangkan menggunakan Platform Apl Linux-Console.net untuk menyebarkan aplikasi PHP anda terus dari GitHub dengan penskalaan automatik dan sijil SSL.

Terima kasih kerana belajar bersama Komuniti Linux-Console.net.