Asenna PHP 8.1 ja määritä paikallinen kehitysympäristö Ubuntulle
Tämän oppaan aiemman version kirjoitti alenaholligan.
Johdanto
PHP on suosittu, avoimen lähdekoodin palvelinpuolen skriptikieli, joka on suunniteltu verkkokehitystä varten ja joka pyörittää merkittävää osaa internetistä blogeista ja verkkokaupoista suurimittaisiin sovelluksiin. Jokaisen uuden julkaisun myötä PHP tarjoaa parannettua suorituskykyä, tietoturvaa ja moderneja kehitysominaisuuksia, jotka auttavat kehittäjiä rakentamaan vankkaa ja skaalautuvaa ohjelmistoa.
PHP 8.1 on vakaa, pitkäaikaiseen tukeen perustuva julkaisu, joka tuo merkittäviä parannuksia ja uusia kielen ominaisuuksia säilyttäen samalla luotettavuuden. PHP 8.1:n asentaminen Ubuntulle varmistaa, että paikallinen kehitysympäristösi on ajan tasalla, turvallinen ja yhteensopiva laajalti käytettyjen kehysten ja alustojen, kuten WordPressin, Laravelin ja räätälöityjen PHP-sovellusten kanssa.
Tämä opas ohjaa sinut PHP 8.1:n asentamiseen Ubuntulle, sen konfigurointiin Apachen tai Nginxin kanssa, tärkeimpien PHP-laajennusten asentamiseen ja Composerin asentamiseen riippuvuuksien hallintaa varten. Opit myös tarkistamaan asennuksesi ja ratkaisemaan yleisimpiä ongelmia.
Ota PHP-sovelluksesi käyttöön GitHubista käyttämällä Linux-Console.netin sovellusalustaa. Anna Linux-Console.netin keskittyä sovelluksesi skaalaamiseen.
Keskeiset kohdat
PHP 8.1:n asennus Ubuntu 22.04:ssä: Ubuntu 22.04 LTS sisältää PHP 8.1:n oletusarkistoissaan, mikä mahdollistaa vakaan, pitkäaikaisesti tuetun PHP-version asentamisen käyttämällä
apt-komentoa ilman kolmansien osapuolten PPA:ta. Tämä takaa ennakoitavat päivitykset, tietoturvakorjaukset ja yhteensopivuuden nykyaikaisten PHP-kehysten kanssa.Välttämättömät PHP-laajennukset todellisille projekteille: Suurin osa tuotantotason PHP-sovelluksista luottaa laajennuksiin kuten
mysql,curl,xml,mbstring,zip,gdjabcmath. Näiden asentaminen varhaisessa vaiheessa estää ajonaikaiset virheet myöhemmin ja takaa yhteensopivuuden esimerkiksi Laravel-, Symfony- ja WordPress-kehysten kanssa.Apache- vai Nginx-valinta PHP-kehitykseen: Apache voi suorittaa PHP:n suoraan käyttämällä
mod_php-moduulia, kun taas Nginx vaatii PHP‑FPM:n pyyntöjen käsittelyyn. Molemmat menetelmät toimivat hyvin paikallisessa kehityksessä, mutta PHP‑FPM vastaa paremmin nykyaikaisia tuotantoympäristöjä ja skaalautuu paremmin kuormituksen kasvaessa.Composer modernien PHP-työnkulkujen perustana: Composer hallitsee projektin riippuvuuksia käyttämällä
composer.jsonjacomposer.lock-tiedostoja, varmistaen yhtenäiset rakennukset eri koneilla. Se on olennainen kehyksien asentamiseen, automaattisten lataajien luomiseen ja luotettavien riippuvuuksien versioiden ylläpitämiseen yhteistyössä tehtävissä PHP-projekteissa.PHP:n määrittäminen erityisesti kehitystä varten: Kehitysympäristöt hyötyvät yksityiskohtaisesta virheraportoinnista, korkeammista muistirajoista ja pidemmistä suoritusaikojen rajoista. Näiden asetusten säätäminen tiedostossa
php.iniauttaa havaitsemaan virheitä nopeasti kehityksen aikana, mutta ne on aina palautettava tuotantoon siirrettäessä.Vianmääritys ja validointi ovat osa asennusta: PHP:n tarkistaminen komennolla
php -v, ladattujen laajennusten tarkistaminen sekä Apache-, Nginx- tai PHP‑FPM-lokien läpikäynti ovat kriittisiä vaiheita. Suurin osa asennusongelmista johtuu puuttuvista laajennuksista, käyttöoikeuksista tai väärin konfiguroiduista verkkopalvelinohjeista.
Edellytykset
Tämän oppaan suorittamiseen tarvitset:
- Paikallinen tietokone tai virtuaalipalvelin, jossa on Ubuntu (yhteensopiva Ubuntu 22.04 LTS:n ja sitä uudemman version kanssa)
- Järjestelmänvalvojan (sudo) käyttöoikeus koneeseen
- Aktiivinen Internet-yhteys
- Perustason tuntemus komentorivistä
Jos olet ottamassa käyttöön uutta Ubuntu-palvelinta, katso oppaamme Ubuntun peruspalvelinasetuksista.
Vaihe 1 — PHP 8.1:n asentaminen
Suoritat asennuksen ja määrityksen komentorivillä, mikä on ei-grafiikkaa käyttävä tapa olla vuorovaikutuksessa tietokoneesi kanssa. Toisin sanoen sen sijaan, että klikkaisit painikkeita, kirjoitat tekstiä ja saat tietokoneeltasi palautetta myös tekstinä.
Komentorivi, jota kutsutaan myös kuoreksi tai terminaaliksi, voi auttaa sinua muokkaamaan ja automatisoimaan monia päivittäisiä tietokoneella tekemiäsi tehtäviä, ja se on olennainen työkalu ohjelmistokehittäjille. On olemassa monia komentorivikomentoja, joita kannattaa oppia, jotta voit tehdä tehokkaampia asioita. Artikkeli Linux-terminaaliin johdanto voi auttaa sinua tutustumaan paremmin terminaaliin.
Huomautus: Jos olet uusi Ubuntun käyttäjä, suosittelemme tutustumaan Ubuntu-dokumentaatioomme saadaksesi lisäohjeita järjestelmän hallintaan.
Ubuntussa voit löytää Päätte-sovelluksen klikkaamalla Ubuntu-kuvaketta näytön vasemmassa yläkulmassa ja kirjoittamalla terminal hakupalkkiin. Klikkaa Päätte-sovelluksen kuvaketta avataksesi sen. Vaihtoehtoisesti voit painaa samalla kertaa näppäimiä CTRL, ALT ja T avataksesi Päätte-sovelluksen automaattisesti.
Huomautus: Ubuntussa 22.04 LTS PHP 8.1 on saatavilla oletusvarastoissa. Kun asennat PHP:n määrittämättä versiota Ubuntussa 22.04, järjestelmä asentaa oletuksena PHP 8.1:n.
Jos sinun täytyy hallita useita PHP-versioita tai asentaa eri versio, harkitse phpenv:n tai phpbrewin käyttöä versionhallintaan.
Suorita seuraavat komennot päivittääksesi saatavilla olevien pakettien luettelon, ja asenna sitten PHP 8.1:
sudo apt updatesudo apt install --no-install-recommends php8.1Lippu --no-install-recommends varmistaa, ettei muita paketteja, kuten Apache-verkkopalvelinta, asenneta.
Tarkista PHP-versiotietosi seuraavalla komennolla:
php -vSaat tällaisen tulosteen:
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
Tämä asennus testattiin Ubuntu 22.04 LTS:llä käyttäen PHP 8.1 -paketteja virallisista Ubuntun arkistoista.
Asenna tärkeät PHP-laajennukset verkkokehitystä varten:
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-bcmathTämä komento asentaa seuraavat moduulit:
php8.1-cli- komentotulkki, hyödyllinen PHP-skriptien testaamiseen komentoriviltä tai yleisten komentoriviohjelmointitehtävien suorittamiseenphp8.1-common- dokumentaatio, esimerkit ja yleiset moduulit PHP:llephp8.1-mysql- MySQL-tietokantojen kanssa työskentelyynphp8.1-zip- pakattujen tiedostojen käsittelyynphp8.1-gd- kuvien käsittelyynphp8.1-mbstring- käytetään hallitsemaan ei-ASCII-merkkijonojaphp8.1-curl- mahdollistaa HTTP-pyyntöjen tekemisen PHP:ssäphp8.1-xml- XML-tietojen käsittelyynphp8.1-bcmath- käytetään, kun työskennellään tarkkuusliukuluvuilla
PHP:n asetustiedostot tallennetaan kansioon /etc/php/8.1/. Pääasiallinen asetustiedosto on php.ini, joka voi sijaita eri kansioissa asennuksestasi riippuen:
- CLI-määritykset:
/etc/php/8.1/cli/php.ini - Apache-konfiguraatio:
/etc/php/8.1/apache2/php.ini(jos Apache on asennettu) - PHP-FPM-asetukset:
/etc/php/8.1/fpm/php.ini(jos PHP-FPM on asennettu)
Tarkista asennetut laajennukset:
php -mTämä luettelee kaikki ladatut PHP-moduulit. Jos php -v näyttää eri version kuin odotettu, sinulla saattaa olla useita PHP-versioita asennettuna. Käytä php8.1 -v varmistaaksesi erityisesti PHP 8.1:n.
Olet asentanut PHP:n ja varmistanut käytössä olevan version. Olet myös asentanut tarvittavat PHP-moduulit ja pystynyt listaamaan ladatut moduulit.
Vaihe 2 — PHP:n määrittäminen Apachella
Asenna Apache PHP -moduuli:
sudo apt install libapache2-mod-php8.1Ota moduuli käyttöön ja käynnistä Apache uudelleen:
sudo a2enmod php8.1
sudo systemctl restart apache2mod_php:n ymmärtäminen: mod_php-moduuli upottaa PHP:n suoraan Apachen prosessiin. Kun Apache saa pyynnön PHP-tiedostosta, se käsittelee sen sisäisesti upotetulla PHP-tulkilla. Tämä eroaa Nginxistä, joka vaatii erillisen PHP-FPM-palvelun. a2enmod-komento luo symbolisen linkin /etc/apache2/mods-enabled/-hakemistoon moduulin aktivoimiseksi.
Varmista, että Apache käsittelee PHP:tä oikein luomalla testitiedosto Apachen dokumenttijuureen (tyypillisesti /var/www/html):
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpVieraile selaimellasi osoitteessa http://localhost/info.php. Sinun pitäisi nähdä PHP:n konfiguraatiotietosivu. Poista tämä tiedosto testauksen jälkeen turvallisuuden vuoksi:
sudo rm /var/www/html/info.phpApache PHP -ongelmien vianmääritys
Jos Apache ei käynnisty mod_php:n asentamisen jälkeen:
Tarkista Apachen virheloki:
sudo tail -20 /var/log/apache2/error.logYleisiä ongelmia ovat:
- Ristiriitaiset PHP-moduulit: Jos sinulla on useita PHP-versioita, poista ensin käytöstä muut PHP-moduulit komennolla
sudo a2dismod php7.4(jos niitä on) - Syntaksivirheitä Apachen määrityksessä: Suorita
sudo apache2ctl configtesttarkistaaksesi
Jos käyt localhostissa ja näet “Se toimii!”, mutta PHP-tiedostot näkyvät pelkkänä tekstinä:
Tämä tarkoittaa, ettei Apache käsittele PHP:tä. Tarkista:
- Varmista, että moduuli on otettu käyttöön:
apache2ctl -M | grep php- Jos mitään ei näy, moduulia ei ole ladattu. Ota se uudelleen käyttöön:
sudo a2enmod php8.1
sudo systemctl restart apache2- Tarkista, että PHP-tiedostollasi on oikea tiedostopääte (
.php) ja että se sisältää PHP-koodia
Jos saat 403 Forbidden -virheen:
Tarkista tiedoston käyttöoikeudet:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/htmlTurvallisuusvinkki: phpinfo()-funktio paljastaa yksityiskohtaista järjestelmätietoa. Älä koskaan jätä phpinfo()-tietoa sisältäviä tiedostoja tuotantopalvelimille.
Apachen virtuaalipalvelimen määritys
Paikalliseen kehitykseen mukautetuilla domaineilla luo virtuaalipalvelin:
sudo nano /etc/apache2/sites-available/example.local.confLisää tämä asetuskokonaisuus:
<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: Tämän virtuaalipalvelimen verkkotunnusDocumentRoot: Missä PHP-tiedostosi sijaitsevatAllowOverride All: Sallii.htaccess-tiedostojen ohittaa Apachen asetuksia (tarvitaan esimerkiksi Laravelin kaltaisille kehyksille)Vaadi kaikki myönnetty: Salli pääsy hakemistoon
Luo hakemisto, ota sivusto käyttöön ja käynnistä Apache uudelleen:
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 apache2Lisää verkkotunnus /etc/hosts-tiedostoosi paikallista käyttöä varten:
echo "127.0.0.1 example.local" | sudo tee -a /etc/hostsValitseminen Apachen ja Nginxin välillä
Ennen kuin määrität verkkopalvelimesi, harkitse, mikä niistä sopii tarpeisiisi:
| Ominaisuus | Apache mod_php:n kanssa | Nginx PHP-FPM:n kanssa |
|---|---|---|
| PHP:n käsittely | Upotettu Apache-prosessiin | Eri PHP-FPM-palvelu |
| Muistin käyttö | Korkeampi (PHP kussakin Apache-prosessissa) | Alempi (erillinen prosessipooli) |
| Suorituskyky | Hyvä vähäliikenteiselle tai keskitason liikenteelle | Parempi suuren liikenteen ja rinnakkaisten pyyntöjen käsittelyyn |
| Määritykset | Yksinkertaisempi alkuasetusten määrittäminen | Monimutkaisempi (vaatii PHP-FPM-määrityksen) |
| .htaccess-tuki | Alkuperäinen tuki | Ei tuettu (täytyy määrittää palvelinlohkoissa) |
| Tuotantokäyttö | Yleistä jaetussa webhotellissa | Yleistä nykyaikaisessa käyttöönotossa |
| Oppimiskäyrä | Helpompaa aloittelijoille | Jyrkempi oppimiskäyrä |
| Resurssitehokkuus | Vähemmän tehokas kuormituksen ollessa korkea | Tehokkaampi suurella kuormituksella |
Milloin valita Apache:
- Olet tuttu Apachen kanssa tai tarvitset
.htaccess-tuen - Yksinkertaisen kehitysympäristön perustaminen
- Työskentely kehysten kanssa, jotka tukeutuvat vahvasti
.htaccess-tiedostoon (joissakin WordPress-asennuksissa) - Haluat yksinkertaisemman alkuasetuksen
Milloin valita Nginx:
- Tarvitset paremman suorituskyvyn suurella kuormituksella
- Haluat peilata nykyaikaisia tuotantoympäristöjä
- Olet rakentamassa sovelluksia, jotka skaalautuvat
- Pidät enemmän modernimmasta arkkitehtuurista
Molemmat toimivat yhtä hyvin paikallisessa kehityksessä. Valinta perustuu usein henkilökohtaiseen mieltymykseen tai olemassa olevaan infrastruktuuriin.
Vaihe 3 — PHP:n määrittäminen Nginxin kanssa
Asenna PHP-FPM (FastCGI-prosessinhallinta):
sudo apt install php8.1-fpmKäynnistä ja ota PHP-FPM käyttöön:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpmPHP-FPM:n ja FastCGI:n ymmärtäminen: Toisin kuin Apachen mod_php, Nginx ei käsittele PHP:tä suoraan. PHP-FPM (FastCGI Process Manager) toimii erillisenä palveluna, jonka kanssa Nginx kommunikoi FastCGI-protokollaa käyttäen. FastCGI on binäärinen protokolla ohjelmien liittämiseen web-palvelimiin—se on nopeampi kuin perinteinen CGI, koska se pitää prosessit aktiivisina pyyntöjen välillä.
Kun Nginx vastaanottaa pyynnön PHP-tiedostosta, se välittää pyynnön PHP-FPM:lle Unix-socketin (tai TCP-yhteyden) kautta. PHP-FPM käsittelee PHP-koodin ja palauttaa tuloksen Nginxille, joka sitten lähettää sen asiakkaalle. Tämä erottelu antaa PHP-FPM:lle mahdollisuuden hallita omaa prosessipooliaan, mikä parantaa suorituskykyä ja resurssien hallintaa.
Nginx-palvelimen lohkon määritys
Luo palvelinlohkon määritys:
sudo nano /etc/nginx/sites-available/example.localLisää tämä asetuskokonaisuus:
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;
}
}Määrityksen selitys:
root: Hakemisto, jossa PHP-tiedostosi sijaitsevatlocation ~ \.php$: Vastaa kaikkiin pyyntöihin, jotka päättyvät.php, käyttäen säännöllisiä lausekkeitainclude snippets/fastcgi-php.conf: Sisältää Nginxin oletusarvoisen FastCGI-konfiguraation (asettaaSCRIPT_FILENAMEja muut tarvittavat muuttujat)fastcgi_pass unix:/var/run/php/php8.1-fpm.sock: Unix-soketti, johon PHP-FPM kuuntelee. Näin Nginx kommunikoi PHP-FPM:n kanssa. Soketin polku on määritelty tiedostossa/etc/php/8.1/fpm/pool.d/www.conf
Ota sivusto käyttöön ja testaa määritykset:
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 -tJos testi onnistuu, käynnistä Nginx uudelleen:
sudo systemctl restart nginxLisää verkkotunnus tiedostoon /etc/hosts:
echo "127.0.0.1 example.local" | sudo tee -a /etc/hostsLuo testattava PHP-tiedosto:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.local/info.phpVieraile osoitteessa http://example.local/info.php. Sinun pitäisi nähdä PHP:n asetussivu. Poista testitiedosto tarkistuksen jälkeen:
sudo rm /var/www/example.local/info.phpNginx PHP -ongelmien vianetsintä
Jos saat “502 Bad Gateway” -virheen:
Tämä tarkoittaa, että Nginx ei voi kommunikoida PHP-FPM:n kanssa. Tarkista:
- Varmista, että PHP-FPM on käynnissä:
sudo systemctl status php8.1-fpm- Tarkista, että soketin polku on oikea. Soketin sijainti määritellään tiedostossa
/etc/php/8.1/fpm/pool.d/www.conf:
grep listen /etc/php/8.1/fpm/pool.d/www.confSinun pitäisi nähdä jotain sellaista kuin listen=/run/php/php8.1-fpm.sock. Polun Nginx-konfiguraatiossasi on täsmättävä tarkalleen. Huomaa, että /var/run on usein symbolinen linkki /run:iin, joten molemmat polut toimivat.
- Tarkista soket-tiedoston käyttöoikeudet:
ls -la /var/run/php/php8.1-fpm.sockSocketin tulisi olla omistajana www-data tai käyttäjä, jolla Nginx pyörii. Jos oikeudet ovat väärin:
sudo chown www-data:www-data /var/run/php/php8.1-fpm.sock- Tarkista Nginx-virheloki:
sudo tail -20 /var/log/nginx/error.logSaatat nähdä virheitä, kuten:
connect() to unix:/var/run/php/php8.1-fpm.sock failed (2: No such file or directory)Tämä tarkoittaa, että socket-polku on virheellinen tai PHP-FPM ei ole käynnissä.
Jos PHP-tiedostot latautuvat suorittamisen sijaan:
Tämä tarkoittaa, että Nginx ei lähetä PHP-tiedostoja PHP-FPM:lle. Tarkista:
- Palvelinasetuksissasi on
location ~ \.php$-lohko fastcgi_pass-direktiivi osoittaa oikeaan socketiin- Olet käynnistänyt Nginxin uudelleen muutosten jälkeen
Jos saat “Tiedostoa ei löydy” -virheitä:
Tarkista, että snippets/fastcgi-php.conf on olemassa:
ls -la /etc/nginx/snippets/fastcgi-php.confTämä tiedosto määrittää SCRIPT_FILENAME, joka kertoo PHP-FPM:lle, mikä tiedosto suoritetaan. Ilman sitä PHP-FPM ei tiedä, mitä tiedostoa käsitellä.
Vaihe 4 — PHP:n määrittäminen kehitystä varten
Määritä PHP kehitystä varten säätämällä virheraportointia, näytön asetuksia ja muistirajoja tiedostossa php.ini. Nämä asetukset poikkeavat tuotantoympäristön asetuksista.
PHP käyttää erillisiä asetustiedostoja komentorivikäyttöä (CLI) ja verkkopalvelinkäyttöä varten. Muokkaa sopivaa tiedostoa:
CLI:ssä (kun suoritetaan PHP:tä terminaalista):
sudo nano /etc/php/8.1/cli/php.iniVerkkopalvelimelle (Apache tai Nginx PHP-FPM:llä):
# For Apache
sudo nano /etc/php/8.1/apache2/php.ini
# For PHP-FPM (Nginx)
sudo nano /etc/php/8.1/fpm/php.iniHuom: Jos käytät sekä CLI:tä että verkkopalvelinta, sinun täytyy konfiguroida molemmat tiedostot erikseen. Muutokset tiedostossa cli/php.ini eivät vaikuta verkkopyyntöihin, ja muutokset tiedostoissa apache2/php.ini tai fpm/php.ini eivät vaikuta CLI-skripteihin.
Keskeiset kehitysasetukset
Etsi ja päivitä nämä asetukset php.ini-tiedostossasi:
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_YorkMitä kukin asetus tekee:
display_errors=On: Näyttää PHP-virheet suoraan selaimessa (hyödyllistä virheenkorjauksessa, vaarallista tuotannossa)display_startup_errors=On: Näyttää virheet, jotka ilmenevät PHP:n käynnistyksen aikanaerror_reporting=E_ALL: Raportoi kaikki virhetyypit (varoitukset, ilmoitukset jne.)log_errors=On: Kirjaa virheet lokitiedostoonerror_log: Mihin PHP kirjoittaa virhelokitmemory_limit=256M: Maksimi muisti, jota skripti voi käyttää (lisää, jos saat “muisti loppui” -virheitä)upload_max_filesize=64M: Tiedostojen enimmäiskoko, joka voidaan ladatapost_max_size=64M: Suurin sallittu koko POST-datalle (täytyy olla suurempi kuinupload_max_filesize)max_execution_time=300: Maksimi aika, jonka skripti voi suorittaa (sekunteina)date.timezone: Määrittää oletusaikavyöhykkeen (käytä paikallista aikavyöhykettäsi:Asia/Kolkata,Europe/London,UTCjne.)
Tuotantovaroitus: Älä koskaan käytä näitä kehitysasetuksia tuotannossa. Aseta aina display_errors=Off ja käytä sopivia virheraportointitasoja tuotantopalvelimilla.
Tee muutokset ja käynnistä verkkopalvelimesi uudelleen:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpmVarmistetaan kokoonpanosi
Tarkista, tuliko muutoksesi voimaan:
# For CLI
php -i | grep display_errors
# For web server (create a test file)
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.phpVieraile testitiedostossa selaimellasi ja etsi display_errors. Sen tulisi näyttää On. Poista testitiedosto tarkistamisen jälkeen.
Jos muutoksesi eivät näy:
- Varmista, että muokkasit oikeaa
php.ini-tiedostoa (CLI vs verkkopalvelin) - Tarkista asetusten nimien kirjoitusvirheet (ne ovat kirjainkoon huomioivia)
- Käynnistä verkkopalvelimesi uudelleen muutosten tekemisen jälkeen
- Joitakin asetuksia voidaan ohittaa projektihakemistosi
.htaccess(Apache) taiphp.initiedoston avulla
Voisit alkaa käyttää PHP:tä heti nyt, mutta todennäköisesti haluat käyttää erilaisia kirjastoja PHP-sovellusten nopeaan rakentamiseen. Ennen kuin testaat PHP-ympäristöäsi, asenna ensin riippuvuushallinta projekteillesi.
Vaihe 5 — Composerin asennus riippuvuuksien hallintaa varten (valinnainen)
Kirjastot ovat kokoelmia koodia, jotka voivat auttaa sinua ratkaisemaan tavallisia ongelmia ilman, että sinun tarvitsee kirjoittaa kaikkea itse. Koska saatavilla on monia kirjastoja, riippuvuuksien hallintatyökalun käyttö auttaa sinua hallitsemaan useita kirjastoja sitä mukaa kun tulet kokeneemmaksi PHP:n kirjoittamisessa.
Composer on työkalu riippuvuuksien hallintaan PHP:ssä. Sen avulla voit ilmoittaa, mitä kirjastoja projektisi tarvitsee, ja se hallinnoi näiden pakettien asentamista ja päivittämistä.
Vaikka samankaltainen, Composer ei ole paketinhallinta samalla tavalla kuin yum tai apt. Se käsittelee “paketteja” eli kirjastoja, mutta hallinnoi niitä projektikohtaisesti, asentamalla ne hakemistoon (esim. vendor) projektisi sisällä. Oletuksena se ei asenna mitään globaaliin ympäristöön. Siksi se on riippuvuudenhallintaohjelma. Se kuitenkin tukee globaalin projektin hallintaa mukavuuden vuoksi global-komennon kautta.
Tämä idea ei ole uusi, ja Composer on vahvasti inspiroitunut Noden npm:stä ja Rubyn bundler:stä.
Oletetaan:
- Sinulla on projekti, joka riippuu useista kirjastoista.
- Jotkut näistä kirjastoista riippuvat muista kirjastoista.
Säveltäjä:
- Mahdollistaa sinun ilmoittaa kirjastot, joihin luotat.
- Selvittää, mitkä versiot mistäkin paketeista voidaan ja täytyy asentaa, ja asentaa ne lataamalla ne projektiisi.
- Mahdollistaa kaikkien riippuvuuksiesi päivittämisen yhdellä komennolla.
- Mahdollistaa Peruskäyttö-luvun tarkastelun saadaksesi lisätietoja riippuvuuksien ilmoittamisesta.
Lataa Composerin asennusohjelma:
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.phpVarmista asennustiedoston eheys tarkistamalla sen SHA-384-tiiviste. Hanki uusin tiiviste:
HASH=$(curl -sS https://composer.github.io/installer.sig)Varmista, että tiiviste täsmää:
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;"Sinun pitäisi nähdä:
Installer verifiedJos näet Installer corrupt, lataus oli kesken tai sitä on muunneltu. Lataa asennustiedosto uudelleen ja tarkista sen tiiviste. Jos ongelma jatkuu, tarkista internet-yhteytesi tai kokeile ladata tiedosto toisesta verkosta.
Asenna Composer globaalisti:
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composerSaat tulosteen, joka on samanlainen kuin tämä:
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/composerTestaa asennuksesi:
composerSaat tulosteen, joka näyttää seuraavalta:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
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
. . .Tämä varmistaa, että Composer asennettiin onnistuneesti järjestelmääsi ja että se on käytettävissä koko järjestelmässä.
Huomautus: Jos haluat käyttää erillisiä Composer-suoritustiedostoja jokaisessa palvelimellasi isännöimässäsi projektissa, voit asentaa sen paikallisesti, projektikohtaisesti. Tämä menetelmä on myös hyödyllinen, kun järjestelmän käyttäjälläsi ei ole lupaa asentaa ohjelmistoja koko järjestelmään.
Tätä varten käytä komentoa php /tmp/composer-setup.php ilman argumentteja. Tämä komento luo composer.phar-tiedoston nykyiseen hakemistoosi, jonka voit suorittaa komennolla php composer.phar.
Vaihe 6 — Composerin käyttäminen PHP-projektissa
Viimeisenä vaiheena voit valinnaisesti alustaa projektisi komennolla composer init. Tämä luo composer.json-tiedoston, joka hallinnoi projektisi riippuvuuksia. Projektin alustaminen antaa myös mahdollisuuden määrittää projektin tiedot, kuten tekijän ja lisenssin, sekä käyttää Composerin automaattista lataustoiminnallisuutta. Voit määrittää riippuvuudet nyt tai lisätä ne myöhemmin.
Luo projektihakemisto ja alusta Composer:
cd ~
mkdir example-project
cd example-project
composer initTämän komennon suorittaminen käynnistää asennusohjatun. Ohjatussa voit myöhemmin päivittää antamiasi tietoja, joten voit rauhassa jättää oletukset ja painaa vain ENTER. Jos et ole valmis asentamaan riippuvuuksia, voit valita ei. Syötä tietosi jokaisessa kehotteessa:
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]? yesEnnen kuin vahvistat luomisen, näet esimerkin composer.json-tiedostosta, jonka ohjattu toiminto luo. Jos kaikki näyttää hyvältä, voit vahvistaa oletusvalinnan kyllä. Jos sinun täytyy aloittaa alusta, valitse ei.
Ensimmäisellä kerralla, kun määrität jonkin riippuvuuden, Composer luo vendor-kansion. Kaikki riippuvuudet asennetaan tähän vendor-kansioon. Composer luo myös composer.lock-tiedoston. Tämä tiedosto määrittää täsmällen version jokaisesta riippuvuudesta ja aliriippuvuudesta, jota käytetään projektissasi. Tämä varmistaa, että kaikilla koneilla, joilla ohjelmaasi ajetaan, käytetään täsmälleen samaa versiota kustakin paketista.
Huomautus: vendor-kansiota ei tulisi koskaan lisätä versionhallintaasi (VCS). vendor-kansio sisältää vain paketteja, jotka olet asentanut muilta toimittajilta. Nämä yksittäiset toimittajat ylläpitävät oman koodinsa omissa versionhallintajärjestelmissään. Sinun tulisi seurata vain itse kirjoittamaasi koodia. Sen sijaan, että lisäisit vendor-kansion, sinun tarvitsee lisätä vain composer.json ja composer.lock -tiedostot. Voit oppia lisää tiettyjen tiedostojen ohittamisesta artikkelista How To Use Git: A Reference Guide.
Nyt kun sinulla on PHP asennettuna ja tapa hallita projektisi riippuvuuksia Composerin avulla, olet valmis testaamaan ympäristöäsi.
Vaihe 7 — PHP-ympäristön testaaminen
Luo ja suorita perus PHP-skripti testataksesi asennuksesi:
nano hello.phpLisää seuraava PHP-koodi:
<?php
echo 'Hello World!';
?>Tallenna ja sulje tiedosto (paina CTRL+X, sitten Y ja lopuksi ENTER). Suorita skripti:
php hello.phpJos PHP käsitellään oikein, näet vain lainausmerkkien sisällä olevat merkit:
Hello World!PHP on käsitellyt skriptin onnistuneesti, mikä tarkoittaa, että PHP-ympäristösi on asennettu onnistuneesti ja olet valmis jatkamaan ohjelmointimatkaasi.
Vaihe 8 — Todellisten PHP-projektien perustaminen
Nykyaikaiset PHP-kehykset, kuten Laravel, Symfony ja WordPress, vaativat tiettyjä PHP-laajennuksia ja Composeria. Asenna kehys käyttämällä Composeria tai kehyksen omaa asennusohjelmaa, ja määritä sitten verkkopalvelimesi osoittamaan projektin julkiseen hakemistoon.
Laravelin asentaminen
Asenna Laravel Composerin avulla:
composer create-project laravel/laravel my-laravel-app
cd my-laravel-appTämä komento lataa Laravelin ja kaikki sen riippuvuudet. Prosessi voi kestää muutaman minuutin.
Laravel vaatii nämä PHP-laajennukset (asennettu vaiheessa 1):
php8.1-mbstring- Monitavuisen merkkijonon käsittelyphp8.1-xml- XML:n jäsentäminenphp8.1-curl- HTTP-pyynnötphp8.1-zip- Arkistojen käsittelyphp8.1-bcmath- Mielivaltaisen tarkkuuden matematiikka
Jos Laravel ilmoittaa „mbstring puuttuu“, vaikka olisit asentanut sen:
Tämä tarkoittaa yleensä, että laajennus on asennettu mutta ei ole ladattu. Tarkista:
- Varmista, että laajennus on asennettu:
php -m | grep mbstring- Jos sitä ei ole, asenna se:
sudo apt install php8.1-mbstring- Jos se on asennettu mutta ei näy, käynnistä verkkopalvelimesi uudelleen:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpm- Tarkista, mitä
php.ini-tiedostoa käytetään. Laravelin asennusohjelma käyttää CLI PHP:tä, joten tarkista:
php --iniVarmista, että laajennus on otettu käyttöön CLI:n php.ini-tiedostossa.
Laravelin asennuksen tarkistaminen:
Asennuksen valmistuttua käynnistä Laravelin kehityspalvelin:
php artisan serveSinun pitäisi nähdä:
INFO Server running on [http://127.0.0.1:8000]Vieraile selaimellasi osoitteessa http://localhost:8000. Näet Laravelin tervetulosivun.
Tuotannon kaltaisissa ympäristöissä Apachen tai Nginx:n kanssa:
Määritä verkkopalvelimesi osoittamaan public-hakemistoon (ei projektin juureen). Laravelin public/index.php on kaikkien pyyntöjen sisäänkäyntipiste.
Huom: Lue lisää Laravelista oppaastamme 'Kuinka asentaa Laravel Ubuntuun'.
WordPressin asentaminen
Lataa ja pura 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/wordpressWordPress vaatii MySQL- tai MariaDB-tietokannan. Asenna MySQL tarvittaessa:
sudo apt install mysql-server
sudo mysql_secure_installationmysql_secure_installation-skripti kehottaa sinua tekemään seuraavat toimet:
- Aseta pääkäyttäjän salasana
- Poista nimettömät käyttäjät
- Estä root-käyttäjän etäkirjautuminen
- Poista testitietokanta
- Lataa valtuustaulukot uudelleen
Luo tietokanta ja käyttäjä WordPressille:
sudo mysql -u root -pMySQL-kehotteessa:
CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Korvaa secure_password vahvalla salasanalla. WordPress käyttää näitä tunnuksia yhdistääkseen tietokantaan.
Jos WordPress ei pysty yhdistämään tietokantaan:
- Varmista, että MySQL on käynnissä:
sudo systemctl status mysql- Testaa tietokantayhteys:
mysql -u wpuser -p wordpress_dbJos tämä epäonnistuu, tarkista:
- Käyttäjätunnus ja salasana ovat oikein
- Tietokanta on olemassa:
SHOW DATABASES; - Käyttäjällä on seuraavat oikeudet:
SHOW GRANTS FOR 'wpuser'@'localhost';
- Tarkista, että PHP:n MySQL-laajennus on asennettu:
php -m | grep mysqlJos sitä ei ole, asenna se:
sudo apt install php8.1-mysql
sudo systemctl restart apache2 # or php8.1-fpm for NginxWordPressin asennuksen viimeistely:
Määritä verkkopalvelimesi osoittamaan kohtaan /var/www/wordpress (katso vaihe 2 Apachessa tai vaihe 3 Nginxissä). Vieraile sivustolla selaimessasi. WordPress kehottaa sinua:
- Valitse kielesi
- Syötä tietokannan kirjautumistiedot (käytä luomaasi tietokantaa, käyttäjätunnusta ja salasanaa)
- Viimeistele asennus
Huomautus: Yksityiskohtaisia ohjeita WordPressin asentamiseen varten katso Kuinka asentaa WordPress LAMP:in avulla Ubuntussa.
Symfonyn asetusten määrittäminen
Asenna Symfony Composerin avulla:
composer create-project symfony/website-skeleton my-symfony-app
cd my-symfony-appSymfony vaatii samat laajennukset kuin Laravel. Käynnistä kehityspalvelin:
symfony server:startTai käytä PHP:n sisäänrakennettua palvelinta:
php -S localhost:8000 -t publicJos Symfony-asennus epäonnistuu laajennusvirheiden vuoksi:
Tarkista, että kaikki vaaditut laajennukset on asennettu ja ladattu:
php -m | grep -E 'mbstring|xml|curl|zip|bcmath'Jos joitakin puuttuu, asenna ne ja käynnistä verkkopalvelimesi uudelleen.
Vaihe 9 — Parhaat käytännöt paikalliseen kehitykseen
Varmista paikallinen ympäristösi, käytä versiohallintaa, määritä oikeat tiedostojen käyttöoikeudet ja ota käyttöön ympäristökohtaiset asetukset. Nämä käytännöt ehkäisevät tietoturvaongelmia ja tekevät kehityksestä sujuvampaa.
Turvallisuusnäkökohdat
Jopa paikallisessa kehityksessä noudata tietoturvan parhaita käytäntöjä:
Poista käytöstä vaaralliset PHP-funktiot tuotannossa: Funktiot kuten
exec(),system()jashell_exec()tulisi rajoittaa tuotannonphp.ini-tiedostoissa.Käytä ympäristömuuttujia: Tallenna arkaluonteiset asetukset
.env-tiedostoihin (älä koskaan sitoudu näitä versionhallintaan). Laravel ja Symfony tukevat tätä natiivisti.Aseta oikeat tiedostooikeudet: Verkkopalvelimen tiedostojen tulee olla luettavissa verkkopalvelimen käyttäjälle, mutta ei kirjoitettavissa:
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 {} \;Miksi nämä käyttöoikeudet ovat tärkeitä: Hakemistot tarvitsevat 755 (luku, kirjoitus ja suoritus omistajalle; luku ja suoritus muille), jotta verkkopalvelin voi käsitellä niitä. Tiedostot tarvitsevat 644 (luku ja kirjoitus omistajalle; vain luku muille), jotta verkkopalvelin voi lukea niitä, mutta ei muokata. Tämä estää haitallisia skriptejä ylikirjoittamasta tiedostojasi.
Versiohallinnan integrointi
Käytä aina versionhallintaa PHP-projekteissasi. Alusta Git projektihakemistossasi:
cd /var/www/your-project
git initLuo .gitignore-tiedosto sulkeaksesi tarpeettomat tiedostot pois:
/vendor/
/node_modules/
.env
.DS_Store
*.logSuorituskyvyn optimointi
Parempaa suorituskykyä paikallisessa kehityksessä varten:
Ota OPcache käyttöön: OPcache sisältyy PHP 8.1:een ja parantaa suorituskykyä välimuistittamalla käännettyä PHP-koodia.
Käytä Composerin autoloaderin optimointia:
composer install --optimize-autoloader --no-dev- Määritä PHP-FPM-poolit paremman resurssienhallinnan saavuttamiseksi, jos käytät Nginxiä.
Vaihe 10 — Yleisimpien ongelmien vianmääritys
Yleisiä PHP-asennusongelmia ovat puuttuvat laajennukset, väärät tiedostojen käyttöoikeudet, verkkopalvelimen kokoonpano-ongelmat ja version ristiriidat. Useimmat ongelmat voidaan ratkaista tarkistamalla laajennusten asennus, varmistamalla tiedostojen käyttöoikeudet ja tutkimalla verkkopalvelimen lokit.
PHP-laajennuksia ei ladata
Jos php -m ei näytä juuri asentamaasi lisäosaa:
- Varmista, että se on todella asennettu:
dpkg -l | grep php8.1-extension_name- Tarkista, onko laajennustiedosto olemassa:
ls /usr/lib/php/*/extension_name.so- Varmista, että se on otettu käyttöön
php.ini-tiedostossa. Joidenkin laajennusten käyttöönotto täytyy tehdä nimenomaisesti:
grep -i extension_name /etc/php/8.1/*/php.ini- Käynnistä verkkopalvelimesi uudelleen:
# For Apache
sudo systemctl restart apache2
# For PHP-FPM
sudo systemctl restart php8.1-fpm- Tarkista, mitä
php.ini-tiedostoa käytetään:
php --iniVarmista, että tarkistat oikean php.ini-tiedoston (CLI vs web-palvelin).
Jos laajennus ei vieläkään ilmesty:
- Jotkin laajennukset vaativat lisäjärjestelmäkirjastoja. Tarkista laajennuksen dokumentaatio
- Varmista, että olet asentanut oikean version (php8.1-laajennus, ei php8.0-laajennus)
- Tarkista ristiriitaiset PHP-versiot, jotka saattavat häiritä
500 Sisäinen palvelinvirhe
500-virhe tarkoittaa, että palvelimella tapahtui virhe, mutta yksityiskohtia ei voida näyttää. Tarkista virhelokit:
# 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.logYleiset syyt ja ratkaisut:
- Väärät tiedostojen käyttöoikeudet: PHP-tiedostojen on oltava web-palvelimen käyttäjän luettavissa
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 {} \;Puutteelliset PHP-laajennukset: Tarkista virheloki viesteistä, kuten „Kutsu määrittelemättömään funktioon”. Asenna puuttuva laajennus ja käynnistä verkkopalvelin uudelleen.
PHP-tiedostojen syntaksivirheet: Virheloki näyttää tiedoston ja rivinumeron. Yleisiä ongelmia:
- Puuttuvat puolipisteet
- Sulkemattomat sulkeet tai lainausmerkit
- Määrittelemättömien funktioiden tai luokkien käyttäminen
Väärä verkkopalvelimen määritys:
- Apache: Tarkista virtuaalisen isännän asetukset, moduulin lataus
- Nginx: Varmista PHP-FPM-soketin polku, FastCGI-konfiguraatio
PHP-muistin raja ylitetty: Kasvata
memory_limit-arvoaphp.ini-tiedostossa, jos näet “Sallittu muistin määrä on loppunut” -virheilmoituksia
PHP-version ristiriidat
Jos php -v näyttää eri version kuin odotettu, sinulla on useita PHP-versioita asennettuna.
Tarkista, mitkä versiot on asennettu:
dpkg -l | grep php | grep -E 'php[0-9]'Käytä oikeaa versiota nimenomaan:
php8.1 -v
php8.1 -mPäivitä verkkopalvelimesi käyttämään PHP 8.1:
Apachessa poista käytöstä muut PHP-moduulit ja ota käyttöön PHP 8.1:
sudo a2dismod php7.4 php8.0 # if they exist
sudo a2enmod php8.1
sudo systemctl restart apache2PHP-FPM:ssä pysäytä muut versiot ja käynnistä 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-fpmAseta PHP 8.1 oletusarvoiseksi CLI-versioksi:
sudo update-alternatives --set php /usr/bin/php8.1Composerin muistiongelmat
Jos Composer loppuu muisti, näet virheen, kuten:
Fatal error: Allowed memory size of 134217728 bytes exhaustedKorjaa se ajamalla Composer suuremmalla muistilla:
php -d memory_limit=512M /usr/local/bin/composer installTai kasvata PHP:n muistirajaa php.ini-tiedostossa:
memory_limit = 512MJos Composerin asennus epäonnistuu hashin ristiriidan vuoksi:
Tiivisteen varmennus saattaa epäonnistua, jos:
- Asenna ohjelma on päivitetty sen jälkeen, kun latasit sen (lataa uudelleen saadaksesi uusimman tiivisteen)
- Latauksesi vioittui (yritä ladata uudelleen)
- Olet välityspalvelimen takana, joka muokkaa tiedostoja (tarkista verkkoyhteysasetuksesi)
Tietokantayhteysongelmat
Jos PHP-sovelluksesi ei voi muodostaa yhteyttä MySQL/MariaDB:hen, saatat nähdä virheitä, kuten:
SQLSTATE[HY000] [2002] No such file or directorytai
Access denied for user 'username'@'localhost'Vianmääritysvaiheet:
- Varmista, että tietokantapalvelu on käynnissä:
sudo systemctl status mysqlJos se ei ole käynnissä, käynnistä se:
sudo systemctl start mysql
sudo systemctl enable mysql- Tarkista, että PHP:n MySQL-laajennus on asennettu:
php -m | grep mysqlJos sitä ei ole, asenna se:
sudo apt install php8.1-mysql
sudo systemctl restart apache2 # or php8.1-fpm for Nginx- Vahvista tietokannan kirjautumistiedot ja käyttöoikeudet. Testaa yhteys:
mysql -u username -p database_nameJos tämä epäonnistuu, tarkista:
- Käyttäjätunnus ja salasana ovat oikein
- Tietokanta on olemassa:
SHOW DATABASES; - Käyttäjällä on käyttöoikeudet:
SHOW GRANTS FOR 'username'@'localhost';
Huomautus: MySQL:n asentamisesta katso Ohjeet MySQL:n asentamiseen Ubuntuun.
PHP-tiedosto näkyy tavallisena tekstinä suorittamisen sijaan
Jos PHP-tiedostosi näkyy selaimessa pelkkänä tekstinä:
Tarkista tiedostopääte: Sen täytyy olla
.php, ei.txttai.htmlVarmista, että PHP käsittelee tiedostoja:
- Apache: Tarkista, että
mod_phpon käytössä:apache2ctl -M | grep php
- Apache: Tarkista, että
- Nginx: Tarkista, että PHP-FPM on käynnissä ja että soketin polku on oikea
Tarkista tiedoston käyttöoikeudet: Verkkopalvelimen on pystyttävä lukemaan tiedosto
Varmista, että tiedosto sisältää PHP-koodia: Varmista, että se alkaa
<?phptai<?Tarkista verkkopalvelimen asetukset:
- Apache: Virtuaalipalvelin ei välttämättä ole oikein määritetty
- Nginx:
Sijainti ~ \.php$-lohko saattaa puuttua tai olla väärä
Tiedoston lähetysongelmat
Jos tiedostojen lataaminen epäonnistuu, saatat nähdä virheitä, kuten:
The uploaded file exceeds the upload_max_filesize directiveTarkista nämä php.ini-asetukset:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300Tärkeää: post_max_size on oltava suurempi kuin upload_max_filesize. Jos asetat upload_max_filesize=100M, aseta post_max_size=110M tai suurempi.
Jos tiedostojen lähettäminen epäonnistuu edelleen:
- Tarkista virheloki saadaksesi tarkat virheilmoitukset
- Varmista, että latauskansio on olemassa ja kirjoitettavissa:
sudo chmod 755 /path/to/upload/directory
sudo chown www-data:www-data /path/to/upload/directory- Tarkista levyn tila:
df -h - Varmista, että lomake käyttää
enctype="multipart/form-data"
Käynnistä verkkopalvelimesi uudelleen tehdessäsi muutoksia php.ini-tiedostoon.
UKK
Kuinka asennan PHP 8.1:n Ubuntulle?
Asenna PHP 8.1 Ubuntun pakettienhallinnan avulla: sudo apt update && sudo apt install php8.1. PHP 8.1 on saatavilla Ubuntun oletusarkistoissa, joten lisäpakettivarastoja ei tarvita.
Mitkä PHP-laajennukset ovat välttämättömiä kehityksessä?
Peruslaajennuksiin kuuluvat php8.1-cli, php8.1-mysql, php8.1-curl, php8.1-xml, php8.1-mbstring, php8.1-zip, php8.1-gd ja php8.1-bcmath. Nämä kattavat tietokantayhteydet, HTTP-pyynnöt, merkkijonojen käsittelyn ja kuvankäsittelyn.
Kuinka määritän PHP:n Apachen tai Nginxin kanssa?
Apachen kanssa asenna libapache2-mod-php8.1 ja ota se käyttöön komennolla sudo a2enmod php8.1. Nginxin kanssa asenna php8.1-fpm ja konfiguroi Nginx lähettämään PHP-pyynnöt PHP-FPM-sokettiin FastCGI:n avulla.
Kuinka voin varmistaa, että PHP on asennettu oikein?
Suorita php -v tarkistaaksesi PHP-version. Luo testitiedosto sisältäen <?php phpinfo(); ?> ja avaa se verkkopalvelimesi kautta saadaksesi yksityiskohtaiset PHP-asetustiedot.
Voinko ajaa Laravelia tai WordPressiä paikallisesti tällä asetuksella?
Kyllä. Laravel vaatii Composerin ja yllä mainitut standardit PHP-laajennukset. WordPress tarvitsee MySQL-tietokannan PHP:n lisäksi. Molemmat kehykset toimivat joko Apache- tai Nginx-konfiguraatioiden kanssa.
Kuinka asennan Composerin PHP-projekteja varten?
Lataa Composer-asennustiedosto, tarkista sen hash-arvo ja asenna se järjestelmänlaajuisesti: sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer. Vahvista komennolla composer --version.
Miten voin korjata puuttuvat PHP-laajennukset?
Tarkista asennetut laajennukset komennolla php -m. Asenna puuttuvat laajennukset komennolla sudo apt install php8.1-extensions_nimi ja käynnistä sitten verkkopalvelimesi uudelleen.
Miten määritän PHP-virheraportoinnin kehitystä varten?
Muokkaa php.ini-tiedostoa ja aseta display_errors=On, error_reporting=E_ALL ja log_errors=On. Muista poistaa virheiden näyttö käytöstä tuotantoympäristöissä.
Mikä on ero Apachen ja Nginxin välillä PHP:n kanssa?
Apache käyttää mod_php-moduulia PHP:n käsittelyyn suoraan (PHP on upotettu Apachen prosessiin), kun taas Nginx vaatii PHP-FPM:n (FastCGI Process Manager) PHP-pyyntöjen käsittelyyn (PHP toimii erillisenä palveluna). Katso yllä oleva “Valitseminen Apachen ja Nginx:n välillä” -osio saadaksesi yksityiskohtaisen vertailutaulukon. Molemmat lähestymistavat toimivat hyvin; valitse suorituskykyvaatimusten, tuntemuksen ja olemassa olevan infrastruktuurin perusteella.
Voinko asentaa useita PHP-versioita samaan järjestelmään?
Kyllä, työkaluja kuten phpenv tai phpbrew käyttäen. Kuitenkin useimmissa kehitystilanteissa yksi PHP-versio riittää. Käytä versioiden hallintatyökaluja, kun sinun täytyy testata sovelluksia eri PHP-versioilla.
Johtopäätös
Sinulla on nyt täysin konfiguroitu PHP 8.1 -kehitysympäristö Ubuntulla, jossa on tuki sekä Apache- että Nginx-verkkopalvelimille. Asennukseesi sisältyvät olennaiset PHP-laajennukset, Composer riippuvuuksien hallintaan sekä asianmukainen konfiguraatio paikallista kehitystä varten.
Ennen seuraavan projektisi aloittamista harkitse integroidun kehitysympäristön (IDE) kuten VS Code asentamista PHP-laajennuksilla syntaksin korostusta, virheenkorjausta ja IntelliSense-tukea varten.
Kun ympäristösi on valmis, voit tutkia PHP-kehitystä tarkemmin:
- Opi PHP:n perusteet otsikolla Kuinka työskennellä merkkijonojen kanssa PHP:ssä
- Rakenna rajapintoja käyttämällä 'Kuinka käyttää verkkorajapintoja PHP:ssä'
- Ymmärrä funktioita kohdassa Kuinka käyttää funktioita PHP:ssä
- Ota tietokannat käyttöön ohjeiden mukaan: PostgreSQL:n asentaminen ja käyttäminen Ubuntussa
Tuotantokäyttöön harkitse Linux-Console.net-sovellusalustan käyttöä PHP-sovellustesi käyttöönottoon suoraan GitHubista automaattisen skaalaamisen ja SSL-sertifikaattien kanssa.
Kiitos, että opiskelet Linux-Console.net -yhteisön kanssa.

