Umbraco installeren

Ingediend door Dirk Hornstra op 11-feb-2018 20:44

Omdat we bij mijn huidige werkgever aan de slag gaan met Umbraco ben ik gaan kijken of ik hier zelf een eigen project mee kan maken. Door ermee te werken ga je begrijpen hoe het werkt. Ik had al het zip-bestand gedownload op https://our.umbraco.org/download , maar de Visual Studio Solution die ik daar heb, dat project is niet te builden, waarschijnlijk iets fout gedaan, dus eerst maar beginnen op https://our.umbraco.org/documentation/Getting-Started/

En dan doen we het goed, bij het begin beginnen. Ik zie daar dat je het project kunt runnen in Visual Studio Code, enige voorwaarde is dat je de IIS Express plug-in installeert, hier te vinden: https://marketplace.visualstudio.com/items?itemName=warren-buckley.iis-express

Ook wordt opgemerkt dat je in Visual Studio niet de ingebouwde webserver Casini kunt gebruiken, maar in VS kun je wel aangeven dat je de boel met IIS wilt draaien. Ik heb in Visual Studio een leeg web-project gemaakt, .NET Framework 4.6.1. Je moet niet voor ASP.NET Core kiezen (wat wel steeds meer de standaard wordt) omdat Umbraco dat niet ondersteunt. Via Nuget Packages vervolgens umbracocms toegevoegd. 

Het project gebuild, dat gaat goed. Vervolgens gestart (zonder debuggen). Ik krijg het installatiescherm te zien, kies voor de SQL Compact Edition omdat ik voor mijn eigen project als enige in die database ga werken. E-mailadres invullen, wachtwoord invoeren, install. Het gaat allemaal goed. Ik kom in de URL /umbraco wat je in de "back-office" brengt. Hier krijg je eerst een snelle tutorial waar de schermen uit bestaan. Helemaal prima, ik ga dit project eerst op mijn online-omgeving zetten om te kijken of het dan nog werkt + in de web.config regelen dat je altijd naar de /umbraco-URL gaat. En ook meteen de boel forceren naar https:



<rewrite>

  <rules>
        <rule name="Redirect to HTTPS" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll">
                <add input="{HTTPS}" pattern="off" />
                <add input="{HOST}" pattern="bo.prijs-bewust.nl" /><!-- niet op lokale testomgeving -->
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Temporary" appendQueryString="true" />
        </rule>
        <rule name="ForwardToBackOffice" stopProcessing="true">
            <match url="^$" />
            <action type="Redirect" url="/umbraco" redirectType="Temporary" appendQueryString="true" />
        </rule>
  </rules>
</rewrite>

In Visual Studio gekozen voor Publish. Die bestanden overgezet naar de live-omgeving. Dat duurt even, want het zijn 1684 bestanden. Als ik daar de URL open krijg ik een 403-access denied foutmelding te zien. Na wat meer informatie te tonen zie ik dat er geen rechten zijn op de map \App_Data\TEMP\PluginCache

Dat kan kloppen, die map bestaat namelijk (nog) helemaal niet. Map aangemaakt, reload. Volgende melding is dat er geen rechten zijn op het bestand App_Data\TEMP\PluginCache\umbraco-plugins.PROD-WEB-00201.hash . De map bestaat nu wel, dus we moeten nu echt wat qua rechten doen. De IIS gebruiker moet ik hier schrijfrechten op geven. Dat lost het op, volgende foutmelding. Er zijn nu geen rechten op Views\MacroPartials. Ook dat klopt, want die map bestaat niet. Map aangemaakt, nu zijn we bijna klaar. We krijgen nu de foutmelding dat Umbraco niet kan starten omdat er geen connectie met de database gemaakt kan worden.

Dat klopt ook weer omdat App_Data niet aangemaakt was en dus ook Umbraco.sdf niet geplaatst was. Deze overgezet. Vervolg-foutmelding is een schrijffout op een lock-bestand ergens in App_Data/TEMP. Daarom op die (en onderliggende mappen) schrijfrechten gegeven aan de IIS-user. Daarna een foutmelding dat er geen fysiek sjabloon voor de Home is. Ik weet niet wat het met die "publish" is, maar er missen dus tig bestanden. Alle .cshtml-bestanden overgezet naar de submap Views en ook meteen alle submappen met inhoud maar overgezet. Daarna krijg ik beeld, maar zie je wel dat je alle stylen en afbeeldingen mist. De map css, scripts en alle submappen in Media overgezet. 

Het werkt nu allemaal naar behoren. Het kan natuurlijk zijn dat er nog zaken missen. De oorzaak heb ik wel gevonden. Bij het instellen van de nuget heb je een beperkt aantal mappen. Na de installatie zijn dat er veel meer. Je moet dus in je Solution Explorer even "alle bestanden" tonen en daar de mappen die je mee wilt nemen bij publicatie "includen". Daardoor worden ze bij het publiceren wel meegenomen. Maar als ik dat doe, dan krijg ik een flink aantal foutmeldingen, dat zal ook de reden zijn dat ik initieel het project niet aan de praat kreeg. Volgende project wordt het toevoegen van een eigen module waarbij ik data opvraag uit een mySQL-database en daar ook naartoe moet schrijven. Ik ben benieuwd of dat gaat lukken.