Hoe Yii PHP Framework op Ubuntu te installeren
Yii (uitgesproken als Yee of [ji:]) is een gratis en open source, snel, krachtig, veilig, flexibel en toch pragmatisch, en efficiënt generiek webprogrammeerframework voor het ontwikkelen van allerlei soorten webapplicaties met behulp van PHP.
In dit artikel leert u hoe u de nieuwste versie van het Yii-framework in Ubuntu LTS-releases (langdurige ondersteuning) kunt installeren om te beginnen met het ontwikkelen van moderne PHP-webapplicaties.
Platformondersteuning
Yii bevat de volgende Ubuntu LTS-releases (langdurige ondersteuning):
- Ubuntu 20.04 LTS (“Focal”)
- Ubuntu 18.04 LTS (“Bionische”)
- Ubuntu 16.04 LTS (“Xenial”)
Vereisten
- Een actief exemplaar van de Ubuntu-server.
- Een LEMP-stack met PHP 5.4.0 of hoger.
- A Composer – een pakketbeheerder op applicatieniveau voor PHP.
Op deze pagina
- Yii Framework installeren via Composer in Ubuntu
- Yii uitvoeren met behulp van PHP Development Server
- Yii Project in productie uitvoeren met behulp van een NGINX HTTP-server
- Schakel HTTPS in op Yii-applicaties met Let's Encrypt
Er zijn twee manieren om Yii te installeren: met behulp van de Composer pakketbeheerder of door het te installeren vanuit een archiefbestand. De eerste is de aanbevolen manier, omdat je hiermee met één enkele opdracht nieuwe extensies kunt installeren of Yii kunt bijwerken.
Yii Framework installeren via Composer in Ubuntu
Als je Composer niet hebt geïnstalleerd, kun je het installeren met de volgende opdrachten, waarmee je later Yii installeert en de afhankelijkheden ervan beheert.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Zodra je composer hebt geïnstalleerd, ga je naar de map /var/www/html/
waarin je webapplicaties of websitebestanden worden opgeslagen en installeer je vervolgens het Yii pakket met de composer (vervang testproject door de naam van de directory van uw webapplicatie).
cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
Yii uitvoeren met behulp van PHP Development Server
Op dit punt bent u klaar om het Yii raamwerk voor ontwikkeling te gaan gebruiken. Om de PHP-ontwikkelserver te starten, gaat u naar de map testprojects (uw mapnaam moet anders zijn, afhankelijk van wat u in de vorige opdracht hebt opgegeven) en start vervolgens de ontwikkelingsserver. Standaard zou het moeten werken op poort 8080.
cd /var/www/html/testproject/
php yii serve
Om de ontwikkelingsserver op een andere poort te laten draaien, bijvoorbeeld poort 5000, gebruikt u de vlag --port
zoals weergegeven.
php yii serve --port=5000
Open vervolgens uw webbrowser en navigeer met behulp van het volgende adres:
http://SERVER_IP:8080
OR
http://SERVER_IP:5000
Yii Project in productie uitvoeren met behulp van een NGINX HTTP-server
Om een Yii applicatie in productie te implementeren en er toegang toe te krijgen, is een HTTP-server zoals NGINX, Apache/HTTPD of andere ondersteunde webserversoftware vereist.
Om toegang te krijgen tot de Yii-applicatie zonder uw poort te typen, moet u het vereiste DNS A
-record aanmaken om uw domein naar uw Yii-framework-applicatieserver te verwijzen .
Voor deze handleiding laten we zien hoe u een Yii applicatie implementeert met NGINX. U moet dus een configuratiebestand voor een virtuele host of een serverblok maken in de map /etc/nginx/sites-available/ voor uw applicatie, zodat NGINX deze kan bedienen.
sudo vim /etc/nginx/sites-available/testproject.me.conf
Kopieer en plak de volgende configuratie erin (vervang testprojects.me
en www.testprojects.me
door uw domeinnaam). Specificeer ook de manier waarop NGINX FastCGI verzoeken doorgeeft aan PHP-FPM. In dit voorbeeld gebruiken we een 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;
}
}
Sla het bestand op en sluit het.
Controleer vervolgens de configuratiesyntaxis van NGINX op juistheid. Als deze in orde is, schakelt u de nieuwe applicatie in zoals weergegeven:
sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf
Start vervolgens de NGINX-service opnieuw om de nieuwe wijzigingen toe te passen:
sudo systemctl restart nginx
Ga terug naar uw webbrowser en navigeer met uw domeinnaam.
http://testprojects.me
OR
http://www.testprojects.me
Schakel HTTPS in op Yii-applicaties met Let's Encrypt
Ten slotte moet u HTTPS inschakelen op uw website. U kunt een gratis Let’s Encrypt SSL/TLS-certificaat gebruiken (dat geautomatiseerd is en door alle moderne webbrowsers wordt herkend) of een certificaat aanschaffen bij een commerciële CA.
Als u besluit een Let’s Encrypt-certificaat te gebruiken, kan dit automatisch worden geïnstalleerd en geconfigureerd met behulp van de certbot-tool. Om certbot te installeren, moet je snapd installeren.
sudo snap install --classic certbot
Gebruik vervolgens certbot om uw gratis SSL/TLS-certificaat te verkrijgen en te installeren/configureren voor gebruik met de NGINX-webserver (geef een geldig e-mailadres op voor verlenging en volg de aanwijzingen om de installatie te voltooien):
sudo certbot --nginx
Ga nu nogmaals naar uw webbrowser om te bevestigen dat uw Yii-applicatie nu op HTTPS draait (onthoud dat HTTP automatisch moet worden omgeleid naar >HTTPS).
http://testprojects.me
OR
http://www.testprojects.me
Voor meer informatie, zoals het verbinden van uw applicatie met een database, raadpleegt u de Yii-frameworkdocumentatie op de officiële Yii-projectwebsite. Probeer het eens en deel uw mening over Yii of stel vragen via het onderstaande feedbackformulier.