Hvordan installere Yii PHP Framework på Ubuntu
Yii (uttales Yee eller [ji:]) er en gratis og åpen kildekode, rask, høy ytelse, sikker, fleksibel, men pragmatisk og effektiv generisk nettprogrammeringsramme for utvikling av alle typer nettapplikasjoner som bruker PHP.
I denne artikkelen vil du lære hvordan du installerer den nyeste versjonen av Yii-rammeverket i Ubuntu LTS (langsiktig støtte)-utgivelser for å begynne å utvikle moderne PHP-webapplikasjoner.
Yii har følgende Ubuntu LTS (langsiktig støtte) utgivelser:
- Ubuntu 20.04 LTS (\Fokal)
- Ubuntu 18.04 LTS (\Bionic)
- Ubuntu 16.04 LTS (\Xenial)
- En kjørende forekomst av Ubuntu-serveren.
- En LEMP-stabel med PHP 5.4.0 eller nyere.
- A Composer – en pakkebehandling på applikasjonsnivå for PHP.
På denne siden
- Installere Yii Framework via Composer i Ubuntu
- Kjøre Yii ved hjelp av PHP Development Server
- Kjøre Yii-prosjekt i produksjon ved hjelp av en NGINX HTTP-server
- Aktiver HTTPS på Yii-applikasjoner ved å bruke Let's Encrypt
Det er to måter å installere Yii på, ved å bruke Composer-pakkebehandlingen eller ved å installere den fra en arkivfil. Førstnevnte er den anbefalte måten, siden den lar deg installere nye utvidelser eller oppdatere Yii med en enkelt kommando.
Hvis du ikke har Composer installert, kan du installere den ved å bruke følgende kommandoer, som senere vil installere Yii og administrere dens avhengigheter.
$ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ sudo chmod +x /usr/local/bin/composer
Når du har installert composer, gå inn i katalogen /var/www/html/
som vil lagre webapplikasjonene eller nettstedsfilene dine, og installer deretter Yii-pakken ved å bruke komponisten (erstatt testprosjektet med navnet på webapplikasjonens katalog).
$ cd /var/www/html/ $ composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
På dette tidspunktet er du klar til å begynne å bruke Yii-rammeverket for utvikling. For å kjøre PHP-utviklingsserveren, gå inn i testprojects-katalogen (katalognavnet ditt bør være forskjellig avhengig av hva du spesifiserte i forrige kommando), og start deretter utviklingsserveren. Som standard skal den kjøre på port 8080.
$ cd /var/www/html/testproject/ $ php yii serve
For å kjøre utviklingsserveren på en annen port, for eksempel port 5000, bruk --port
-flagget som vist.
$ php yii serve --port=5000
Åpne deretter nettleseren og naviger med følgende adresse:
http://SERVER_IP:8080 OR http://SERVER_IP:5000
For å distribuere og få tilgang til en Yii-applikasjon i produksjon, kreves en HTTP-server som støttet webserverprogramvare.
For å få tilgang til Yii-applikasjonen uten å skrive inn porten, må du opprette den nødvendige DNS A
-posten for å peke domenet ditt til Yii-rammeapplikasjonsserveren.
For denne veiledningen vil vi vise hvordan du distribuerer en Yii-applikasjon med NGINX. Så du må lage en konfigurasjonsfil for virtuell vert eller serverblokk under /etc/nginx/sites-available/-katalogen for applikasjonen din slik at NGINX kan betjene den.
$ sudo vim /etc/nginx/sites-available/testproject.me.conf
Kopier og lim inn følgende konfigurasjon i den (erstatt testprojects.me
og www.testprojects.me
med ditt domenenavn). Spesifiser også måten NGINX vil sende FastCGI-forespørsler til PHP-FPM, i dette eksemplet bruker vi en UNIX-socket (/run/php/php7.4-fpm.sock):
server { set $host_path "/var/www/html/testproject"; #access_log /www/testproject/log/access.log main; server_name testprojects.me www.testprojects.me; root $host_path/web; set $yii_bootstrap "index.php"; charset utf-8; location / { index index.html $yii_bootstrap; try_files $uri $uri/ /$yii_bootstrap?$args; } location ~ ^/(protected|framework|themes/\w+/views) { deny all; } #avoid processing of calls to unexisting static files by yii location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { try_files $uri =404; } # pass the PHP scripts to FastCGI server listening on UNIX socket location ~ \.php { fastcgi_split_path_info ^(.+\.php)(.*)$; #let yii catch the calls to unexising PHP files set $fsn /$yii_bootstrap; if (-f $document_root$fastcgi_script_name){ set $fsn $fastcgi_script_name; } fastcgi_pass unix:/run/php/php7.4-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fsn; #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fsn; } # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.) location ~ /\. { deny all; access_log off; log_not_found off; } }
Lagre filen og lukk den.
Sjekk deretter NGINX-konfigurasjonssyntaksen for korrekthet, hvis den er OK, aktiver den nye applikasjonen som vist:
$ sudo nginx -t $ sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf
Start deretter NGINX-tjenesten på nytt for å bruke de nye endringene:
$ sudo systemctl restart nginx
Gå tilbake til nettleseren din og naviger med domenenavnet ditt.
http://testprojects.me OR http://www.testprojects.me
Til slutt må du aktivere HTTPS på nettstedet ditt. Du kan enten bruke et gratis Let's Encrypt SSL/TLS-sertifikat (som er automatisert og gjenkjent av alle moderne nettlesere) eller anskaffe et sertifikat fra en kommersiell CA.
Hvis du bestemmer deg for å bruke et Let's Encrypt-sertifikat, kan det automatisk installeres og konfigureres ved hjelp av certbot-verktøyet. For å installere certbot, må du installere snapd for å installere den.
$ sudo snap install --classic certbot
Bruk deretter certbot til å skaffe og installere/konfigurere ditt gratis SSL/TLS-sertifikat for bruk med NGINX webserver (gi en gyldig e-post for fornyelse og følg instruksjonene for å fullføre installasjonen):
$ sudo certbot --nginx
Gå nå til nettleseren en gang til for å bekrefte at Yii-applikasjonen din nå kjører på HTTPS (husk at HTTP automatisk skal omdirigere til HTTPS).
http://testprojects.me OR http://www.testprojects.me
For mer informasjon som å koble applikasjonen din til en database, se Yii-rammedokumentasjonen fra det offisielle Yii-prosjektets nettsted. Prøv det og del tankene dine om Yii eller still spørsmål via tilbakemeldingsskjemaet nedenfor.