Installasjonsguider

Installasjon av Composer og PHP-innstillinger

Vi viser hvordan du installerer PHP med riktige utvidelser, styrer avhengigheter med Composer og bygger en ryddig prosjektstruktur med PSR-4-autoloading.

Aurora YazılımRedaksjonen 6 min lesetid
Installasjon av Composer og PHP-innstillinger
Hvordan installerer du Composer?

For installasjon av Composer må PHP først være installert og fungere i terminalen. På Windows finner installasjonsprogrammet Composer-Setup.exe fra getcomposer.org PHP og legger det til i PATH. På macOS og Linux lastes composer.phar ned med installasjonskommandoene fra nettstedet og flyttes til /usr/local/bin/composer. Hvis composer --version gir en versjon, er installasjonen ferdig, og avhengigheter installeres med composer install.

Hva er Composer, og hvorfor trenger du det?

Composer er pakkebehandleren for PHP-prosjekter. Den laster ned bibliotekene prosjektet ditt trenger, med kompatible versjoner, og lar deg styre alt fra én fil. Det npm er for JavaScript og pip er for Python, er Composer for PHP.

Det andre store bidraget fra Composer er automatisk lasting (autoload). I stedet for å skrive titalls require-linjer inkluderer du én fil, og klassene lastes automatisk når de trengs. Moderne PHP-rammeverk som Laravel og Symfony er bygget på Composer fra grunnen av.

Bibliotekene publiseres i et felles arkiv som heter Packagist. Composer velger egnede pakker fra dette arkivet etter versjonsreglene i composer.json-filen din og installerer alt i vendor-mappen.

Fil / mappeOppgaveLegges den til i Git?
composer.jsonAvhengigheter, versjonsregler, autoload-innstillingJa
composer.lockDen nøyaktige versjonen av hver installert pakkeJa (i applikasjoner)
vendor/Nedlastede pakker og autoload-filerNei

Installasjon av PHP: Windows, macOS, Linux

Composer er et PHP-program, så PHP må først fungere på kommandolinjen. Hvis XAMPP er installert på datamaskinen din, kan du bruke PHP-en som ligger i den. Detaljer finner du i guiden vår om installasjon av XAMPP. Hvis du vil installere en frittstående PHP, følger du stegene for operativsystemet ditt.

bashKontroll av PHP
php -v

# Installerte utvidelser
php -m

# php.ini-filen som brukes
php --ini

PHP på Windows

Last ned zip-filen for den nyeste stabile versjonen av x64 Thread Safe fra windows.php.net, og pakk den ut i en kort mappe som C:\php. Lag en kopi av filen php.ini-development i mappen med navnet php.ini, og legg mappen C:\php til i systemets PATH.

Slå på utvidelsene som Composer og de fleste pakker trenger, i php.ini-filen ved å fjerne semikolonet foran linjen:

iniphp.ini (Windows)
extension_dir = "ext"
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=zip

PHP på macOS og Linux

På macOS holder én kommando med Homebrew. På Ubuntu og Debian installerer du PHP-kommandolinjepakken sammen med de vanligste utvidelsene og unzip-verktøyet. Composer trenger unzip eller zip-utvidelsen når den pakker ut pakker.

bashmacOS
brew install php
bashUbuntu / Debian
sudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip unzip

Installasjon av Composer steg for steg

På Windows er den enkleste veien installasjonsprogrammet Composer-Setup.exe på getcomposer.org. Installasjonsprogrammet finner php.exe på maskinen din, melder fra om manglende innstillinger og legger composer-kommandoen til i PATH. Etter installasjonen må du lukke åpne terminaler og åpne dem på nytt.

På macOS og Linux installeres Composer med kommandoen på fire linjer på nedlastingssiden. Én av disse kommandoene verifiserer sikkerhetssammendraget (hash) for den nedlastede filen og endres med hver versjon. Kopier derfor alltid kommandoene i oppdatert form fra den offisielle siden. Installasjonen lager filen composer.phar i mappen du står i. Hvis du flytter den til en global plassering, kan du kjøre den hvor som helst ved å skrive composer.

bashmacOS / Linux (legg til hash-verifiseringslinjen fra den offisielle siden)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# (hash-verifiseringslinjen fra den offisielle siden)
php composer-setup.php
php -r "unlink('composer-setup.php');"

# Flytt for generell bruk
sudo mv composer.phar /usr/local/bin/composer
bashKontroll
composer --version
composer diagnose

composer install og grunnleggende kommandoer

I et nytt prosjekt lager composer init en composer.json med interaktive spørsmål. Hvis du har klonet et eksisterende prosjekt, er det eneste du trenger å gjøre, å kjøre kommandoen composer install. Composer installerer nøyaktig versjonene i composer.lock-filen.

composer require legger til en ny pakke og oppdaterer composer.json og composer.lock. composer update oppgraderer til de nyeste versjonene innenfor det tillatte versjonsområdet, så den bør brukes bevisst i teamet.

  • Versjonsregelen ^2.0 tillater alle versjoner innenfor 2.x, men går ikke over til 3.0.
  • Del composer.lock-filen. Alle på teamet og serveren installerer da de samme versjonene.
  • Ikke legg vendor-mappen til i Git. Skriv den i .gitignore.
bashVanlige Composer-kommandoer
# Opprett en ny prosjektfil
composer init

# Paket ekle
composer require guzzlehttp/guzzle

# Pakke som bare trengs under utvikling
composer require --dev phpunit/phpunit

# Installer ut fra låsefilen
composer install

# Oppdater versjonene
composer update
composer outdated

# Fjern pakke og list opp
composer remove guzzlehttp/guzzle
composer show

Sikkerhetskontroll

Sjekk om pakkene du bruker, har kjente sikkerhetshull, med kommandoen composer audit. Kommandoen sammenligner versjonene i låsefilen med åpne databaser og lister opp pakkene som er berørt. Å kjøre denne kontrollen etter hver oppdatering og med jevne mellomrom hindrer at et utdatert bibliotek setter nettsiden din i fare.

bash
composer audit

Composer-skript

I scripts-feltet i composer.json kan du skrive kommandoer du bruker ofte, for eksempel et testskript som kjører testene. Skriptene kjøres med composer run-script test eller bare composer test. Da bruker alle på teamet den samme kommandoen med de samme parameterne, og en ny utvikler ser med ett blikk hvordan prosjektet testes.

PSR-4-autoloading

Bruk Composer ikke bare til eksterne pakker, men også til å organisere din egen kode. I PSR-4-standarden tilsvarer hvert navnerom (namespace) en mappe. Klassen App\Servis\Fatura ligger for eksempel i filen src/Servis/Fatura.php.

Etter at du har lagt innstillingen til i composer.json, kjører du kommandoen composer dump-autoload. Nå holder det å inkludere vendor/autoload.php i prosjektets inngangsfil.

jsoncomposer.json (autoload-delen)
{
  "require": {
    "php": ">=8.1"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}
phpindex.php
<?php
require __DIR__ . '/vendor/autoload.php';

use App\Servis\Fatura;

$fatura = new Fatura();
bash
composer dump-autoload

Installasjon på produksjonsserver

På en produksjonsserver trenger du ikke utviklingspakker, og å optimalisere autoloaderen sparer tid ved hver forespørsel. Bruk kommandoen under ved utrulling. --no-dev utelater testverktøyene, og --optimize-autoloader bygger klassekartet på forhånd.

Denne lille innstillingen gir en positiv effekt på responstiden, særlig i prosjekter med mange klasser. Slike forbedringer på serversiden tar vi for oss som en del av arbeidet vårt med hastighet og ytelse.

Det er også en god vane å kjøre composer validate lokalt før utrulling. Den kontrollerer skrivefeil i composer.json-filen og om låsefilen er oppdatert. Da er det mindre sannsynlig at du havner i en halvferdig installasjon på serveren.

  • PHP-versjonen på serveren må oppfylle php-regelen i composer.json.
  • Hvis du bruker en annen PHP-versjon lokalt, kan du etterligne serverens versjon med innstillingen config.platform.php i composer.json.
  • For å gjøre miljøene helt like er et alternativ også å kjøre PHP i en container. Se installasjon av Docker.
bashProduksjonsinstallasjon
composer install --no-dev --optimize-autoloader

Vanlige feil og løsninger

De fleste Composer-feil skyldes manglende PHP-utvidelser, inkompatibel PHP-versjon og minnegrensen. Kommandoen composer diagnose oppdager mange problemer selv.

  • php-kommandoen gjenkjennes ikke: PHP-mappen ligger ikke i PATH. Legg den til og åpne terminalen på nytt.
  • openssl-utvidelsen mangler: Slå på linjen extension=openssl i php.ini. Sørg for at du redigerer riktig php.ini-fil med php --ini.
  • zip-utvidelsen og unzip-kommandoen mangler: På Windows slår du på linjen extension=zip, og på Linux installerer du pakkene php-zip og unzip.
  • Your requirements could not be resolved: Pakken støtter ikke den installerte PHP-versjonen din eller versjonen av en annen pakke. Les kravet i feilteksten, og velg PHP eller pakkeversjon deretter.
  • Allowed memory size exhausted: Kjør kommandoen i formen COMPOSER_MEMORY_LIMIT=-1 composer update, eller øk verdien for memory_limit i php.ini.

Neste steg med Composer

De fleste PHP-prosjekter jobber med en database. Før du kobler til et databaselag du har installert med Composer, kan du gjøre den lokale serveren klar med guiden vår om installasjon av MySQL. For mer PHP-innhold kan du se på siden for php-emneknaggen.

Riktig satt opp avhengighetsstyring gjør at en bedriftsnettside eller et integrasjonsprosjekt som kobler til betalings- og fraktløsninger, kan oppdateres trygt gjennom årene. Også nettbutikkplattformen til Aurora Yazılım utvikles uten ferdige temaer, med unikt design for hver bedrift.

Vanlige spørsmål

01Må jeg installere Composer separat for hvert prosjekt?

Nei. Composer installeres globalt på datamaskinen din én gang. Hvert prosjekt har sin egen composer.json og vendor-mappe, og pakkene installeres separat fra prosjekt til prosjekt. Siden Composer beholder nedlastede pakker i hurtigbufferen, går installasjonen raskere i det andre prosjektet.

02Hva er forskjellen på composer install og composer update?

composer install installerer nøyaktig versjonene i composer.lock-filen og endrer ikke låsefilen. composer update leter derimot etter nyere versjoner etter versjonsreglene og oppdaterer låsefilen. Derfor brukes install på servere.

03Kan Composer brukes på delt hosting?

Hvis hostingselskapet ditt gir SSH-tilgang, kan det som regel brukes. Hvis det ikke finnes SSH, er en løsning å installere avhengighetene lokalt med composer install --no-dev og laste opp vendor-mappen med filoverføring. Sørg for at PHP-versjonene er kompatible.

Når du har installert PHP med riktige utvidelser og lagt Composer til i PATH, kan du styre avhengigheter med composer install på få minutter og bygge en ryddig kodestruktur med PSR-4. Hvis du vil ha et PHP-basert system eller en nettapplikasjon som er laget for bedriften din og er enkel å vedlikeholde, kan du se på skreddersydde programvareløsninger fra Aurora Yazılım eller ta kontakt med oss.