Contao-Camp 2024
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 60

Thema: Schritt für Schritt: Installation 4.5 mit Windows7 u. Xampp 7.2.1

  1. #1
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard Schritt für Schritt: Installation 4.5 mit Windows7 u. Xampp 7.2.1

    Update 2021:
    Mittlerweile existiert eine XAMPP Anleitung in der Contao Dokumentation.


    Hallo,
    hier wurde bereits mehrfach auf die Contao Installation über Windows/Xampp eingegangen. Ich habe die verschiedenen Beiträge (Beispiel) gelesen und wollte nochmals über eine frische Installation alle Schritte nachvollziehen. Daher dieser Beitrag.

    Update: Contao-Manager 1.0.0
    Der CM 1.0.0 läuft jetzt auch unter Windows/Xampp. Einfach die aktuelle "contao-manager.phar.php" in das Web Verzeichnis kopieren und aufrufen. In der "Serverkonfiguration" existiert jetzt die auch die Voreinstellung "Xampp (Windows)"

    Hinweis:
    Eine rudimentäre Alternative für Contao 4.4.x ohne eigene vhost Einträge im Xampp Standard Verzeichnis "/xampp/htdocs/" finden Sie hier ...

    Meine Voraussetzungen sind Windows7 mit der aktuellen Xampp Version (7.2.1).
    Da ich mehrere Xampp Versionen parallel laufen habe (s. hier) habe ich mir die aktuelle portable Version gezogen (xampp-portable-win32-7.2.1-0-VC15.zip).

    Update:
    Eine Windows Xampp Installation mit mehreren PHP Versionen nutzen
    Weiterhin bin ich unter Windows7 mit Administrator Rechten unterwegs - es wurde hier mehrfach darauf hingewiesen, das dies wichtig ist. Sind Sie als normaler Windows User angemeldet, sollten Sie darauf achten das Sie z.B. jeweils die Xampp Installation, das Xampp Control Panel o. die Xampp Shell als Administrator ausführen!

    Update:
    Alternativ kann man als normaler Windows User so vorgehen wie xchs und Spooky es hier weiter unten beschreiben.
    Darüberhinaus habe ich die originale Xampp/Apache Einstellungen nicht verändert - PHP läuft also weiterhin als Modul (Apache 2.0 Handler).

    Update:
    Vorgehensweise zur FastCGI Umsetzung mit dieser Xampp Version finden Sie hier.

    Update:
    Vorgehensweise zur SSL Nutzung / Xampp CertificateFile von Andreas - siehe:
    https://community.contao.org/de/show...l=1#post486836

    Xampp Installation:
    Ich habe das .zip nach "C:/xampp721" entpackt und im Anschluß die "setup_xampp.bat" aufgerufen.


    PHP Einstellungen:
    In der /php/php.ini habe ich die Extensions
    Code:
    extension=intl
    extension=soap
    aktiviert und überprüft ob der folgende Eintrag korrekt ist:
    allow_url_fopen = On


    Datenbank mysql bzw. MariaDB:
    In der "\phpMyAdmin\config.inc.php" habe ich folgendes geändert:
    Code:
    $cfg['Servers'][$i]['auth_type'] = 'config';
    nach
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    Für mysql habe ich in der "mysql/bin/my.ini " folgende Einträge (unterhalb der bestehenden innodb settings) ergänzt:
    Code:
    innodb_large_prefix = 1
    innodb_file_format = Barracuda
    innodb_file_format_max = Barracuda
    innodb_file_per_table = 1

    Virtuelle Hosts:
    HINWEIS:
    Dieser Abschnitt wird nicht unbedingt benötigt. Wer einfach mit einer "normalen" Xampp Konfiguration - ohne vhosts - arbeiten möchte - also eine Contao Installation z.B. in das Verzeichnis "c:\xampp\htdocs" e.g. "c:\xampp\htdocs\contao4" installiert kann im Anschluß das Contao Installtool einfach über "http://localhost/contao4/web/contao/install" aufrufen ...


    Da ich in der "httpd-vhosts.conf" mit der Direktive "VirtualDocumentRoot" arbeite habe ich in der "\apache\conf\extra\httpd-xampp.conf" das in dieser Xampp Version standardmäßige NICHT aktivierte Modul "vhost_alias_module" explizit geladen (einfach irgendwo einsetzen):

    Code:
    # for vhost settings with: VirtualDocumentRoot
    # see https://httpd.apache.org/docs/2.4/mod/mod_vhost_alias.html
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    Ich halte meine Websites außerhalb des Xampp Verzeichnisses im Verzeichnis "C:/__SITES__". Daher folgende Einträge in "\apache\conf\extra\httpd-vhosts.conf":
    Code:
    <Directory "C:/__SITES__">
      Options Indexes FollowSymLinks Includes ExecCGI
      Order deny,allow
      Allow from 127.0.0.1
      AllowOverride All
      Require all granted
      Allow from all
    </Directory>
    
    NameVirtualHost *:80
    UseCanonicalName Off
    
    <VirtualHost *:80>
      DocumentRoot "C:/xampp721/htdocs/"
      ServerName localhost
    </VirtualHost>
    
    <VirtualHost *:80>
      ServerAlias *.local
      VirtualDocumentRoot "C:/__SITES__/%1/htdocs/web"
    </VirtualHost>
    Im folgenden Beispiel möchte ich die Contao Daten in das Verzeichnis "C:/__SITES__/contao45" legen und habe entsprechend der obigen "VirtualDocumentRoot" Direktive in der Windows hosts Datei (\Windows\System32\drivers\etc\hosts) folgenden Eintrag hinterlegt:
    Code:
    127.0.0.1   contao45.dev4
    127.0.0.1   contao45.local
    Update:
    Normalerweise muß man in der Windows hosts jeden Eintrag manuell setzen (Wildcards sind nicht möglich). Spooky hat hier auf eine Alternative via "Acrylic DNS Proxy" aufmerksam gemacht.

    Update 2:
    Chrome und Firefox unterstützen die geliebte .dev nicht mehr. Ich nutze daher jetzt .local (Hab ich in den Angaben geändert.)

    Xampp starten:
    Wenn alles korrekt ist sollte man über das "Xampp Control Panel" nun Apache und MySQL starten können. Im "Xampp Control Panel" einmalig auf den "Shell" Button klicken - Es wird eine "xampp_shell.bat" im aktuellen Xampp Verzeichnis (hier: C:\xampp721 ) erstellt. Wenn man diese aufruft (als Administrator - nicht vergessen) sollte man bei Eingabe von "php -v" die PHP Version "PHP 7.2.1 (cli)" erhalten.


    Weitere Vorbereitungen:
    Um für den mysql root user ein Passwort zu setzen starten wir die Xampp Shell mit der Eingabe:
    Code:
    mysqladmin --user=root password "newpassword"
    (Danach sollte bei Aufruf von phpmyadmin zukünftig die Abfrage auf Benutzername ("root") und Passwort erfolgen.)

    Weiterhin löschen wir den anonymen User - siehe Beitrag
    Code:
    mysql -u root -p
    DROP USER ''@'localhost';
    Für Contao 4.5 steht in den Contao News:
    "Wir nutzen zukünftig utf8mb4 als Datenbank-Zeichensatz und utf8mb4_unicode_ci als Datenbank-Kollation, damit sämtliche Unicode-Zeichen gespeichert werden können."

    Wir erstellen uns entsprechend eine neue Datenbank auf der shell (alternativ über phpmyadmin):
    Code:
    mysql -u root -p
    CREATE DATABASE db_contao45 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    Wir sollten also eine neue, leere Datenbank "db_contao45" vorliegen haben - Check with phpmyadmin.


    Verzeichnisstruktur:
    Wir erstellen uns ein Verzeichnis "C:\__SITES__" mit dem Unterverzeichnis "contao45".

    Dies bewirkt das bei Aufruf von "http://contao45.local" - entsprechend der Direktive "VirtualDocumentRoot "C:/__SITES__/%1/htdocs/web" -
    die Inhalte aus "C:\__SITES__\contao45\htdocs\web" herangezogen werden.

    Die finale Verzeichnisstruktur sähe also so aus:
    Code:
    +xampp721
    +__SITES__
      +contao45
        +htdocs
          web
    Da das Unterverzeichnis "htdocs" noch nicht existiert kommt nun der PHP Composer ins Spiel. Unter Windows exisitiert kein "wget".
    Ich habe mir daher die "composer.phar" einfach in das Verzeichnis "C:\__SITES__\contao45" kopiert.

    (Manueller Download der "composer.phar" über https://getcomposer.org/download/ - im unteren Abschnitt hinter:
    If you prefer to download the phar manually, here are the available versions ...)

    Man könnte den Composer auch global installieren:
    http://www.codecheese.com/2015/02/in...xampp-windows/
    http://www.wdb24.com/how-to-install-...ws-with-xampp/


    Update:
    Oder das hier probieren ...
    Sorry - Am besten den "Composer Installer" und dann die Xampp-Shell nutzen: siehe Beitrag. Ich habe die Beschreibung an den Stellen entsprechend angepaßt

    Wir wechseln in der Xampp shell in das Verzeichnis "C:\__SITES__\contao45" und starten die Installation über
    Code:
    php composer.phar create-project contao/managed-edition htdocs 4.5.x
    composer create-project contao/managed-edition htdocs 4.5.x
    Im Verzeichnis "C:\__SITES__\contao45" sollte nun also ein Unterverzeichnis "htdocs" mit den entsprechenden Contao Verzeichnissen (u.a. "web") vorhanden sein.

    Im Anschluß rufen wir das Contao Installtool über den Browser auf:
    http://contao45.local/contao/install

    und geben hierbei unsere zuvor erstellte Datenbank "db_contao45" an ...
    Geändert von Franko (29.04.2021 um 13:37 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  2. #2
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Installation Erweiterungen:

    Zur Installation von Erweiterungen kopieren wir die "composer.phar" in das Verzeichnis "C:\__SITES__\contao45\htdocs" (hier liegt ja u.a. die erstellte composer.json).
    Zur Installation von z.B. euf_grid s. https://packagist.org/packages/erdmannfreunde/euf_grid:
    Code:
    php composer.phar require erdmannfreunde/euf_grid
    composer require erdmannfreunde/euf_grid
    Geändert von Franko (14.02.2018 um 18:53 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  3. #3
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Fun Part: Neue Website/vhost über 1:1 Kopie erstellen

    Neue Datenbank anlegen:
    Code:
    mysql -u root -p
    CREATE DATABASE db_contao45_2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    Bestehende Datenbank exportieren:
    Code:
    mysqldump -u root -p db_contao45 > db_contao45_export.sql
    Datenbank importieren:
    Code:
    mysql -u root -p db_contao45_2 < db_contao45_export.sql
    Neues Verzeichnis "C:\__SITES__\contao45copy" und Unterverzeichnis "htdocs" anlegen.
    In das Verzeichnis "C:\__SITES__\contao45copy\htdocs" die Dateien "composer.json", "composer.lock" und "composer.phar" aus "C:\__SITES__\contao45\htdocs" kopieren.

    In der Windows hosts den Eintrag hinzufügen:
    Code:
    127.0.0.1   contao45copy.dev4
    127.0.0.1   contao45copy.local
    Update:
    Chrome und Firefox unterstützen die geliebte .dev nicht mehr. Ich nutze daher jetzt .local (Hab ich in den Angaben geändert.)


    In das Verzeichnis "C:\__SITES__\contao45copy\htdocs" wechseln und
    Code:
    php composer.phar install
    composer install
    aufrufen.

    Anschließend das bestehende "C:\__SITES__\contao45\app\config" nach "C:\__SITES__\contao45copy\app" kopieren und in der dortigen "parameters.yml" den
    neuen Datenbank Eintrag setzen auf "database_name: db_contao45_2".

    Weitere, evtl. vorhandene spezifische Daten (aus system/config, flies, template etc.) ebenfalls kopieren ...

    Zur Sicherheit den Ordner "/var/cache" über den Windows Explorer löschen - alternativ via Shell
    Code:
    php vendor/bin/contao-console cache:clear --no-warmup
    php vendor/bin/contao-console cache:warmup
    und vorsichtshalber das Installtool aufrufen:
    http://contao45copy.local/contao/install

    ...
    Geändert von Franko (14.02.2018 um 19:12 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Weiterhin bin ich unter Windows7 mit Administrator Rechten unterwegs - es wurde hier mehrfach darauf hingewiesen, das dies wichtig ist. Sind Sie als normaler Windows User angemeldet, sollten Sie darauf achten das Sie z.B. jeweils die Xampp Installation, das Xampp Control Panel o. die Xampp Shell als Administrator ausführen!
    Eigentlich sollten Administratorrechte ja nicht notwendig sein, wenn man in den Gruppenrichtlinien der Richtlinie "Erstellen symbolischer Verknüpfungen" den eigenen Benutzer der Sicherheitseinstellung hinzufügt. Wer aufgrund von Betriebssystemrestriktionen keinen direkten Zugriff auf die Gruppenrichtlinien hat, kann dafür auch das Tool "Polsedit" verwenden.

    Jedenfalls gilt das unter Windows 10 – unter Windows 7 wird es aber wahrscheinlich ähnlich sein.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Siehe zu Polsedit auch meine Anleitung hier.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Im folgenden Beispiel möchte ich die Contao Daten in das Verzeichnis "C:/__SITES__/contao45" legen und habe entsprechend der obigen "VirtualDocumentRoot" Direktive in der Windows hosts Datei (\Windows\System32\drivers\etc\hosts) folgenden Eintrag hinterlegt:
    Code:
    127.0.0.1   contao45.dev4
    Damit du das auch nicht mehr für jede Seite (bzw. jeden Ordner) machen musst könntest du folgende Lösung verwenden: https://stackoverflow.com/a/9695861/374996

  7. #7
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Wie oben beschrieben wird PHP standardmäßig in Xampp als Modul betrieben. Das funktionierte bei mir zusammen mit der Contao 4.5.x Installation.
    Wer dennoch PHP als FastCGI ausführen/probieren möchte kann wie folgt vorgehen (analog zu diesem Beitrag):

    Über apachelounge die Win32 Version laden - mod_fcgid-2.3.9-win32-VC15.zip (zur Dokumentation).
    Hieraus die " mod_fcgid.so" nach "/apache/modules/" extrahieren.

    In der "/apache/conf/extra/httpd-xampp.conf" wie folgt anpassen (Auszüge):

    Code:
    #
    # PHP-Module setup
    #
    LoadFile "/xampp721/php/php7ts.dll"
    LoadFile "/xampp721/php/libpq.dll"
    LoadModule php7_module "/xampp721/php/php7apache2_4.dll"
    
    #<FilesMatch "\.php$">
    #    SetHandler application/x-httpd-php
    #</FilesMatch>
    #<FilesMatch "\.phps$">
    #    SetHandler application/x-httpd-php-source
    #</FilesMatch>
    
    # PHP als FCGI Modul ausführen
    LoadModule fcgid_module modules/mod_fcgid.so
    FcgidInitialEnv PHPRC "c:/xampp721/php"
    AddHandler fcgid-script .php
    FcgidWrapper "c:/xampp721/php/php-cgi.exe" .php
    und weiter unten

    Code:
    #    Alias /phpmyadmin "/xampp721/phpMyAdmin/"
    #    <Directory "/xampp721/phpMyAdmin">
    #        AllowOverride AuthConfig
    #        Require local
    #        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    #    </Directory>
        
      Alias /phpmyadmin "/xampp721/phpMyAdmin/"
        <Directory "/xampp721/phpMyAdmin">
            Options ExecCGI
            AllowOverride AuthConfig
            Require all granted
            ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
        </Directory>
    Die Xampp Pfade gegebenenfalls anpassen.

    Anschließend den Apache neu starten. In der phpinfo() sollte nun "Server API: CGI/FastCGI" stehen ...
    Geändert von Franko (13.02.2018 um 09:25 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  8. #8
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Verzeichnisstruktur:
    Wir erstellen uns ein Verzeichnis "C:\__SITES__" mit dem Unterverzeichnis "contao45" analog zu unserem Windows host Eintrag "contao45.dev4".

    Dies bewirkt das bei Aufruf von "http://contao45.dev4" - entsprechend der Direktive "VirtualDocumentRoot "C:/__SITES__/%1/htdocs/web" -
    auf die Inhalte aus "C:\__SITES__\contao45\htdocs\web" umgeleitet wird.

    Die finale Verzeichnisstruktur sähe also so aus:
    Code:
    +xampp721
    +__SITES__
      +contao45
        +htdocs
          web
    Da das Unterverzeichnis "htdocs" noch nicht existiert kommt nun der PHP Composer ins Spiel. Unter Windows exisitiert kein "wget".
    Ich habe mir daher die "composer.phar" einfach in das Verzeichnis "C:\__SITES__\contao45" kopiert.

    Man könnte den Composer auch global installieren:
    http://www.codecheese.com/2015/02/in...xampp-windows/
    http://www.wdb24.com/how-to-install-...ws-with-xampp/
    Bzgl. Verzeichnisstruktur: Man könnte das Ganze noch etwas vereinfachen, indem man auf den Unterordner htdocs/ verzichtet und stattdessen das Projekt direkt über
    Code:
    php composer.phar create-project contao/managed-edition contao45 4.5.x
    in das Verzeichnis __SITES__/ clont. Du hättest dann direkt diese Verzeichnisstruktur
    Code:
    +xampp721
    +__SITES__
      +contao45
        web
    und könntest den VirtualDocumentRoot Deines VirtualHosts folgendermaßen anpassen:
    Code:
    <VirtualHost *:80>
      ServerAlias *.dev4
      VirtualDocumentRoot "C:/__SITES__/%1/web"
    </VirtualHost>
    Noch einfacher und eleganter wäre es, wenn Du – wie oben von Dir kurz erwähnt – Composer global installierst (auf der Composer Projektwebsite gibt es dazu den Windows Installer). Dann nämlich könntest Du Deine Projekte über den folgenden Workflow anlegen:

    • neues Projektverzeichnis im Ordner __SITES__/ erstellen (z. B. C:/__SITES__/contao45) und dorthin wechseln
    • die Contao Managed Edition über
      Code:
      composer create-project contao/managed-edition . 4.5.x
      herunterladen


    So bräuchtest Du weder ein (Hilfs-)Verzeichnis htdocs/ noch müsstest Du die composer.phar von einem Verzeichnis ins andere kopieren.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  9. #9
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Hi,
    vielen Dank - hilft sicherlich.

    Ich lege normalerweise je Project Verzeichnis noch weitere Unterverzeichnisse an - z.B.:

    Code:
    +xampp721
    +__SITES__
      +contao45
        +logs
        +backup
        +infos
        +provider_info
        +htdocs
          web
    von daher ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  10. #10
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Alles klar. Dann macht es natürlich Sinn.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  11. #11
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Noch einfacher und eleganter wäre es, wenn Du – wie oben von Dir kurz erwähnt – Composer global installierst (auf der Composer Projektwebsite gibt es dazu den Windows Installer).
    Ich habe jetzt mal alle "composer.phar" Dateien aus den project Verzeichnissen gelöscht.
    Die "composer.phar" dann in das Xampp Verzeichnis "php" kopiert und eine "composer.bat" im gleichen Verzeichnis mit

    Code:
    @ECHO OFF
    SET SUBDIR=%~dp0
    php %SUBDIR%\composer.phar %*
    erstellt.

    Hinweis:
    Die "composer.pahr" habe ich manuell über https://getcomposer.org/download/ im Abschnitt "Manual Download - If you prefer to download the phar manually, here are the available versions" (weiter unten) - geladen.

    Xampp neu gestartet über die Xampp shell dann

    Code:
    composer -v
    oder in meiner C:\__SITES__\contao45\htdocs

    Code:
    composer update --dry-run --no-dev
    Danke


    Update:
    Man sollte einfach dem Rat von xchs folgen und den Composer über den "Windows Installer" installieren
    Geändert von Franko (14.02.2018 um 18:59 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Composer musst du nicht manuell global installieren. Nimm einfach den Windows Installer: https://getcomposer.org/download/

  13. #13
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Composer musst du nicht manuell global installieren. Nimm einfach den Windows Installer: https://getcomposer.org/download/
    Da ich hier mehrere xampp Versionen f. versch. PHP Versionen habe (sollte evtl. mal Mamp Pro versuchen - da kommt bald die Version 4 für Windows mit PHP Auswahl je vhost ) brauche ich die beiden Dateien ja nur in die jeweiligen PHP Verzeichnisse zu kopieren ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Du brauchst nicht unbedingt mehrere XAMPP Installationen um mehrere PHP Versionen zu haben. Du kannst dir die Verschiedenen PHP Versionen auch innerhalb von XAMPP organisieren und die Apache Konfiguration dementsprechend anpassen.

  15. #15
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du brauchst nicht unbedingt mehrere XAMPP Installationen um mehrere PHP Versionen zu haben. Du kannst dir die Verschiedenen PHP Versionen auch innerhalb von XAMPP organisieren und die Apache Konfiguration dementsprechend anpassen.
    Ist irgendwie generisch gewachsen - aber es stimmt - wäre vorteilhaft.
    Wäre sogar in jedem Fall hilfreich - gerade auch hinsichtlich des Contao Umzugs dev->provider via composer.lock - wenn man auf der dev Seite die genaue/verschiedene PHP Version switchen könnte.

    Soviel ich noch weiß wird dann FastCGI herangezogen. Je PHP Version/Verzeichnis die jeweilige php.ini anpassen - vor allem Pfade für error_log, extension_dir etc..
    Ich würde dann gern die httpd-xampp.conf mit einer Standard PHP Version belassen und die PHP Versionen in den vhost Einträgen switchen können ...

    Und da weiß ich momentan nicht weiter - mal einlesen.
    Oder hat von euch jemand ein vhost Beispiel mit unterschiedlichen PHP Versionen als Anhaltspunkt ...

    Danke
    Frank
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  16. #16
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    ... Ähm - und wie würde bei einer solchen Windows Xampp Umgebung dann der jeweilige php cli Aufruf in der shell aussehen ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  17. #17
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich verwende – neben XAMPP – auch Laragon als Webserver Stack. Dort kann man die Versionen des Webservers (Apache, nginx) bzw. von PHP ganz einfach mit zwei Mausklicks umschalten. Der Serverstack ist insgesamt schneller als XAMPP, VirtualHosts und Einträge in die hosts Datei werden automatisch angelegt, Webprojekte können bequem und schnell über die GUI installiert werden, z. B.
    Code:
    # Contao 4.4
    Contao 4.4=composer create-project contao/managed-edition %s 4.4.*
    
    # Contao 4.5
    Contao 4.5=composer create-project contao/managed-edition %s 4.5.*
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    ... Ähm - und wie würde bei einer solchen Windows Xampp Umgebung dann der jeweilige php cli Aufruf in der shell aussehen ...
    Einfach nur php . Oder je nach dem welche Möglichkeiten du über die PATH Variable zur Verfügung gestellt hast. Du könntest dann in der PATH Variable einen Pfad eintragen, in dem Symlinks oder Batch Dateien zu den Verschiedenen PHP Versionen drin sind, sodass du sie nachher mit php56, php70, php71 etc. aufrufen kannst.

  19. #19
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zum Thema: Eine Windows Xampp Installation mit mehreren PHP Versionen

    Wie hier mehrmals angesprochen gibt es verschiedene Webserver-Stack Lösungen/Xampp-Alternativen für Windows (z.B. Laragon laragon \ Mamp Pro 4 f. Windows (beta))
    hinsichtlich multiple PHP Profiles\Switches etc..
    Um mit Xampp verschiedene PHP Versionen nutzen zu können gibt es mehrere Möglichkeiten:

    Möglichkeit 1:
    Man kann die einzelnen Xampp Versionen vollständig separat installieren -
    s. hier

    Möglichkeit 2:
    Eine einfache Alternative finden Sie hier:
    https://stackoverflow.com/questions/...-in-my-windows

    In diesem Beispiel werden die verschiedenen Xampp PHP Versionen (TS binaries) herangezogen und die entsprechenden default conf Dateien je PHP Version
    über Batch Dateien gewechselt. Bei allen Aufrufen läuft dann PHP weiterhin als Modul.

    Hinweis:
    Diese Möglichkeit habe ich nicht weiter getestet - Wahrscheinlich muß man für die Ausführung auf der Kommandozeile (xampp shell) noch Anpassungen vornehmen.
    Geändert von Franko (14.02.2018 um 02:26 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  20. #20
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Möglichkeit 3 - Teil 1:
    Man beläßt die default Einstellungen der Xampp Version (Zur Zeit aktuell mit PHP 7.2.1 als Modul).
    Weitere PHP Versionen werden über "mod_fcgid.so" (FastCGI) via vhost Einträge gesteuert. Alle Angaben ohne Gewähr.

    Voraussetzungen:
    Im folgenden nutze ich die gleichen Pfadangaben/Verzeichnisstruktur wie zu Beginn dieses threads - Diese sind auf die eigenen Bedürfnisse anzupassen:
    Code:
    + xampp721
    + __SITES__
      + MyWebSite1
        + htdocs
          + web
      + MyWebSite2
        + htdocs
          + web

    Weitere PHP Version hinzufügen:
    Die folgenden Angaben dann für jede weitere PHP Version durchführen.

    Wir starten die Xampp-Shell (xampp_shell.bat) und checken die Apache Version im Verzeichnis "\apache\bin"
    Code:
    httpd -v
    
    Meine Ausgabe z.B.:
    Server version: Apache/2.4.29 (Win32)
    Apache Lounge VC15 Server built: Nov 3 2017 10:30:36
    Wir laden uns die gewünschte PHP Version von http://windows.php.net/download/
    Hier nehmen wir die PHP Version 7.1.14 und wählen das Win32(x86) NTS (Non Thread Safe) Release: php-7.1.14-nts-Win32-VC14-x86.zip

    Extrahieren nach "C:\xampp721\php7114"
    In diesem Ordner die "php.ini-development" nach "php.ini" kopieren\umbenennen

    In dieser "php.ini" folgende Einstellungen prüfen/setzen:

    Code:
    date.timezone = Europe/Berlin
    extension_dir = "\xampp721\php7114\ext"
    error_log="\xampp721\php7114\logs\php_error_log"
    Das Verzeichnis\Datei "\xampp721\php7114\logs\php_error_log" evtl. neu anlegen.

    Weitere Erweiterungen dann wie benötigt\gewünscht auskommentieren oder sich vereinzelt an der xampp "\php\php.ini" orientieren z.B.:
    Code:
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_fileinfo.dll
    extension=php_gd2.dll
    extension=php_gettext.dll
    extension=php_intl.dll
    extension=php_mbstring.dll
    extension=php_exif.dll
    extension=php_mysqli.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_sqlite.dll
    extension=php_soap.dll

    PHP auf der Kommandozeile via Xampp-Shell (xampp_shell.bat):
    Xampp setzt in der "xampp_shell.bat" verschiedene Angaben die zur Laufzeit der Xampp-Shell zur Verfügung stehen.
    Hier wird u.a. über den Eintrag "SET "PHPRC=%~dp0php" der Pfad auf die php.ini fest vorgegeben (auf /php).

    Diesen kommentieren wir daher aus:
    Code:
    REM SET "PHPRC=%~dp0php"
    Anderenfalls müßten wir immer den Pfad auf die korrekte php.ini mitschleppen - z.B.:
    C:\xampp721\php7114\php.exe -c C:\xampp721\php7114\php.ini -v

    Weiterhin ergänzen wir unser Verzeichnis "\php7114" wie folgt:
    Code:
    Von
    SET "Path=%~dp0;%~dp0php;%~dp0perl\site\bin;%~dp0perl\bin;%~dp0apache\bin;%~dp0mysql\bin;%~dp0FileZillaFTP;%~dp0MercuryMail;%~dp0sendmail;%~dp0webalizer;%~dp0tomcat\bin;%Path%"
    nach
    SET "Path=%~dp0;%~dp0php;%~dp0php7114;%~dp0perl\site\bin;%~dp0perl\bin;%~dp0apache\bin;%~dp0mysql\bin;%~dp0FileZillaFTP;%~dp0MercuryMail;%~dp0sendmail;%~dp0webalizer;%~dp0tomcat\bin;%Path%"
    Im Verzeichnis "\php7114" eine "php71cli.bat" anlegen:
    Code:
    @ECHO OFF
    REM %~dp0php -c "%~dp0php.ini" %*
    %~dp0php %*
    Sie müssen nun die Xampp-Shell neu starten: Mit folgenden Test sollten die Pfade zur jeweiligen php.ini stimmen - Meine Ergebnisse:
    Code:
    # php -v
    PHP 7.2.1 (cli) (built: Jan  4 2018 04:29:12) ( ZTS MSVC15 (Visual C++ 2017) x86 )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
    
    # php --ini
    Configuration File (php.ini) Path: C:\Windows
    Loaded Configuration File:         C:\xampp721\php\php.ini
    Scan for additional .ini files in: (none)
    Additional .ini files parsed:      (none)
    
    # php71cli -v
    PHP 7.1.14 (cli) (built: Jan 31 2018 00:24:47) ( NTS MSVC14 (Visual C++ 2015) x86 )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    
    # php71cli --ini
    Configuration File (php.ini) Path: C:\Windows
    Loaded Configuration File:         C:\xampp721\php7114\php.ini
    Scan for additional .ini files in: (none)
    Additional .ini files parsed:      (none)
    Wenn Sie beispielsweise die intl Erweiterung in der php.ini der PHP 7.1.14 gesetzt haben - sollten Sie folgende Anzeige erhalten:
    Code:
    # php71cli -i | findstr "intl"
    intl
    intl.default_locale => no value => no value
    intl.error_level => 0 => 0
    intl.use_exceptions => 0 => 0
    Darüberhinaus sollten alle bisherigen Xampp Seiten (localhost, xampp dashboard, phpmyadmin) beim Start Apache/MySQL über das "Xampp Control Panel"
    wie gewohnt laufen (via PHP 7.2.1 als Modul - s. phpinfo()) ...
    Geändert von Franko (14.02.2018 um 01:51 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  21. #21
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Möglichkeit 3 - Teil 2:
    Wir benötigen nun die PHP Auswahl im Browser. Machen Sie sich Kopien der Originalen "httpd-xampp.conf" und "httpd-vhosts.conf" im Verzeichnis "\apache\conf\extra".

    Wie hier beschrieben FastCGI Vorbereitungen mit "mod_fcgid.so" kopieren Sie sich die "mod_fcgid.so" in das Verzeichnis "\apache\modules". Anders als im erwähnten Beitrag sehen die conf Dateien jedoch anders aus.

    Belassen Sie die "httpd-xampp.conf" Einträge und kopieren lediglich folgendes an den Anfang:

    Code:
    # for vhost settings with: VirtualDocumentRoot
    # see https://httpd.apache.org/docs/2.4/mo...ost_alias.html
    
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    
    # load Modul mod_fcgid.so 
    # see https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
    
    LoadModule fcgid_module modules/mod_fcgid.so
    
    # Apache Module mod_fcgid settings as you need
    
    <IfModule fcgid_module>
      #Hinweis default: FcgidIOTimeout 40 
      #FcgidIOTimeout 40 
      
      #Hinweis default: FcgidConnectTimeout 3
      #FcgidConnectTimeout 3 
      
      #Hinweis default: FcgidMaxRequestsPerProcess 0
      #FcgidMaxRequestsPerProcess 0 
      
      #Hinweis default: FcgidMaxProcesses 1000
      #FcgidMaxProcesses 1000 
    </IfModule>
    Den Block "<IfModule fcgid_module> ... </IfModule>" können Sie auch weglassen.


    Hier meine modifizierte "httpd-vhosts.conf":

    Code:
    <Directory "C:/__SITES__">
      Options Indexes FollowSymLinks Includes ExecCGI
      Order deny,allow
      Allow from 127.0.0.1
      AllowOverride All
      Require all granted
      Allow from all
    </Directory>
    
    # use default PHP as modul
    <VirtualHost *:80>
      DocumentRoot "C:/xampp721/htdocs/"
      ServerName localhost
    </VirtualHost>
    
    # use default PHP as modul
    <VirtualHost *:80>
      ServerAlias *.local
      
      UseCanonicalName Off
      VirtualDocumentRoot "C:/__SITES__/%1/htdocs/web"
    </VirtualHost>
    
    # use PHP 7.1.14 via mod_fcgid
    <VirtualHost *:80>
      ServerAlias *.local7114
      
      UseCanonicalName Off
      VirtualDocumentRoot "C:/__SITES__/%1/htdocs/web"
      
      # path php.ini
      FcgidInitialEnv PHPRC "c:/xampp721/php7114"  
      
      AddHandler fcgid-script .php
      FcgidWrapper "c:/xampp721/php7114/php-cgi.exe" .php
    
      <FilesMatch "\.php$">
        SetHandler fcgid-script
        Require all granted
      </FilesMatch>
    </VirtualHost>
    In der Windows hosts Datei (\Windows\System32\drivers\etc\hosts) entsprechend unserer vhost ServerAlias folgende Einträge hinterlegen:
    Code:
    127.0.0.1      sitea.local 
    127.0.0.1      siteb.local7114
    Hinweis: Chrome und Firefox unterstützen die geliebte .dev nicht mehr. Ich nutze daher jetzt .local ...
    Spooky's Alternative für hosts Einträge mit wildcards s. Beitrag (Acrylic DNS Proxy)

    Im Verzeichnis "C:\__SITES__" zwei Verzeichnisse anlegen "sitea" und "siteb". Jeweils mit den Unterverzeichnissen "\htdocs" u. "\htdocs\web".
    In die beiden "\web" Verzeichnisse jeweils eine "phpinfo.php" anlegen (kann man auch aus "c:\xampp721\htdocs\dashboard\phpinfo.php" kopieren). Also ala:
    Code:
    + __SITES__
      + sitea
        + htdocs
          + web
      + siteb
        + htdocs
          + web
    Über das "Xampp Control Panel" Apache/MySQL starten.
    Aufrufe localhost, Xampp Dashboard, pypmyadmin sollten wie gewohnt (über PHP 7.2.1) laufen.

    http://sitea.local/phpinfo.php
    Die phpinfo sollte PHP 7.2.1 via "Apache 2.0 Handler" ausgeben und "Loaded Configuration File" auf "C:\xampp721\php\php.ini" zeigen ...

    http://siteb.local7114/phpinfo.php
    Die phpinfo sollte PHP 7.1.14 via "CGI/FastCGI" ausgeben und "Loaded Configuration File" auf "C:\xampp721\php7114\php.ini" zeigen ...

    Anmerkungen:
    Wenn man im "Xampp Control Panel" zu schnell Apache startet/stoppt/startet kann es einen Hinweis ala
    "Port 80 in Benutzung von "Unable to get info" (PID 5504)!"
    geben. Einen Augenblick warten - normalerweise geht es danach wieder.

    Ansonsten über den "Netstat" Button schauen ob der Port 80 nicht wirklich von einem anderen Dienst belegt wird.
    Wenn der Apache sonst nicht startet die logs nutzen und die conf Einträge überprüfen.

    Im Windows 7 Taskmanager finde ich einen oder mehrere Einträge ala "php-cgi.exe *32" obwohl ich Apache/MySQL gestoppt und
    das "Xampp Control Panel" beendet habe. Wenn ich das "Xampp Control Panel" dann wieder starte erhalte ich "manchmal" auch den obigen Hinweis - Apache und MySQL lassen sich
    dennoch wieder starten. Bis jetzt beende ich ansonsten diese Prozesse manuell über den Windows 7 Taskmanager.

    Wenn jemand hierzu Lösungen kennt bzw. elegantere Methoden hat - immer her damit ...
    Ansonsten werde ich diese Umgebung in Zusammenhang mit Contao Installation weiter testen.

    Danke
    Franko
    Geändert von Franko (14.02.2018 um 08:51 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  22. #22
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ein sehr schönes Tutorial! - DANKE

    Könntest Du vielleicht noch die Dateiinhalte in CODE-Tags einschließen, dann wird es übersichtlicher und klarer.

  23. #23
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Ein sehr schönes Tutorial! - DANKE

    Könntest Du vielleicht noch die Dateiinhalte in CODE-Tags einschließen, dann wird es übersichtlicher und klarer.
    Bin dabei - Du warst zu schnell :-)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  24. #24
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, danke für das Tutorial. Auch wenn es laut DampfHans eigentlich gar nicht funktionieren dürfte . Ich werde mal versuchen, das mit Windows 10 so nachzubauen.

  25. #25
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ja, danke für das Tutorial. Auch wenn es laut DampfHans eigentlich gar nicht funktionieren dürfte . Ich werde mal versuchen, das mit Windows 10 so nachzubauen.
    Hi tab,
    im thread Anfang habe ich eine Contao 4.5 Installation mit einer einzelnen Xampp Standard Version beschrieben/hinbekommen.

    Ob das mit der obigen Konstellation (multiple php's with one xampp) auch so funktioniert wie ich mir das erhoffe:

    - Installation Contao 3.5 mit PHP 5.6
    - Installation Contao 4.4.x mit PHP 5.6 o. höher
    - Installation Contao 4.5.x mit PHP 7.1 o. höher

    mal sehen :-)

    Spooky hatte diese Vorgenesweise mal hier erwähnt und daher wollte ich es halt mal ausprobieren

    Zitat Zitat von Spooky Beitrag anzeigen
    Du brauchst nicht unbedingt mehrere XAMPP Installationen um mehrere PHP Versionen zu haben. Du kannst dir die Verschiedenen PHP Versionen auch innerhalb von XAMPP organisieren und die Apache Konfiguration dementsprechend anpassen.
    Lieben Gruß
    Geändert von Franko (14.02.2018 um 00:21 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  26. #26
    Contao-Nutzer
    Registriert seit
    13.02.2018.
    Beiträge
    1

    Standard Composer.phar

    Erstmal danke für die Anleitung.
    ICh habe aber eine Frage und zwar wo ich die Composer.phar Datei herbekomme. Du hast geschrieben das man den Composer auch Global installieren kann. Braucht man dann die phar Datei nicht mehr oder braucht man die noch? Wenn ja wo befindet sich diese den? Der Composer wurde in das Composer Verzeichnis welches im XAMMP Verzeichnis ist installiert dort ist dann aber nicht die Composer Datei

  27. #27
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Den Composer bekommst Du hier: https://getcomposer.org/

  28. #28
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Den Composer bekommst Du hier: https://getcomposer.org/
    Ähm,
    T.C4's Frage hat mich mal wieder etwas verunsichert ...

    Grundsätzlich gibt es mehrere Möglichkeiten der Composer Installation: global, lokal, via Installer, Manuell - z.B.:

    Windows Composer Installer (global) und Xampp:
    https://getcomposer.org/download/

    Der "Windows Composer Installer" fragt bei der Installation nach dem PHP Verzeichnis - meistens\Beispiel "c:\xampp\php" - und setzt sich selbst in die Windows Umgebungsvariable - Details hier zu lesen
    https://github.com/composer/windows-setup#Environment

    Sodann ist der Composer in der Xampp shell aufrufbar: composer -v

    Ok soweit -
    aber so wie ich es verstanden habe arbeitet dieser dann auf der shell nur mit der während der Installation angegebenen PHP Version (also im Falle einer aktuellen Xampp mit PHP 7.2.1)
    Was OK wäre - sofern man von einer Xampp Standard Installation mit einer einzigen PHP Version ausgeht.

    Wie ist es aber dann bei dieser globalen Composer Installation wenn ich über den Composer nun über eine andere PHP Version Pakete installieren möchte?
    Muß die PHP CLI Version bei einem Composer install/update/require nicht auch immer mit der jeweiligen PHP Version im Browser übereinstimmen?
    Wie mache ich das dann?

    Update
    Sorry - geht auch ich hatte mich immer vertippt:
    Code:
    composer diagnose
    oder
    php %programdata%\composersetup\bin\composer.phar diagnose
    Wenn man den Composer als normaler Windows User installiert hat liegen die Dateien dann in "C:\Users\{username}\AppData\Local\ComposerSetup\b in". Entsprechend dann die Aufrufe:
    Code:
    composer -v
    oder
    php %LocalAppData%\composersetup\bin\composer.phar -v

    Meine bisherige Vorgehensweise war:
    Den composer bzw. die "composer.phar" lokal laden:
    https://getcomposer.org/download/
    nach dem Abschnitt "Manual Download - If you prefer to download the phar manually, here are the available versions" (weiter unten)

    Die "nackte" "composer.phar" ist also z.B. im Verzeichnis "c:\xampp" lokal geladen\vorhanden und wird in der Xampp-Shell mit der avisierten PHP Version aufgerufen.

    Aktuelle Xampp Version mit default PHP Version (z.B.: 7.2.1):
    php composer.pahr -v

    Xampp mit mehreren PHP Versionen (Beispiel Aufrufe):
    php71cli composer.phar -v
    php56cli composer.phar -v
    etc.

    Oder wie sollte der composer sonst mitkriegen/endscheiden können welche Abhängigkeiten in Verbindung mit einer PHP Version aufgelöst werden sollten - Verwirrung ...


    Oder denke ich wieder zu kompliziert - passiert mitunter

    SelfUpdate:
    Einfach auf Spooky hören und den Windows Installer nehmen ...
    Geändert von Franko (14.02.2018 um 19:07 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  29. #29
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von T.C4 Beitrag anzeigen
    Erstmal danke für die Anleitung.
    ICh habe aber eine Frage und zwar wo ich die Composer.phar Datei herbekomme. Du hast geschrieben das man den Composer auch Global installieren kann. Braucht man dann die phar Datei nicht mehr oder braucht man die noch? Wenn ja wo befindet sich diese den? Der Composer wurde in das Composer Verzeichnis welches im XAMMP Verzeichnis ist installiert dort ist dann aber nicht die Composer Datei
    Hier mal ein paar Infos zu den Pfaden und Aufrufe unter Windows:

    Globale Installation über den "Windows Composer Installer":
    Abhängig von der Windows Anmeldung (als Admin oder als User) wird der Composer in folgendes Verzeichnis installiert - siehe hier: https://github.com/composer/windows-setup#Locations

    Windows Admin: "C:\ProgramData\ComposerSetup\bin"
    Windows User: "C:\Users\<user>\AppData\Local\ComposerSetup\b in"

    Weiterhin wird abhängig vom Windows User der PHP Pfad in der Windows Umgebungsvariable gesetzt - siehe hier https://github.com/composer/windows-setup#Environment

    Wenn man die Windows CMD startet sollte über
    Code:
    path
    in der Anzeige also der entsprechende Pfad "...\ComposerSetup\bin..." auftauchen

    Gleichzeitig setzt die Composer Installation auch den PHP Pfad, der bei der Composer Installation angegeben wurde, in die Umgebungsvariable - Also z.B.:
    ...c:\xampp\php;...

    Daher wären beide Aufrufe identisch:
    Code:
    composer -v
    oder
    php %programdata%\composersetup\bin\composer.phar -v
    Oder mit anderen Php Versionen
    Code:
    {phpPath2} %programdata%\composersetup\bin\composer.phar diagnose
    {phpPath3} %programdata%\composersetup\bin\composer.phar diagnose
    Update:
    Wenn man den Composer als normaler Windows User installiert hat liegen die Dateien dann in "C:\Users\{username}\AppData\Local\ComposerSetup\b in". Entsprechend dann die Aufrufe:
    Code:
    composer -v
    oder
    php %LocalAppData%\composersetup\bin\composer.phar -v

    Mit Nutzung des composers legt dieser sein Cache Verzeichnis an in:
    C:\Users\{username}\AppData\Local\Composer\

    Dieses kann gelöscht werden über:
    Code:
    composer clear-cache
    Bei Aufruf "composer -v" (Ohne "php") nutzt der Composer die PHP Version die er zuerst findet - in unserem Beispiel dann aus "c:\xampp\php".


    Lokale Composer Installation und Xampp - Möglich aber nicht empfohlen:
    Wir deinstallieren den Composer sofern zuvor über den Installer installiert. Dabei sollten die entsprechenden Pfadangaben s.o. ebenfalls entfernt werden.

    Über https://getcomposer.org/download/ (Unterhalb von Abschnitt "Manual Download") laden wir eine aktuelle "composer.phar" und kopieren
    diese in das Xampp Hauptverzeichnis z.B. "c:\xampp".

    Die Xampp-Shell (xampp_shell.bat) setzt sich eigene Umgebungsvariablen die dann nur zur Laufzeit zur Vergügung stehen (kann man auch ergänzen). Wenn man die Xampp-Shell startet kann man also ebenfalls sofort mit dem composer arbeiten: php composer.phar -v

    Wobei dann hierbei die "php.ini" aus "c:\xampp\php" herangezogen wird:
    Code:
    php composer.phar diagnose
    
    Checking platform settings: OK
    Checking git settings: OK
    Checking http connectivity to packagist: OK
    Checking https connectivity to packagist: OK
    Checking github.com rate limit: OK
    Checking disk free space: OK
    Checking pubkeys: FAIL
    Missing pubkey for tags verification
    Missing pubkey for dev verification
    Run composer self-update --update-keys to set them up
    Checking composer version: OK
    Composer version: 1.6.3
    PHP version: 7.2.1
    PHP binary path: C:\xampp\php\php.exe
    Will man eine andere PHP Version nutzen dann mit: -PfadPHPVersion- composer.phar diagnose
    Bei mir zum Beispiel:
    Code:
    php71cli composer.phar diagnose
    
    Checking platform settings: OK
    Checking git settings: OK
    Checking http connectivity to packagist: OK
    Checking https connectivity to packagist: OK
    Checking github.com rate limit: OK
    Checking disk free space: OK
    Checking pubkeys: FAIL
    Missing pubkey for tags verification
    Missing pubkey for dev verification
    Run composer self-update --update-keys to set them up
    Checking composer version: OK
    Composer version: 1.6.3
    PHP version: 7.1.14
    PHP binary path: C:\xampp\php7114\php.exe
    Fazit:
    Einfach auf Spooky hören

    Composer musst du nicht manuell global installieren. Nimm einfach den Windows Installer: https://getcomposer.org/download/
    und den Composer zusammen mit der Xampp-Shell nutzen ...
    Geändert von Franko (14.02.2018 um 19:09 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  30. #30
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Es kommen hier im Forum immer noch Fragen hinsichtlich Windows/Xampp und Contao 4 auf. Daher hier eine rudimentäre Installation der Contao 4.4.x Version mit einer Standard Xampp (7.2.1) ohne eigene vhost Einträge etc.. - Systemvoraussetzungen Contao 4.4.x - siehe hier:

    - Xampp installieren nach z.B.: c:\xampp
    - Composer über den "Windows Installer installieren"

    Die Xampp-Shell als Administrator starten und im Verzeichnis "c:\xampp\htdocs" den Befehl:
    Code:
    composer create-project contao/managed-edition contao4  4.4.x
    eingeben.

    Anschließend im Browser:
    Code:
    http://localhost/contao4/web/contao/install
    aufrufen ...

    ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  31. #31
    Contao-Fan
    Registriert seit
    17.11.2011.
    Ort
    Basel (Schweiz)
    Beiträge
    295

    Standard

    Hallo Franko

    Dies klappt wunderbar. DANKE DANKE DANKE!!! Warum ich mit der XAMPP Konfiguration siehe mein Post https://community.contao.org/de/show...hlight=pumukel vom 22.07.2017 /07:36 jetzt Probleme hatte, keine Ahnung.
    Deine Methode ist auch sehr angenehm, da man nicht immer an der httpd-vhosts.conf rumfummeln muss.

    Auch die Installation von Erweiterungen (Pakete) mit dem lokalen Composer funktionert wunderbar.
    Ich arbeite eben sehr gerne während der Entwickungsphase auch mit Contao 4.4.xx , lokal mit XAMPP (Win7/Win10).

    Nachtrag:
    Funktioniert bestens mit XAMPP 7.1.7 , XAMPP 7.1.8 und XAMPP 7.2.2 für Win 7 und Win 10.

    Noch ein Tip für Win User: Lokales Backup in einem anderen Verzeichnis z.B Backups-Contao-44x unbedingt mit xcopy (wegen den Symlinks) erstellen. Beispiel xcopy D:\xampp717\htdocs\contao4416a D:\xampp717BAK\htdocs\contao4416a /S /E /I /H /B. Parameter siehe mit xcopy /?

    Will man eine Contao 4.4.xx Installation in einem anderen, zuvor mit xcopy kopierten Ordner benutzen, unbedingt vorher im Verzeichis var/ den cache Ordner vollständig löschen. Sonst hat man Probleme im Frontend. Sicherheitshalber auch den Browser Cache löschen.

    Die von Franko gezeigte Methode Contao 4.4.xx local auf XAMPP mit Win 7 und Win 10 zu installieren ist mit Abstand die eleganteste Methode!
    Warum kompliziert wenn es einfach auch klappt?

    Gruss aus Basel
    pumukel
    Geändert von pumukel (12.03.2018 um 03:50 Uhr) Grund: Nachtrag

  32. #32
    Contao-Nutzer
    Registriert seit
    11.06.2013.
    Beiträge
    42

    Standard Contao Manager hängt

    Hi,

    danke für die tolle Zusammenfassung!

    bei mir hängt der Contao Manager noch, nachdem ich dort die 4.5 oder die LTS ausgewählt habe.
    Neuestes XAmpp auf Windows 7, per Composer konnte ich eine Contaoversion installieren, dort funktioniert auch der Manager etwas besser (ich sehe die installierten Pakete und könnte updaten)

    irgendwelche Ideen?

    Ciao
    Reiner
    Angehängte Grafiken Angehängte Grafiken

  33. #33
    Contao-Fan Avatar von Contao-Academy
    Registriert seit
    09.04.2011.
    Ort
    Kempten
    Beiträge
    292
    Partner-ID
    10079
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe hier gerade das gleiche Problem.
    Hast du dein Problem lösen können?

  34. #34
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Fenepedia Beitrag anzeigen
    Ich habe hier gerade das gleiche Problem.
    Hast du dein Problem lösen können?
    Leider kann ich hierzu nicht weiterhelfen, bei mir (Aktuelle Xampp/PHP7.2/Win7) funktioniert der CM einwandfrei.
    Eine Alternative wäre evtl. Composercat GUI s.: https://community.contao.org/de/show...l=1#post477587
    Geändert von Franko (12.07.2018 um 14:57 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  35. #35
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der Regel "hängt" der Contao-Manager nicht, sondern der Konsolenprozess ist - aus welchem Grund auch immer - unerwartet beendet worden. Gibt es irgendwelche Einträge in den Logdateien (insbesondere bei XAMPP auch PHP (php_error_log), Apache (error.log))?

  36. #36
    Contao-Fan Avatar von Contao-Academy
    Registriert seit
    09.04.2011.
    Ort
    Kempten
    Beiträge
    292
    Partner-ID
    10079
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zur Info:

    Ich konnte mit dem Entwickler des Contao Managers das Problem analysieren und den Fehler beheben.
    Mit der Version 1.0.2 des Contao Managers tritt das Problem nicht mehr auf.

  37. #37
    Contao-Nutzer
    Registriert seit
    11.06.2013.
    Beiträge
    42

    Standard

    einen kleinen Schritt weiter bin ich jetzt.

    der Fehler lautet nun:
    The "https://packagist.org/packages.json" file could not be downloaded:

    Ich vermute, das hängt an unserem Proxy. Wie bringe ich den XAMPP dazu meinen Proxy zu verwenden?

    Composer Diagnose auf der console sagt allerdings:

    Checking platform settings: OK
    Checking git settings: OK
    Checking http connectivity to packagist: OK
    Checking https connectivity to packagist: OK
    Checking HTTP proxy: OK
    Checking HTTP proxy support for request_fulluri: OK
    Checking HTTPS proxy support for request_fulluri: OK
    Checking github.com rate limit: OK
    Checking disk free space: OK
    Checking composer version: OK
    Composer version: 1.6.5
    PHP version: 7.2.6
    PHP binary path: D:\xampp\php\php.exe

    Was ist das der Unterschied zum Manager? Kann/muss ich dem einen Proxy mitgeben?
    Geändert von rwinkler (24.07.2018 um 10:12 Uhr)

  38. #38
    Contao-Nutzer
    Registriert seit
    11.06.2013.
    Beiträge
    42

    Standard

    Ich hab jetzt nochmal ein paar Tests gemacht und komme zu dem Schluss, der Contao Manager berücksichtigt keinen Proxy!

    Habe auf meinem Laptop den XAMPP eingerichtet und den CM 1.0.1 kopiert. Sobald ich ihn im externen Netz starte (also ohne Proxy) meldet er, das es Version 1.0.2 gibt und lädt diese Version.
    Composer Diagnose meldet alles OK

    Jetzt hänge ich meinen Laptop von außen nach innen, trage die beiden http(s)_proxy Umgebungsvariablen ein und starte wieder den CM 1.0.1. Diesmal merkt er nicht, dass es die neue Version gibt. Composer Diagnose hingegen meldet alles OK und kann auch Contao über den Proxy installieren!

    wenn ich jetzt den Laptop wieder nach draußen hänge meldet Composer Diagnose die Proxyfehler, da noch die Umgebungsvariablen existieren.

    Ich würde sagen ein Bug im Contao Manager, oder?

  39. #39
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Hallo zusammen,

    erst einmal ein großes DANKE für dieses ausführliche Tutorial - damit hab ich es fast(!) geschafft, Contao 4.4 lokal zu installieren. Fast, denn jetzt gibt es ein Rechteproblem?

    Was ich bis jetzt gemacht habe:
    XAMPP in der aktuellen Version (7.2.9) installiert/Windows 10 Professional
    einen vhost eingerichtet - allerdings nicht wie hier im Tutorial beschrieben, sondern nach dieser Anleitung
    also folgenden Ordner angelegt: C:\xampp\htdocs\contao44, Aufruf von contao44.local funktioniert (mit einer index.html getestet)
    Composer mit dem Composer Installer für Windows installiert - Composer ist da: Windows Admin: "C:\ProgramData\ComposerSetup\bin"
    dann bin ich ins Verzeichnis C:\xampp\htdocs\contao44 und habe dort composer create-project contao/managed-edition htdocs 4.4.x eingegeben
    Der Composer hat alle Dateien heruntergeladen, aber beim Aufruf von http://contao44.local/htdocs/web/contao/install.php kommt die Meldung "Unvollständige Installation"
    bzw. die Meldung im Composer:

    Code:
    [OK] Cache for the "prod" environment (debug=false) was successfully cleared.
    
     // Warming up the cache for the prod environment with debug false
    
     [OK] Cache for the "prod" environment (debug=false) was successfully warmed.
    
     Trying to install assets as relative symbolic links.
    
     --------- ------------------------ ----------------
                Bundle                   Method / Error
     --------- ------------------------ ----------------
      WARNING   ContaoCoreBundle         copy
      WARNING   ContaoFaqBundle          copy
      WARNING   ContaoNewsBundle         copy
      WARNING   ContaoNewsletterBundle   copy
      WARNING   ContaoCalendarBundle     copy
      WARNING   ContaoCommentsBundle     copy
     --------- ------------------------ ----------------
    
     ! [NOTE] Some assets were installed via copy. If you make changes to these assets you have to run this command again.
    
     [OK] All assets were successfully installed.
    
     * system
     * system/config
     * templates
     * web/system
     * files
     * assets/css
     * assets/js
     * system/cache
     * system/modules
     * system/themes
     * system/tmp
     * web/share
     * C:\xampp\htdocs\contao44\htdocs\assets\images
    
     Added/updated the system/initialize.php file.
    
    07:50:25 ERROR     [console] Error thrown while running command "--ansi contao:install --env=prod". Message: "Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'. Do you have the required Administrator-rights?" ["exception" => Symfony\Component\Filesystem\Exception\IOException { …},"command" => "--ansi contao:install --env=prod","message" => "Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'. Do you have the required Administrator-rights?"] []
    
    In Filesystem.php line 391:
    
      Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'. Do you have the required Administrator-rights?
    
    contao:install [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<target>]
    
    Script Contao\ManagerBundle\Composer\ScriptHandler::initializeApplication handling the post-update-cmd event terminated with an exception
    
      [RuntimeException]
      An error occurred while executing the "contao:install" command: 07:50:25 ERROR     [console] Error thrown while running command "--ansi contao:install --env=prod". Message: "Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'. Do you have the required Administrator-rights?" ["exception" => Symfony\Component\Filesystem\Exception\IOException { …},"command" => "--ansi contao:install --e nv=prod","message" => "Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'. Do you have the required Administrator-rights?"] []
    
      In Filesystem.php line 391:
    
        Unable to create symbolic link due to error code 1314: 'A required privilege is not held by the client'.
      Do you have the required Administrator-rights?
    
      contao:install [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-int
      eraction] [-e|--env ENV] [--no-debug] [--] <command> [<target>]
    
    
    create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]
    Ich hab völlig vergessen, dass ich XAMPP als Administrator ausführen muss. Kann das daran liegen?
    Was mach ich denn jetzt?

  40. #40
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Zitat Zitat von bibib Beitrag anzeigen
    Ich hab völlig vergessen, dass ich XAMPP als Administrator ausführen muss. Kann das daran liegen?
    Nein, du musst die Konsole als Administrator starten.


    Zitat Zitat von bibib Beitrag anzeigen
    Was mach ich denn jetzt?
    Die Konsoel als Administrator starten und composer install ausführen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •