Zum Inhalt springen

Neos installation - Flow requires the PHP setting "date.timezone" to be set. (Error #1342087777)

Erstellt am 16. Februar 2013 · 9 Antworten · letzte Antwort am 31. Juli 2013

Tags: Frage

tobla ·

Hallo zusammen

Ich versuche verzweifelt seit Wochen Neos zu installieren. Egal was ich auch mache, ich hänge immer wieder vor dem gleichen Problem. Rufe ich im Browser das "Web" Verzeichnis von Neos auf, so erhalte ich "Flow requires the PHP setting "date.timezone" to be set. (Error #1342087777)", rufe ich /setup auf, erhalte ich einen 404.

Umgebung: Virtualbox mit Ubuntu 12.10, PHP 5.4, Mysql, Phpmyadmin, Apache2

Unten findet ihr die komplette Dokumentation, was ich alles gemacht habe. Die Teile, die Neos betreffen, beginen mit der Installation von Git.

- Install Ubuntu
- remove a lot of Software
- install apache2
- add hosts test1 and neos1 to /etc/hosts, set listen P80 to localhost
- set group:
webserver@webserver-VirtualBox:~$ sudo groupadd www
webserver@webserver-VirtualBox:~$ sudo adduser webserver www
Adding user `webserver' to group `www' ...
Adding user webserver to group www
Done.
webserver@webserver-VirtualBox:~$ sudo chgrp www /var/www
webserver@webserver-VirtualBox:~$ sudo chmod g+w /var/www

- install php5, php-mysql, php-curl, php-cli, php-gd, php-cgi, php-imagick

- install mysql-server

- install phpmyadmin

- link phpmyadmin:
webserver@webserver-VirtualBox:/var/www/neos1$ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d

- install mainmenu, add shortcuts to restart apache and start nautilus with root access
- install german date and ragion formats

- install git

Beginn Installation Neos:

- add vhost entry:
<VirtualHost *:80>
        ServerName neos1.webserver 
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/neos1/Web

   	 # skip the following line for development
    	SetEnv FLOW_CONTEXT Production

        <Directory /var/www/neos1/Web>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>

- install neos:
webserver@webserver-VirtualBox:/var/www$ sudo git clone --recursive git://git.typo3.org/TYPO3v5/Distributions/Base.git neos
Cloning into 'neos'...
remote: Counting objects: 7475, done.
remote: Compressing objects: 100% (6080/6080), done.
remote: Total 7475 (delta 3812), reused 2100 (delta 1283)
Receiving objects: 100% (7475/7475), 7.46 MiB | 1.25 MiB/s, done.
Resolving deltas: 100% (3812/3812), done.

- install curl

- fetch composer:
webserver@webserver-VirtualBox:/var/www$ curl -s https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /var/www/composer.phar
Use it: php composer.phar

- move composer to /var/www/neos/, rename neos to neos1

- run composer:
webserver@webserver-VirtualBox:/var/www/neos1$ sudo php composer.phar install --dev --prefer-source
Loading composer repositories with package information
Installing dependencies from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
  - Installing doctrine/lexer (v1.0)
    Cloning v1.0

  - Installing doctrine/inflector (v1.0)
    Cloning v1.0

  - Installing doctrine/collections (v1.0)
    Cloning v1.0

  - Installing doctrine/cache (v1.0)
    Cloning v1.0

  - Installing doctrine/annotations (v1.0)
    Cloning v1.0

  - Installing doctrine/common (dev-master 53859ae)
    Cloning 53859ae1c84ccf1a5aa58c8379c69cd9adedf03a

  - Installing doctrine/data-fixtures (dev-master 689bc2a)
    Cloning 689bc2ae2a41dff1107d9d50e2daa4c349222869

  - Installing doctrine/dbal (dev-master eb6ee9a)
    Cloning eb6ee9a86421ba534d7c5514b190d1d06b30d4b1

  - Installing doctrine/migrations (dev-master e1f6efc)
    Cloning e1f6efcd94993b493de5c6a413cbc327ea9c0caa

  - Installing symfony/console (dev-master f65e34d)
    Cloning f65e34d058f0990a724f78e8d091dc0a20e439ac

  - Installing doctrine/orm (dev-master 2980d76)
    Cloning 2980d76adbf5f02d420e1d5eaf00ddcfdc2aa10f

  - Installing imagine/imagine (dev-master v0.4.1)
    Cloning v0.4.1

  - Installing symfony/dom-crawler (dev-master 969ef10)
    Cloning 969ef102204e0c0ae846f4d3ed81399b8a6d7741

  - Installing symfony/yaml (dev-master f198ac2)
    Cloning f198ac28048eeceae852419c076123aaee59cd1c

  - Installing typo3/flow-composer-installers (dev-master bf88789)
    Cloning bf887890333e8c73a93701ffb09f71c914b8be35

  - Installing typo3/flow (dev-master 45ea227)
    Cloning 45ea227709db707db3165e4b46c68834e8b671d8

  - Installing typo3/party (dev-master e15b0c2)
    Cloning e15b0c2ec34aee7f2e677920f9236b2964d119cd

  - Installing typo3/fluid (dev-master 5834d21)
    Cloning 5834d218fbd7ddb11ae77b0a9d66f1443877cc63

  - Installing typo3/aloha (dev-master 111bca0)
    Cloning 111bca059ab11e80ad1bdda664133d35b29916a9

  - Installing typo3/extjs (dev-master f464c9e)
    Cloning f464c9e4928cafcf9f8aa2cecedd573401ee3819

  - Installing typo3/imagine (dev-master 202eda6)
    Cloning 202eda6ba3c4f30dbcfc14488c77c73d4b85e848

  - Installing typo3/media (dev-master 6fa63ea)
    Cloning 6fa63eaea7f16f8774a6387286507de56e61cd02

  - Installing typo3/eel (dev-master ac4b36c)
    Cloning ac4b36c3856c5c88d9ab6150aec27cd17a618c2f

  - Installing typo3/typoscript (dev-master e61d0ab)
    Cloning e61d0ab0374be5049a902f977976b54a238999e1

  - Installing typo3/neos-contenttypes (dev-master b2535be)
    Cloning b2535be33617332afaa6af715d0338f9c21b96ac

  - Installing typo3/typo3cr (dev-master 34cdf80)
    Cloning 34cdf802759f7894f008c87f590d9f054f0fec82

  - Installing typo3/twitter-bootstrap (dev-master 360bbd6)
    Cloning 360bbd60c85dada87a204a9c6a9e1197441867ba

  - Installing typo3/form (dev-master 05be573)
    Cloning 05be573ad81729e7c0798b97df75643671d8038e

  - Installing typo3/setup (dev-master c24debb)
    Cloning c24debbd4308dd0e1b931cf2e47d2bd388ec42a8

  - Installing typo3/neos (dev-master da1554a)
    Cloning da1554a49bc2abb567a7a89516fe6edbe8781160

  - Installing typo3/neosdemotypo3org (dev-master bc4448b)
    Cloning bc4448bc80d2fe2cec816b52d93371de0b42b714

Loading composer repositories with package information
Installing dev dependencies
  - Installing typo3/buildessentials (dev-master b6e42ea)
    Cloning b6e42eaa70e9dcf36626dcc86bf8c4b2e1793e6a

  - Installing mikey179/vfsstream (v1.1.0)
    Cloning v1.1.0

doctrine/data-fixtures suggests installing doctrine/mongodb-odm (For loading MongoDB ODM fixtures)
doctrine/data-fixtures suggests installing doctrine/phpcr-odm (For loading PHPCR ODM fixtures)
symfony/dom-crawler suggests installing symfony/css-selector (2.2.*)
Generating autoload files

- run update:
webserver@webserver-VirtualBox:/var/www/neos1$ sudo php composer.phar update
Loading composer repositories with package information
Updating dependencies
Writing lock file
Generating autoload files

- restart apache

Habt ihr eine Idee, woran das liegt? Ich bin mit meinem Latein wirklich am Ende.

Unbekannter Benutzer ·

Hi,

also eigentlich sagt die Fehlermeldung doch schon alles. Du musst in deiner php.ini Datei das Setting date.timezone machen, siehe auch http://php.net/manual/de/datetime.configuration.php. Das musst du auf jeden Fall vorher machen, der Sinn ist, dass eventuelle Datumsangaben zu einer definierten Zeitzonen gehören. Das /setup im 404 ended ist nicht verwunderlich, du solltest deinen vhost auf das Web Verzeichnis setzen, nicht eins höher. Dadurch funktionieren die Routen nicht und unter /setup ist dann nichts erreichbar. Wenn überhaupt /Web/setup aber ich vermute das wird nicht funktionieren. Sinnvoll ist auf jeden Fall den vhost direkt auf Web zu legen.

Viele Grüße
Christian

tobla ·

Danke für die Hilfe. Ich hatte tatsächlich keinen timezone Eintrag in der php.ini.

Was du betreffend vhost meinst, verstehe ich nicht. Mein vhost zeigt doch auf das Web Verzeichnis?:

<VirtualHost *:80>
        ServerName neos1.webserver 
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/neos1/Web
 
   	 # skip the following line for development
    	SetEnv FLOW_CONTEXT Production
 
        <Directory /var/www/neos1/Web>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>

Jetzt erhalte ich einfach einen internal Server Error. Das Setup ist allerdings immer noch nicht erreichbar.

Unbekannter Benutzer ·

Sorry, ich hatte aus dem Satz

tobla schrieb

Rufe ich im Browser das "Web" Verzeichnis von Neos auf....

geschlossen, dass du Web explizit aufrufst...

"AllowOverride None" im vhost wird nicht funktionieren, damit sind keine .htaccess Dateien erlaubt. Das könnte schon den internal Server error erklären...

tobla ·
kitsunet schrieb

"AllowOverride None" im vhost wird nicht funktionieren, damit sind keine .htaccess Dateien erlaubt. Das könnte schon den internal Server error erklären...

Ja, unter Anderem lag es daran. Ich habe die virtual Host config nochmal überarbeitet. Danach hab ich im Frontend (Web Verzeichnis) eine permission Error erhalten. /setup war weiterhin nicht erreichbar.

Also habe ich ./flow core:setfilepermissions durchlaufenlassen. Dies hat alle Rechte gesetzt, ausser bei einer Datei. Also nochmals. Und jetzt erhalte ich einfach eine Flow Exception (Database Exception), obwohl ich noch gar keine Datenbank eingerichtet habe, weil das setup noch immer einen 404 wirft.

Langsam gurkt mich das Ganze etwas an. Läuft das nur bei mir so schlecht oder mache ich eifach was falsch?

Wie habt ihr Neos installiert? Kann jemand kurz auflisten, welche Schritte der durchgeganen ist?

Unbekannter Benutzer ·

Im Grunde ist meine Apache Installation sehr Basic.

Alle vhosts (Achtung Development System, auf einem Livesystem würde man da sicher weniger erlauben):

Options ExecCGI Indexes MultiViews FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all

DirectoryIndex index.php
UseCanonicalName off

Und dann zeigt der vhost eben auf Web

Ansonsten eben Rechte setzen, aber das hast du ja.

tobla ·

In der Hoffnung, einen Installationsfehler gemacht zu haben, habe ich Neos nochmals komplett entfernt, den Composer gezogen, neos damit installiert und anschliessend die Rechte setzen lassen.

Obwohl ich setfilepermissions mit root Rechten ausgeführt habe, konnte flow den _Resources Folder im Web nicht anlegen. Also habe ich diesen noch manuell angelegt und die Rechte gesetzt. Trotzdem stinkt das ganze irgendwie zum Himmel.

Dabei ist mir noch etwas anderes aufgefallen. Während dem Ausführen der setfilepermissions hat Flow die folgende Zeile ausgegeben:

..

Setting file permissions, trying to set ACLs via chmod ...
Setting file permissions, trying to set ACLs via setfacl...

Note: Acces Control Losts seem not to be supported by your system

..

Soweit ich weis, arbeitet Linux mit ACLs, das ganze sollte also eigentlich funktionieren.

Die Tatsache, das /setup nicht erreichbar ist, macht auf mich auch mehr den Eindruck, das mit dem Anlegen der .htaccess was nicht richtig gelaufen ist. Schliesslich sind diese für die Routen unverzichtbar.

Unbekannter Benutzer ·

ACLs müssen auf den meisten Linuxdistributionen explizit aktiviert werden, die sind was anderes als die üblichen User,Group,All Permissions. Ist aber auch nicht nötig für den Betrieb, macht nur das setzen der Filepermissions schneller.

Hast du das setfilepermissions auch mit dem richtigen User und der richtigen Gruppe aufgerufen? Eigentlich sollte es nämlich danach problemlos funktionieren.
Habe auch gerade selber nochmal eine Installation so gemacht. Klappt.

tobla · · Beste Antwort

Ich habe noch einmal einen Anlauf genommen, diesmal mit der Alpha4. Und siehe da - jetzt läuft es.

Mein Vorgehen für interessierte

Virtuellen Umgebung: Vagrant Virtual Box mit Ubuntu 32Bit

  • Vagrant installieren

  • Vagrant File anlegen

    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    Vagrant.configure("2") do |config|
      config.vm.box = "precise32"
      config.vm.box_url = "http://files.vagrantup.com/precise32.box"
    
      # Create a forwarded port mapping which allows access to a specific port
      # within the machine from a port on the host machine. In the example below,
      # accessing "localhost:8080" will access port 80 on the guest machine.
      config.vm.network :forwarded_port, guest: 80, host: 8081
    
      # Share an additional folder to the guest VM. The first argument is
      # the path on the host to the actual folder. The second argument is
      # the path on the guest to mount the folder. And the optional third
      # argument is a set of non-required options.
      config.vm.synced_folder "www", "/var/www", :owner=> 'vagrant', :group=>'www-data', :extra => 'dmode=775,fmode=775'
      config.vm.synced_folder "scripts", "/home/vagrant/scripts", :owner=> 'vagrant', :group=>'root', :extra => 'dmode=775,fmode=775'
      
      # Enable provisioning. Vagrant run this shell script when setting up the machine.
      config.vm.provision :shell, :path => "bootstrap/bootstrap.sh"
    
    end
    

    bootstrap.sh installiert apache, php, curl, git, imagick, gd, ... und aktiviert Apache Module wie php oder rewrite.

  • Vagrant starten, manuell noch Mysql nachinstallieren, user anlegen

  • In der php.ini date.timezone setzen

Neos installieren
Vorgehen nach dieser Anleitung für Alpha4: http://neos.typo3.org/download.html:

  • Composer über curl fetchen

  • Mit Composer ein TYPO3-Neos-1.0-alpha4 Projekt erstellen

  • In der Apache Conf den Virtual Host eintragen

  • Auf dem Host System die Domain in die /etc/hosts eintragen für localhost

  • alpha4.neos:8081/setup aufrufen

  • Setup durcharbeiten

Es war nicht notwendig, die File Permissions zu setzen. Das Ganze lief out-of-the-box.

Ich hab versucht, das Setup ohne den vhost aufzurufen und das hat nicht geklappt. Anscheinend braucht es notwendigerweise den vhost Eintrag in der Apache Conf.