Sunday, May 31, 2015

Wie kann ich TYPO3 unter Windows mit cygwin nutzen?

(getestet mit TYPO3 6.2.12)

Grobgesagt muss man Cygwin mit apache, PHP und MySql-Server installieren, und - beim aktuellen Entwicklungsstand von TYPO3 - ein paar kl. Anpassungen im TYPO3-Core vornehmen. (Es existieren diverse Bugreports bzgl. TYPO3-Cygwin-Support, siehe unten "Quellen".)

Zur Installation von Cygwin mit apache, PHP und MySql-Server findet sich hier eine ziemlich vollstaendige Anleitung:

http://umusebo.com/installing-and-configuring-apache-php-mysql-on-cygwin/


Anpassungen im TYPO3-Core:

1.) Mit folgender Aenderung erkennt TYPO3 das Cygwin-System:

in /typo3_src/typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php

/**
* Determine the operating system TYPO3 is running on.
*
* @return string Either 'WIN' if running on Windows, else empty string
*/
static protected function getTypo3Os() {
    $typoOs = '';
       //if (!stristr(PHP_OS, 'darwin') && stristr(PHP_OS, 'win')) {
       if (!stristr(PHP_OS, 'darwin') && !stristr(PHP_OS, 'cygwin') && stristr(PHP_OS, 'win')) {
          $typoOs = 'WIN';
       }
   return $typoOs;
}




2.) Da sich die PHP-Funktion uniqid() unter Windows anders verhaelt als auf anderen Plattformen - ein Punkt wird in die generierte ID eingefuegt - muss eine kl. Anpassung bzgl. Cache-Identifiers vorgenommen werden:

in /typo3_src/typo3/sysext/core/Classes/Cache/Frontend/FrontendInterface.php

//const PATTERN_ENTRYIDENTIFIER = '/^[a-zA-Z0-9_%\\-&]{1,250}$/';
const PATTERN_ENTRYIDENTIFIER = '/^[a-zA-Z0-9_%\\-&\.]{1,250}$/';




Quellen:
http://umusebo.com/installing-and-configuring-apache-php-mysql-on-cygwin/

https://forge.typo3.org/issues/65744
https://forge.typo3.org/issues/14523
http://php.net/uniqid

(Frage: wie startet man mysqld automatisch als Service?)

No comments:

Post a Comment