Sådan installeres Yii PHP Framework på Ubuntu
Yii (udtales Yee eller [ji:]) er en gratis og open source, hurtig, høj ydeevne, sikker, fleksibel, men alligevel pragmatisk og effektiv generisk webprogrammeringsramme til udvikling af alle slags webapplikationer ved hjælp af PHP.
I denne artikel lærer du, hvordan du installerer den nyeste version af Yii-rammen i Ubuntu LTS (langvarig support) -udgivelser for at begynde at udvikle moderne PHP-webapplikationer.
Yii har følgende Ubuntu LTS-udgivelser (langvarig support):
- Ubuntu 20.04 LTS (“Focal”)
- Ubuntu 18.04 LTS (“Bionic”)
- Ubuntu 16.04 LTS (“Xenial”)
- A running instance of the Ubuntu server.
- A LEMP stack with PHP 5.4.0 or above.
- A Composer – an application-level package manager for the PHP.
På denne side
- Installing Yii Framework via Composer in Ubuntu
- Running Yii Using PHP Development Server
- Running Yii Project in Production Using an NGINX HTTP Server
- Enable HTTPS on Yii Applications Using Let’s Encrypt
Der er to måder at installere Yii ved hjælp af Composer-pakkehåndteringen eller ved at installere den fra en arkivfil. Førstnævnte er den anbefalede måde, da det giver dig mulighed for at installere nye udvidelser eller opdatere Yii med en enkelt kommando.
Hvis du ikke har Composer installeret, kan du installere det ved hjælp af følgende kommandoer, som senere installerer Yii og administrerer dens afhængigheder.
$ 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 installeret komponisten, skal du flytte til biblioteket /var/www/html/
, der gemmer dine webapplikationer eller webstedsfiler, og derefter installere Yii-pakken ved hjælp af komponisten (udskift testprojekt med navnet på din webapplikations bibliotek).
$ cd /var/www/html/ $ composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
På dette tidspunkt er du klar til at begynde at bruge Yii-rammen til udvikling. For at køre PHP-udviklingsserveren skal du flytte til testprojects-biblioteket (dit katalognavn skal være forskelligt afhængigt af hvad du har angivet i den forrige kommando) og derefter starte udviklingsserveren. Som standard skal den køre på port 8080.
$ cd /var/www/html/testproject/ $ php yii serve
For at køre udviklingsserveren på en anden port, for eksempel port 5000, skal du bruge flagget --port
som vist.
$ php yii serve --port=5000
Åbn derefter din webbrowser, og naviger ved hjælp af følgende adresse:
http://SERVER_IP:8080 OR http://SERVER_IP:5000
For at implementere og få adgang til et Yii-program i produktionen kræves der en HTTP-server såsom NGINX, Apache/HTTPD eller anden understøttet webserver-software.
For at få adgang til Yii-applikationen uden at skrive din port skal du oprette den krævede DNS A
-post for at pege dit domæne til din Yii framework-applikationsserver.
I denne vejledning viser vi, hvordan du implementerer en Yii-applikation med NGINX. Så du skal oprette en virtuel vært eller en serverblokkonfigurationsfil under/etc/nginx/sites-available/biblioteket til din applikation, så NGINX kan tjene den.
$ sudo vim /etc/nginx/sites-available/testproject.me.conf
Kopier og indsæt følgende konfiguration i den (udskift testprojects.me
og www.testprojects.me
med dit domænenavn). Angiv også de midler, NGINX vil overføre FastCGI-anmodninger til PHP-FPM, i dette eksempel bruger vi et UNIX-stik (/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; } }
Gem filen, og luk den.
Kontroller derefter NGINX-konfigurationens syntaks for korrekthed, hvis det er ok, skal du aktivere den nye applikation som vist:
$ sudo nginx -t $ sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf
Genstart derefter NGINX-tjenesten for at anvende de nye ændringer:
$ sudo systemctl restart nginx
Gå tilbage til din webbrowser og naviger med dit domænenavn.
http://testprojects.me OR http://www.testprojects.me
Endelig skal du aktivere HTTPS på dit websted. Du kan enten bruge et gratis Lad os kryptere SSL/TLS-certifikat (som er automatiseret og anerkendt af alle moderne webbrowsere) eller erhverve et certifikat fra en kommerciel CA.
Hvis du beslutter at bruge et Lad os kryptere certifikat, kan det automatisk installeres og konfigureres ved hjælp af certbot-værktøjet. For at installere certbot skal du installere snapd for at installere det.
$ sudo snap install --classic certbot
Brug derefter certbot til at hente og installere/konfigurere dit gratis SSL/TLS-certifikat til brug med NGINX-webserveren (angiv en gyldig e-mail til fornyelse og følg vejledningen for at fuldføre installationen):
$ sudo certbot --nginx
Gå nu til din webbrowser igen for at bekræfte, at din Yii-applikation nu kører på HTTPS (husk HTTP skal automatisk omdirigere til HTTPS).
http://testprojects.me OR http://www.testprojects.me
For mere information såsom at forbinde din applikation til en database, se Yii-rammedokumentationen fra det officielle Yii-projektwebsted. Prøv det og del dine tanker om Yii, eller stil spørgsmål ved hjælp af feedbackformularen nedenfor.