Vill du veta mer om Yii? Läsa Introduktion till Yii Framework och följ vår Yii Programmeringsserie.
I dagens handledning förklarar vi hur du installerar Yii i en lokal utvecklingsmiljö för både Windows och MacOS. För Windows-guiden kommer vi att lita på WAMP Server, en Windows-webbutvecklingsmiljö för Apache, PHP och Mac, och för Mac-guiden använder vi sin kusin, MAMP. Även om Rod använder WAMP i dagens handledning finns det också en Windows-version av MAMP.
Jag skriver Mac-delen av den här guiden, och min kollega Rod Ussing skriver Windows-sidan. Jag träffade Rod i gymnasiet i Kalifornien vid mitt andra programmeringsjobb, ett mycket stort hexadecimalt tal för år sedan. Han använder fortfarande Windows, men efter åtta års arbete på Microsoft och trött på att starta om systemet för att starta om Outlook, lämnade jag MacOS.
Yii är en otroligt pålitlig, väl utformad, högpresterande ram för PHP, eftersom Rails är för Ruby och liknar Laravel. Om du undrar om du kan bygga verkliga applikationer i Yii, kolla in mötesplanerare och vår bygga din start-serie.
Jag älskar kodning i Yii. Allting är snabbare och lättare för mig. Och det är relativt enkelt så långt som ramverk går (det är jag som kastar skugga på Rails).
Vi börjar med grunderna för vad som är unikt att installera Yii i macOS, och sedan gå vidare till Windows. Eftersom det som behövs för att slutföra installationen på varje plattform konvergerar beskriver vi de återstående instruktionerna i en enhetlig form för båda plattformarna.
Yii Basic är den enklaste formen av Yii. Du kan bygga alla typer av applikationer med det, men det är bäst för en enskild nivå, t.ex. en kund som står inför sidan.
Här är katalogstrukturen för en Yii Basic-applikation med bara en uppsättning kataloger för en enda applikation:
tillgångar / innehåller tillgångsdefinitionskommandon / innehåller konsolkommandon (controllers) config / innehåller programkonfigurationer controllers / innehåller webbkontroller klasser mail / innehåller visningsfiler för e-postmodeller / innehåller modellklasser runtime / innehåller filer genererade under körtest / innehåller olika test för den grundläggande applikationsleverantören / innehåller beroendevisningar från tredje partens paket / innehåller visningsfiler för webbapplikationswebben / innehåller inmatningsskript och webbresurser
Yii 2 Advanced Project Template är bäst för att utveckla komplexa webbapplikationer med flera nivåer, till exempel frontänd, bakre ände och konsol, var och en är en separat Yii-applikation. Till exempel kan administrativa sidor köras i bakre änden, och cron-uppgifter kan köras i konsolmiljön.
Däremot är här katalogstrukturen för en Yii Advanced-applikation med flera nivåer:
common config / innehåller delade konfigurationer mail / innehåller visningsfiler för e-postmodeller / innehåller modellklasser som används i både backend och frontend test / innehåller test för vanliga klasser konsol config / innehåller konsolkonfigurationer controllers / innehåller console controllers (kommandon) migreringar / innehåller databasmigrationsmodeller / innehåller konsolspecifika modellklasser runtime / innehåller filer som genereras under runtime-backend-tillgångar / innehåller programtillgångar som JavaScript och CSS config / innehåller backend-konfigurationscontrollers / innehåller webbkontroller klassmodeller / innehåller backend-specifika modellklasser runtime / innehåller filer som genereras under körtesttest / innehåller test för backend-applikationsvyer / innehåller visningsfiler för webbapplikationswebben / innehåller inmatningsskript och webbresurser frontend-tillgångar / innehåller programtillgångar som JavaScript och CSS config / innehåller frontendkonfigurationskontrollers / innehåller webbkontroller klasser modeller / contai ns frontend-specifika modellklasser runtime / innehåller filer genererade under körtesttest / innehåller test för frontend-applikationsvyer / innehåller visningsfiler för webbapplikationswebben / innehåller inmatningsskript och webbresurser widgets / innehåller frontend widgets-leverantör / innehåller beroende tredje part paketmiljöer / innehåller miljöbaserade överskridanden
Varje nivå är en egen webbplats, men de kan enkelt dela kod och en gemensam databas om så önskas. Jag använder den här mallen i vår startserie. Yii Advanced ger också inbyggt konfigurationsstöd för olika miljöer, vilket gör teamutveckling enklare.
Jag har kodat i Yii på macOS i flera år nu. Visst, det finns många olika sätt att köra en Apache, MySQL, PHP-miljö på en Mac, men jag föredrar MAMP.
I grund och botten, besök bara MAMP-webbplatsen och ladda ner macOS-paketet:
När du har laddat ner kan du dra paketet till tillämpningar mapp och dubbelklicka för att starta MAMP. Detta visar ett MAMP-fönster:
Klick Inställningar att konfigurera de portar du vill ha servern på (jag använder 8888
för Apache):
Klick Webbserver att granska eller ändra katalog på din server. Jag använder Apache lokalt:
Yii2 kräver Composer, en populär dependence manager för PHP. Om du inte redan har Composer installerat gör du följande:
curl -s http://getcomposer.org/installer | php mv kompositör.phar / usr / local / bin / composer
Använd sedan Kompositör för att installera Yii2. Installationsförfrågan kräver att du använder dina egna GitHub-kontouppgifter registrera dig om du inte har ett konto.
Som Rod beskriver vidare nedan kräver installation av Yii komponentens tillgångs plugin:
kompositör globalt kräver "fxp / composer-asset-plugin: 1.0.0-beta2"
Han rekommenderar att du konfigurerar ett konto med GitHub och konfigurera en åtkomsttoken. Anledningen till detta är att under installationen av Yii kan antalet begäranden överstiga gränsgränsen för GitHub API, och kompositören kan sluta och begära in ditt GitHub inloggningsuppgifter för att få en GitHub API-åtkomsttoken under installationen.
När du är klar kan du installera Yii. Vi använder Yii basic och installerar det i ~ / Sites / hello
katalogen:
kompositör skapa projekt - föredra-dist yiisoft / yii2-app-basic hej
Skapa sedan en symlink för MAMP till din sajt-appkatalog:
cd / applikationer / MAMP / htdocs ln -s ~ / webbplatser / hej / / applikationer / MAMP / htdocs / hej
Om du väljer att installera Yii Advanced, kan det hjälpa till att aktivera och anpassa din virtuella värdfil:
$ nano /Applications/MAMP/conf/apache/httpd.conf # Virtuella värdar inkluderar /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Nedan har jag konfigurerat frontend.dev och backend.dev för att kartlägga till en Yii Advanced install i ~ / Sites / yiiplus
katalog som har en symbolisk länk i / Program / MAMP
.
$ nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf NameVirtualHost *: 8888ServerName frontend.dev DocumentRoot / Applications / MAMP / htdocs / yiiplus / frontend / web / # använd mod_rewrite för ganska URL-stöd RewriteEngine on # Om en katalog eller en fil finns, använd begäran direkt RewriteCond% REQUEST_FILENAME! -f RewriteCond% REQUEST_FILENAME! -d # Annars vidarebefordra begäran till index.php RewriteRule. index.php # använd index.php som indexfil DirectoryIndex index.php # ... andra inställningar ... ServerName backend.dev DocumentRoot / Applications / MAMP / htdocs / yiiplus / backend / web / # använd mod_rewrite för ganska URL-stöd RewriteEngine on # Om en katalog eller en fil finns, använd begäran direkt RewriteCond% REQUEST_FILENAME! -f RewriteCond% REQUEST_FILENAME! -d # Annars vidarebefordra begäran till index.php RewriteRule. index.php # använd index.php som indexfil DirectoryIndex index.php # ... andra inställningar ...
Om du väljer att använda Yii Advanced, uppmanar jag dig att även kolla in min handledning om detta, som erbjuder mer information.
Det är de plattformsspecifika stegen för macOS. Nu ska vi titta på förberedelserna för Yii på Windows. Senare återkommer vi för att slutföra konfigurationerna med steg som fungerar för båda plattformarna. Om du är strängt en macOS-användare, hoppa framåt till Slutför Yii-konfigurationen sektion.
För Yii på Windows ska vi använda WAMP. För att börja, måste du ladda ner och konfigurera WAMP på din Windows-dator. För denna handledning kommer vi att installera WAMP på din lokala dator (vilken servern kommer att adressera som localhost). Om du vill installera på en Windows-tillverkningsserie måste du kontakta din leverantör för serverinformation och följa rekommendationerna för installation och konfiguration av WAMP Server eller en alternativ Apache, MySQL, PHP-stack för den omgivningen.
Eftersom fokuseringen av denna handledning är att installera Yii, föreslår vi att du konsulterar en av de många utmärkta existerande handledning som täcker installationen av WAMP; Du kommer bli förvånad över hur lätt det är. Eftersom det också är en PHP-applikation, är WordPress-guiden för att installera WAMP en bra utgångspunkt.
När vi har installerat och konfigurerat WAMP måste vi installera Kompositör, som är en dependence manager och installatör för PHP-projekt. Detta gör att vi kan komma igång med vår Yii-installation.
Även om du kan hämta Yii-paket från GitHub, använder vi kompositören i den här handledningen för att installera den. Om du inte är bekant med Kompositören kan du lära dig mer i den här handledningen.
Låt oss först gå till GitHub för att hämta och installera den senaste versionen av Composer-setup.exe, som vid denna tidpunkt är v4.5.0.
När installationen är klar är det en bra idé att logga ut och logga in igen för att vara säker på att alla filer är uppdaterade [Jeff här: eller köp en Mac].
Du kan kontrollera din installation genom att öppna kommandotolken och gå till:
cd \ Användare \ ditt-användarnamn
Ange följande kommando:
kompositör -V
Versionsinformationen för Kompositören ska då visas, något som:
Kompositör version 1.4.1 2017-03-10 09:29:45
För att hantera dina projekttillgångar i Composer .json, utan att behöva installera NPM eller Bower, måste du se till att kompositören har alla paket som behövs genom att köra installationskommandot för Composer Assets plugin.
Öppna kommandotolken i Windows och navigera till var din PHP-mapp finns. På denna installering finns PHP i katalogen wamp64 \ bin \ och det är PHP version 7.0.10, så vi skriver:
cd \ wamp64 \ bin \ php \ php7.0.10
Skriv sedan följande kommando:
kompositör globalt kräver "fxp / composer-asset-plugin: ^ 1.3.1"
Tänk på att programvaran ändras, så var noga med att kontrollera att du arbetar med den senaste stabila versionen. Var försiktig med betas eftersom om du får för långt ut på blödningskanten kan saker börja bryta.
För de mest aktuella versionerna av Kompositör och Kompositör Asset Plugin:
Nu, låt oss konfigurera WAMP för Yii. Ändra din katalog till WAMP-installationen \ www för den här installationen:
cd \ wamp64 \ www
I den här katalogen skapar vi en ny katalog med namnet Yii Basic genom att skriva:
mkdir yii-basic
Det är här vi ska installera Yii Basic. Du kan hoppa över det här steget och installera Yii direkt i www-katalogen, men skapa en tydligt namngiven katalog undviker förvirring, speciellt om du planerar att installera både Yii Basic och Yii avancerade mallar.
I den nya yii-basic-katalogen kör vi följande kommando för att installera Yii Basic Template:
kompositör skapa -projekt --prefer-dist --stability = dev yiisoft / yii2-app-basic yii-basic
Vi kan verifiera Yii genom att navigera till mappen "Grundläggande" i katalogen du skapade:
cd \ wamp64 \ bin \ www \
Nu skriver vi in kommandot:
PHP yii tjäna
Detta kommer att starta Yii med WAMPs PHP-motor.
Om du vill anpassa de lokala webbläsaradresserna till din webbplats, eller hänvisa tydligt till framsidan och baksidan av Yii-Advanced-webbplatsen, behöver du göra lite mer.
Använd antingen textredigeraren Öppna fil dropdown eller genom att navigera direkt i Utforskaren, gå till filen:
C: \ WINDOWS \ system32 \ drivers \ etc \ värdar
Vi letar efter avsnittet som läser:
# localhost namnupplösning hanteras inom DNS själv. 127.0.0.1 localhost
För att förbereda Yii-Advanceds flera webbplatser, låt oss lägga till en för frontend och en för backend:
127.0.0.1 frontend.dev 127.0.0.1 backend.dev
Det kommer att se ut så här:
Du hittar mer om att hitta och konfigurera Windows Host-filen här.
Det är en bra idé att kontrollera att virtuella värdar är aktiverade i Apache httpd.conf-filen.
Var mycket försiktig när du redigerar httpd.conf-filen - gör en kopia innan du börjar, och se till att du förstår vad du gör innan du gör ändringar, annars kan du enkelt förstöra din WAMP-server. [Jeff här, låter som Rod talar ur erfarenhet.]
För att hitta httpd.conf, skriv:
cd \ wamp64 \ bin \ apache \ apache2.4.23 \ conf
Jag gillar den här guiden för en mer detaljerad förklaring av redigering av httpd.conf för att aktivera funktioner relaterade till virtuella värdar i Apache och konfigurera virtuella värdar på WAMP.
Vi behöver nu konfigurera våra Apache Virtual Hosts. Med hjälp av vår textredigeringsmeny eller Windows Utforskare navigerar vi till följande katalog:
C: Wamp64 \ bin \ Apache \ apache2.4.23 \ conf \ extra \ httpd-vhosts.conf
Det borde redan finnas en virtuell värd för localhost, så nu måste vi lägga till Virtual Hosts för Yii frontend och Yii backend. Jag rekommenderar att du skriver namnet ovanför varje virtuell värd för att undvika förvirring. (Glöm inte att kommentera namnet!)
d.v.s.. #Frontend
Virtual Host-konfigurationsfilen ska se ut så här.
I det här exemplet installerade vi Yii Advanced i c: / wamp64 / www / Yii-avancerad
och skapade en applikation med namnet yii-applikation. Det är också okej att installera Yii i www så din väg kunde läsa mer enkelt c: / wamp64 / www / myapp / frontend / web.
Var uppmärksam på Document
och Directory
rader. De måste båda innehålla den fullständiga vägen till Yii-applikationskatalogen hela vägen till "web" -filen som ligger i respektive frontend- och backend-kataloger. Innehållet i DocumentRoot och Directory är identiskt förutom att sökvägen för katalog finns i citattecken.
För att installera Yii avancerad mall, låt oss återvända till wamp64 \ www-katalogen:
cd \ wamp64 \ www
Nu ska vi skapa en ny katalog med namnet yii-advanced:
mkdir yii-advanced
I den nya katalogen kör vi följande kommando, som installerar Yii Advanced mallen:
komponent skapar projekt -prefer-dist yiisoft / yii2-app-avancerad yii-applikation
Hittills har installationen av Yii Basic och Yii Advanced varit detsamma. Nu måste vi lägga till några steg för att få din Yii Advanced Template redo för åtgärd.
Om du antar att PHPmyAdmin är installerad på din WAMP-server (det ingår i MAMP), kan du faktiskt skapa databasen via PHPmyAdmin GUI, men vi kommer att ta hand om och använda SQL-kommandoraden, som ärligt talar inte mycket mer.
I kommandoraden Windows, navigera till MySQL-mappen genom att skriva:
cd \ wamp64 \ www \ bin \ mysql \ mysql5.7.14 \ bin
Du kan också göra detta från var som helst så länge som WAMP eller MAMP finns i din lokala miljöväg.
Sedan, för både Mac och Windows, skriv:
mysql -u rot-p
Detta kommer att föra oss till kommandoraden mysql. Nu ska vi utföra följande kommando i SQL:
skapa databas yii2test;
(Du kan namnge databasen vad du vill, förutsatt att du är säker på att du använder rätt namn under resten av processen.)
Nu ska vi skapa ett användarnamn och lösenord för den här databasen genom att skriva följande SQL-kommandon:
ALLA ALLA PÅ yiit2est. * Till 'ditt-användarnamn' @ 'localhost' IDENTIFIED BY 'your_chosen_password'; FLUSH PRIVILEGES; UTGÅNG;
Du kommer nu lämna MySQL och returneras till konsolkommandot.
Håll databas användarnamnet och lösenordet till hands eftersom vi behöver den för att konfigurera PHP-konfigurationsfilen (common / config / main-local.php), vilket gör det möjligt för Yii att kommunicera säkert med MySQL.
Detta är onödigt för Yii-basinstallationer.
För att initiera Yii avancerade måste vi navigera till Yii-Advanced-programmappen. I det här fallet skulle det vara:
cd \ wamp64 \ www \ yii-advanced \
Skriv sedan in i det
:
Detta kommer att starta initieringsskriptet som kommer att fråga om du vill initiera Yii för en utvecklings- eller produktionsmiljö. sannolikt kommer det att se ut så här:
Vilken miljö vill du att applikationen ska initieras i? [0] Utveckling [1] Produktion
För denna handledning ska vi arbeta i en utvecklingsmiljö, skriv in 0 och tryck på Enter, och skriv sedan "yes" (utan citat) när du blir ombedd och initieringen kommer att slutföras.
Vi är nästan färdiga - allt som återstår nu är några konfigurationssteg, och du kan komma till arbetsprogrammering med Yii.
För Yii-basic redigerar du /yii-basic/config/db.ini
. För, Yii-advanced, kommer du att redigera /yii-advanced/common/config/main-local.php
.
För att redigera den här filen måste vi använda en textredigerare. Atom är ett utmärkt val som kommer att tjäna dig bra när du går in i mer avancerad kodning.
För att öppna konfigurationsfilen, använd antingen Öppna fil dropdown i textredigeraren eller navigera direkt till config-filen med Utforskaren och högerklicka Öppna med och välj din textredigerare. (I Windows kan du behöva köra textredigerare som admin.)
Följande exempel från den installation vi använder idag illustrerar denna process. Tänk på att du kanske använder en annan typbeteckning och har en lite annan väg beroende på vad du namngav dina mappar.
Konfigureringsfilen ska se ut så här:
Kom ihåg att ange samma användarnamn och lösenord som du använde för att konfigurera din Yii MySQL-databas, annars spelar Yii och MySQL inte bra ut!
Och snälla tänka inte ens på att använda din databas root användarnamn och lösenord i config-filen! [Jeff här ... verkligen, gör inte.]
Yii Advanced har egna migreringar. Nu när MySQL är upprättat behöver vi några tabeller. Yii-migranterna skapar tabeller och scheman i din MySQL-databas programmerat.
För att starta Yii-migreringsverktyget i Windows måste vi gå till vår Yii-installationskatalog genom att skriva:
cd \ wamp64 \ www \ yii-advanced \ yii-ansökan
Återigen kan du välja att installera det utan den moderkatalog som Rod skapade för den här demo. Till exempel använder jag för MAMP:
$ cd ~ / webbplatser / yii-advanced
Skriv nu följande kommando:
yii migrera
I ett ögonblick kommer du att bli ombedd om du vill "Använd ovanstående migration?"
Typ Ja
och slå tillbaka. Om allt går bra får vi ett meddelande om att Yii migrerade framgångsrikt.
Nu för sanningens ögonblick. När du besöker localhost: 8888
i din webbläsare bör du se
För Yii Advanced kan du behöva försöka frontend.dev
eller inkludera frontänden eller baksidan, t.ex.. localhost: 8888 / frontend
. Om du inte aktiverar din värdfil kan du komma åt Yii direkt via sökvägen, localhost: 8888 / web
.
Om du installerade avancerad mall, gå till Bli Medlem länka och ange ett användarnamn, e-postadressen du vill använda och ett lösenord.
Använd inte ditt MySQL-lösenord (det du skrev in i PHP-konfigurationsfilen). Det här är Yii användarkonto databasen med nya användarnamn och lösenord.
Din första användarregistrering är också Yii-programmets administrativa användare med tillgång till allt.
Nu när du är registrerad skriver du in i webbläsaren:
backend.dev
Du borde få en admin inloggningsskärm där du kan ange ditt nya användarnamn och lösenord:
Detta tar dig tillbaka till ovanstående Yii "Grattis
"Sida men som en autentiserad användare.
Nu med alla grattis gå runt, varför inte gratulera dig själv som du bara har installerat Yii. Snyggt gjort. [Jeff här, om du gjorde det på Windows, gå och köp en Mac och prova den där.]
Jag hoppas att vår handledning idag hjälper dig att komma igång med Yii. Rod och jag njöt av att skriva det här tillsammans.
Titta på kommande handledning i vår Programmering med Yii2-serien när vi fortsätter att dyka in i olika aspekter av ramen. Var noga med att kolla in vår Bygga din start med PHP-serien som använder Yii2s avancerade mall när vi bygger en verklig applikation.
Hur man programmerar med Yii: s Komma igång-episod gör ett bra jobb med att gå in i detaljer om att ställa in Yii Basic och en produktions Linux-server.
Om du vill veta när nästa Yii2 handledning kommer, följ mig @ reifman på Twitter eller kolla min instruktörssida. Min instruktörssida kommer att innehålla alla artiklar från denna serie så snart de publiceras.