Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wie kommen unterschiedliche Zeitstempel auf einem Ubuntu Server zustande?

Frage Linux Ubuntu

Mitglied: O-Marc

O-Marc (Level 1) - Jetzt verbinden

08.02.2012 um 09:50 Uhr, 3087 Aufrufe, 14 Kommentare

Guten Morgen Community,

in Bezug auf Webserver bin ich noch in der Lernphase und komme bei einem Problem nicht weiter.
Es handelt sich um einen Ubuntu 8.04 LAMP-Server mit Apache2.

Meine Frage lässt sich in zwei Bereiche aufteilen:

1. Warum gibt es unterschiedliche Formate beim Zeitstempel?
Alle Dateien vor einem bestimmten Datum tragen einen Zeitstempel bestehend aus Datum und Jahr:
01.
-rw-r--r-- 1 ftpuser psacln 27711 Apr 20  2011 lang_german_alt2.conf


Füge ich Dateien hinzu (als FTP-User oder auch lokal als root), so tragen diese einen Zeitstempel bestehend aus Datum und Uhrzeit:
01.
-rw-r--r-- 1 ftpuser psacln 28924 Sep 15 12:13 lang_german_alt3.conf

Hat jemand eine Erklärung dafür?



2. Warum stört sich der Webserver am Zeitstempelformat?
Dieser neue Zeitstempel sorgt für Probleme. Wenn ich als FTP-User eine Datei aktualisiere, dann kann der Webserver nicht auf diese zugreifen. Das führt dazu, dass die komplette Website nicht angezeigt wird und stattdessen eine Fehlermeldung kommt:

01.
Fatal error: Smarty error: unable to write to $compile_dir '/var/www/vhosts/url/httpdocs/templates_c'. Be sure $compile_dir is writable by the web server user. in /var/www/vhosts/url/httpdocs/includes/classes/Smarty_2.6.26/Smarty.class.php on line 1097
Nun könnte man meinen, das liege an falschen Zugriffsberechtigungen. Das ist aber nicht der Fall. Diese sind identisch und selbst ein Ändern mit "chmod 777" ändert nichts an dem Fehler. Die einzige Lösung ist, der aktualisierten Datei mit "touch -r" den Zeitstempel einer älteren Datei zu geben.

Ich kann mir nicht erklären, wieso sich der Webserver so am Zeitstempelformat stört. Weiß jemand Rat?


Viele Grüße
O.Marc
Mitglied: Lochkartenstanzer
08.02.2012 um 10:01 Uhr
Moin moin,

Mit was erzeugst Du die obige Ausgabe? Ein
ls -l 
führt zu der Ausgabe von z.B.
drwxr-xr-x   2 xx   xx        4096 2010-03-28 19:26 .wapi 
drwxr-xr-x   3 xx   xx        4096 2010-01-06 19:26 .webex 
-rw-------   1 xx   xx         134 2003-09-29 18:23 .weblink 
drwxr-xr-x   4 xx   xx        4096 2010-01-06 19:25 .weechat 
-rw-r--r--   1 xx   xx          32 2006-10-07 15:45 .wgetrc 
drwxr-xr-x   4 xx   xx        4096 2012-01-24 07:33 .wine
I.d.R. ist die Ausgabe der zeitstempel davon abhängig, mit welchem Programm das ausgegeben wird und mit welchen Parametern dabei das Programm aufgerufen wurde.

lks
Bitte warten ..
Mitglied: O-Marc
08.02.2012 um 10:13 Uhr
Hallo,

ich benutze

ls -la
.
Bitte warten ..
Mitglied: Lochkartenstanzer
08.02.2012 um 10:44 Uhr
Zitat von O-Marc:
Hallo,

ich benutze

ls -la
.

Interessant. , sollte trotzdem sowas wie bei mir herauskommen. liegt eventuell noch ein alias auf deinem ls?

Bei mir ist auf dem 8.04-erSystem folgende ls-version:
$ls --version 
 
ls (GNU coreutils) 6.10 
Copyright © 2008 Free Software Foundation, Inc. 
Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html> 
Dies ist freie Software: Sie können sie ändern und weitergeben. 
Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt. 
 
Geschrieben von Richard Stallman und David MacKenzie.
und auf dem 10.04-er System
$ ls --version 
ls (GNU coreutils) 7.4 
Copyright © 2009 Free Software Foundation, Inc. 
Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html> 
Dies ist freie Software: Sie können sie ändern und weitergeben. 
Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt. 
 
Geschrieben von Richard M. Stallman und David MacKenzie.
Die geben hier das volle Datum aus, auch mit "ls -la".

lks
Bitte warten ..
Mitglied: O-Marc
08.02.2012 um 11:54 Uhr
Bei mir wird das angezeigt:
ls (GNU coreutils) 6.10 
Copyright (C) 2008 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 
 
Written by Richard Stallman and David MacKenzie.
.


Ganz unabhängig davon, was "ls -la" mir an Informationen ausgibt, muss es ja tatsächliche Unterschiede zwischen den Dateien geben. Sonst würde der Webserver ja keine Probleme machen.
Wie kann man sich denn noch Dateiinformationen ansehen?
Bitte warten ..
Mitglied: Lochkartenstanzer
08.02.2012 um 12:41 Uhr
versuch mal stat:
$ stat .bashrc  
 
  File: „.bashrc“ 
  Size: 8328            Blocks: 24         IO Block: 4096   reguläre Datei 
Device: fb01h/64257d    Inode: 14861187    Links: 1 
Access: (0644/-rw-r--r--)  Uid: ( 1000/      xx)   Gid: ( 1000/      xx) 
Access: 2012-02-08 00:22:47.000000000 +0100 
Modify: 2012-02-04 13:39:06.000000000 +0100 
Change: 2012-02-04 13:39:06.000000000 +0100
Bitte warten ..
Mitglied: O-Marc
08.02.2012 um 14:25 Uhr
Hier die Ausgaben:
  File: `lang_german_alt2.conf' 
  Size: 27711     	Blocks: 56         IO Block: 4096   regular file 
Device: 803h/2051d	Inode: 1691861     Links: 1 
Access: (0644/-rw-r--r--)  Uid: (10003/ftpuser)   Gid: ( 2524/  psacln) 
Access: 2012-02-03 03:25:23.000000000 +0100 
Modify: 2011-04-20 10:57:59.000000000 +0200 
Change: 2011-04-20 10:57:59.000000000 +0200
File: `lang_german_alt3.conf' 
  Size: 28924     	Blocks: 64         IO Block: 4096   regular file 
Device: 803h/2051d	Inode: 1689284     Links: 1 
Access: (0644/-rw-r--r--)  Uid: (10003/ftpuser)   Gid: ( 2524/  psacln) 
Access: 2012-02-03 03:25:23.000000000 +0100 
Modify: 2011-09-15 12:13:02.000000000 +0200 
Change: 2011-09-15 12:13:02.000000000 +0200

Sieht für mich beides sehr ähnlich aus. Kannst Du daraus etwas ableiten?
Bitte warten ..
Mitglied: Lochkartenstanzer
08.02.2012 um 15:02 Uhr
Zitat von O-Marc:
Hier die Ausgaben:
  File: `lang_german_alt2.conf' 
>   Size: 27711     	Blocks: 56         IO Block: 4096   regular file 
> Device: 803h/2051d	Inode: 1691861     Links: 1 
> Access: (0644/-rw-r--r--)  Uid: (10003/ftpuser)   Gid: ( 2524/  psacln) 
> Access: 2012-02-03 03:25:23.000000000 +0100 
> Modify: 2011-04-20 10:57:59.000000000 +0200 
> Change: 2011-04-20 10:57:59.000000000 +0200

Diese Datei wurde am 20 April 2011, 10:57 erstellt und seitdem nicht mehr verändert.
Der letzte Zugriff auf die Datei erfolgte am 3. Februar dieses Hahres um 3:25.

File: `lang_german_alt3.conf' 
>   Size: 28924     	Blocks: 64         IO Block: 4096   regular file 
> Device: 803h/2051d	Inode: 1689284     Links: 1 
> Access: (0644/-rw-r--r--)  Uid: (10003/ftpuser)   Gid: ( 2524/  psacln) 
> Access: 2012-02-03 03:25:23.000000000 +0100 
> Modify: 2011-09-15 12:13:02.000000000 +0200 
> Change: 2011-09-15 12:13:02.000000000 +0200

Diese Datei wurde am 15. September 2011 erstellt und seitdem nicht verändert. der letzte Zugriff erfolgte wie oben am 3. februar 2012.

Was für mich darauf folgt ist, daß Du irgendwo entweder einen alias für ls definiert hast oder eine entsprechende Umgebungsvariable gesetzt ist, die das Ausgabeformat für den Zeitstempel so umstellt, daß bei bei älteren Dateien das Jahr statt der Uhrzeit gezeigt wird.

Ich komm im Moment aber gerade nciht drauf, welcher Umstand diese andere Ausgabe bewirken könnte.

lks

Schau mal nach, wie LANG gesetzt ist. ggf noch die ganzen LC-Variablen prüfen (bei mir steht alles auf C).
Bitte warten ..
Mitglied: Arano
08.02.2012 um 15:20 Uhr
Zitat von O-Marc:
1. Warum gibt es unterschiedliche Formate beim Zeitstempel?
[...]
Hat jemand eine Erklärung dafür?
Damit du bei Dateien die NICHT älter als ein Jahr sind noch schnell erkennen kannst zu welcher Uhrzeit sie erstellt wurden.
Wie es nun dazu kommt das es bei dem einem so gehandhabt wird und bei dem andren nicht weiß ich aber auch nicht...
Bei mir (Debian) wir der Timestamp also auch mal mit Jahr und mal mit Zeit ausgegeben
01.
arano@lamp:~$ alias 
02.
alias ls='ls --color=auto' 
03.
arano@lamp:~$ ls --version 
04.
ls (GNU coreutils) 8.5 
05.
Copyright © 2010 Free Software Foundation, Inc. 
06.
Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html> 
07.
Dies ist freie Software: Sie können sie ändern und weitergeben. 
08.
Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt. 
09.
 
10.
Geschrieben von Richard M. Stallman und David MacKenzie. 
11.
arano@lamp:~$ 
Alternativ lass dir doch mal das volle Datum ausgeben:
01.
arano@lamp:~$ ls --full-time

2. Warum stört sich der Webserver am Zeitstempelformat?
01.
Fatal error: Smarty error: unable to write to $compile_dir '/var/www/vhosts/url/httpdocs/templates_c'. Be 
02.
> sure $compile_dir is writable by the web server user. in 
03.
> /var/www/vhosts/url/httpdocs/includes/classes/Smarty_2.6.26/Smarty.class.php on line 1097
Nun könnte man meinen, das liege an falschen Zugriffsberechtigungen. Das ist aber nicht der Fall. Diese sind identisch und
selbst ein Ändern mit "chmod 777" ändert nichts an dem Fehler. Die einzige Lösung ist, der
aktualisierten Datei mit "touch -r" den Zeitstempel einer älteren Datei zu geben.
Bist du dir sicher das es an der DATEI liegt !?
Ich würde da eher auf das VERZEICHNIS ($compile_dir) tippen !
Alternative hier, schau doch mal in die error_logs vom Webserver und ggf. von PHP (wenn diese nicht eh an den Webserver umgeleitet werden...)

Davon mal abgesehen, es ist nicht der Webserver der sich daran stört, es ist die Templateengine SMARTY

~Arano
Bitte warten ..
Mitglied: O-Marc
08.02.2012 um 16:25 Uhr
Zitat von Lochkartenstanzer:
Was für mich darauf folgt ist, daß Du irgendwo entweder einen alias für ls definiert hast oder eine entsprechende
Umgebungsvariable gesetzt ist, die das Ausgabeformat für den Zeitstempel so umstellt, daß bei bei älteren Dateien
das Jahr statt der Uhrzeit gezeigt wird.
Für "ls" gibt es nur ein Alias und das betrifft die Farbe.


Schau mal nach, wie LANG gesetzt ist. ggf noch die ganzen LC-Variablen prüfen (bei mir steht alles auf C).
01.
LANG =

Aranos Erklärung klingt jedoch sehr einleuchtend.
Bitte warten ..
Mitglied: O-Marc
08.02.2012 um 16:35 Uhr
Zitat von Arano:
Damit du bei Dateien die NICHT älter als ein Jahr sind noch schnell erkennen kannst zu welcher Uhrzeit sie erstellt wurden.
Wie es nun dazu kommt das es bei dem einem so gehandhabt wird und bei dem andren nicht weiß ich aber auch nicht...
Bei mir (Debian) wir der Timestamp also auch mal mit Jahr und mal mit Zeit ausgegeben
>...
Alternativ lass dir doch mal das volle Datum ausgeben:
Klingt sehr plausibel. Die vollen Timestamps unterscheiden sich nicht voneinander, außer natürlich in den Zahlen:

01.
-rw-r--r-- 1 ftpjbsshop psacln 27711 2011-04-20 10:57:59.000000000 +0200 lang_german_alt2.conf 
02.
-rw-r--r-- 1 ftpjbsshop psacln 28924 2011-09-15 12:13:02.000000000 +0200 lang_german_alt3.conf

Bist du dir sicher das es an der DATEI liegt !?
Ich würde da eher auf das VERZEICHNIS ($compile_dir) tippen !
Alternative hier, schau doch mal in die error_logs vom Webserver und ggf. von PHP (wenn diese nicht eh an den Webserver umgeleitet
werden...)

Davon mal abgesehen, es ist nicht der Webserver der sich daran stört, es ist die Templateengine SMARTY

~Arano
Damit hast Du mich auf eine Idee gebracht. Aus Zeitmangel werde ich das erst morgen prüfen und hier posten.
Danke.
Bitte warten ..
Mitglied: O-Marc
09.02.2012 um 10:06 Uhr
Guten Morgen,

zunächst einmal ein Dankeschön an Lochkartenstanzer und Arano. ;)
Leider habe ich das Problem noch nicht lösen können.

Das error_log von Apache2 ist sauber (zumindest, was diese Sache angeht) und ein error_log für php habe ich nicht gefunden. Laut "phpinfo()" ist kein Wert für ein error_log angegeben.

Zitat von Arano:
Bist du dir sicher das es an der DATEI liegt !?
Ich würde da eher auf das VERZEICHNIS ($compile_dir) tippen !
Alternative hier, schau doch mal in die error_logs vom Webserver und ggf. von PHP (wenn diese nicht eh an den Webserver umgeleitet werden...)
An den Verzeichnisberechtigungen wurde und wird nichts verändert. Es geht wirklich nur um die Datei.
Wird die "lang.conf" per FTP ausgetauscht, führt das zu der o.g. Smarty-Fehlermeldung. Die bekomme ich wirklich nur dann wieder weg, wenn ich mit "touch -r" die Zeitstempel überschreiben lasse.

Davon mal abgesehen, es ist nicht der Webserver der sich daran stört, es ist die Templateengine SMARTY
Das stimmt.
Der "ftpuser" ist Besitzer des Verzeichnisses und aller darin liegenden Dateien und darf lesen, schreiben und ausführen.
Die Gruppe "psacln" darf lesen und ausführen. Der Webserver-User "www-data" gehört dieser Gruppe an und darf demnach wirklich nicht in das Verzeichnis schreiben. Demnach stimmt die SMARTY-Fehlermeldung. Das erklärt aber immer noch nicht, wieso ich das Problem mit "touch -r" lösen kann.

Was ich nicht verstehe ist, dass die "lang.conf" im Laufe des Jahres 2011 mehrmals per FTP getauscht wurde und das nie zu Problemen führte. Bei gleichen Verzeichnisberechtigungen.
Bitte warten ..
Mitglied: Arano
09.02.2012 um 17:28 Uhr
Moin moin

Das erklärt aber immer noch nicht, wieso ich das Problem mit "touch -r" lösen kann.
Das stimmt !

Hm... irgendwo muss es da ja eine Veränderung geben, also mach doch mal folgendes:
  1. Sammle Informationen (chmod + timestamps) von Verzeichnis $compile_dir und der zu aktualisierenden Datei VOR dem Hochladen (also zu der Zeit als es noch funktioniert)
  2. Lade eine Datei hoch
  3. Sammle erneut die Informationen (jetzt wo es nicht mehr funktioniert)
  4. repariere wie gewohnt (touch -r)
  5. Sammle erneut die Informationen inklusive der von touch verwendeten Referenzdatei (jetzt wo es wieder läuft)

Während dessen in den Logs nach Fehlermeldungen Ausschau halten (ggf. PHP-Einstellungen ändern, loggin aktivieren, errorlevel hochschrauben,ect.)


Ich weiß zwar auchnciht ob das hilft und ob ich/wir da was finden... aber besser als raten, spekulieren und verdächtigen ist es alle mal


~Arano


EDIT:
Aber zuerst versuch mal den Vorschlag vom Lochkartenstanzer, das ist eine gute Idee !
HA und damit hätten wir auch das Verhalten von `ls` erklärt...
... A timestamp is considered to be recent if it is less than six months old, ...
Bitte warten ..
Mitglied: Lochkartenstanzer
09.02.2012 um 17:31 Uhr
Zitat von O-Marc:
Guten Morgen,

zunächst einmal ein Dankeschön an Lochkartenstanzer und Arano. ;)
Leider habe ich das Problem noch nicht lösen können.

Schade, hier noch die Beschreibung von gnu.org wie TIME_STYLE sich auf das Ausgabeformat auswirkt. Du könntest den passenden Ausgabestring Dir mit "--time_style" zusammenbasteln und einen alias auf ls definieren, wenn das das Problem sein sollte.

Wird die "lang.conf" per FTP ausgetauscht, führt das zu der o.g. Smarty-Fehlermeldung. Die bekomme ich wirklich nur
dann wieder weg, wenn ich mit "touch -r" die Zeitstempel überschreiben lasse.

Das sieht mir eher nach einem unsauberen Programmierer aus., der nicht evrstanden hat, das sich die Ausgabe von ls mit diversen Umgebungsdbedingen verändert. Du solltest mal den ls-befehl wie oben umdefinieren und dann schauen, ob der fehler belibt oder sich verändert.

lks

PS: Ich gehe mal davon aus, daß Du Bestiz- und Zugriffsrechte geprüft hast und das nicht das das problem war, warum Dein System den Fehler meldet.
Bitte warten ..
Mitglied: O-Marc
13.02.2012 um 08:56 Uhr
Guten Morgen,

ich komme derzeit nicht dazu, das Problem weiter zu verfolgen.
Noch einmal vielen Dank für die Tipps. Wenn ich mehr rausbekomme, poste ich es hier.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Ubuntu
gelöst Ubuntu Server 16.04 - smb.conf (4)

Frage von AndyAh zum Thema Ubuntu ...

Apache Server
gelöst Ubuntu Server - PHP lädt keine mysql extension (6)

Frage von harald.schmidt zum Thema Apache Server ...

Ubuntu
gelöst Ubuntu Server 16.04 kein eth0 mehr (6)

Frage von AndyAh zum Thema Ubuntu ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...