Eine Installation auf einem Server kann etwas schwierig werden, wenn man keinen Shell-Zugang hat.
Die Alternative die TYPO3-Archive vor dem FTP-Upload auszupacken ist zwar möglich aber recht (zeit)aufwändig.
Meist besteht aber die Möglichkeit innerhalb einer PHP-Datei Betriebssystem-Kommandos auszuführen. Daher bin ich auf folgende PHP-Datei für einen UNIX-Server gekommen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>expand TYPO3</title>
</head>
<body>
<?PHP
function do_exec($s) {
echo '<span style="border:1px solid #cccccc">'.$s.'</span><br /><pre>';
$output=shell_exec($s);
echo str_replace(array('<','>'),array('<','>'),$output);
echo '</pre><hr />';
}
define('VERSION','4.3.3');
// check for correct permissions. try to create a testfile.
do_exec('echo test > testfile');
if (!file_exists('testfile')) {
echo 'can\'t create file in current directory<br>missing permissions?<br>';
// show user data
do_exec('id');
// show rights of current directory
do_exec('ls -la');
} else {
// remove testfile
do_exec('rm testfile');
// load source-archive if not existent
if (!file_exists('typo3_src-'.VERSION.'.tar.gz'))
do_exec('wget http://prdownloads.sourceforge.net/typo3/typo3_src-'.VERSION.'.tar.gz');
// load dummy-archive if not existent
if (!file_exists('dummy-'.VERSION.'.tar.gz'))
do_exec('wget http://prdownloads.sourceforge.net/typo3/dummy-'.VERSION.'.tar.gz');
// display md5-hashes for check on correct archives
do_exec('md5sum *.gz');
echo 'compare to <a href="http://wiki.typo3.org/index.php/TYPO3_'.VERSION.'#MD5_checksums">correct md5-values</a><br>';
// extract sources
do_exec('tar -zxvf typo3_src-'.VERSION.'.tar.gz');
// extract dummy
do_exec('tar -zxvf dummy-'.VERSION.'.tar.gz');
// get content from subdir into current dir
do_exec('mv dummy-'.VERSION.'/* .');
// remove empty directory
do_exec('rmdir dummy-'.VERSION);
// make new symlink for sources
do_exec('rm typo3_src');
do_exec('ln -s typo3_src-'.VERSION.' typo3_src');
// change access-rights ...
// .. for all directories
do_exec('find . -type d -exec chmod 775 \'{}\' \;');
// .. for all files
do_exec('find . -type f -exec chmod 664 \'{}\' \;');
// next step will be to use install-tool: so grant access:
do_exec('touch typo3conf/ENABLE_INSTALL_TOOL');
// show current directory content
do_exec('ls -la');
// show links to install-tool and 1-2-3-Install
echo '<a href="typo3/install/index.php" >Install-Tool</a><br>';
echo '<a href="typo3/install/index.php?mode=123&step=1&password=joh316">1-2-3-Install</a>';
}
?>
</body>
</html>
Anzupassen sind:
- die aktuelle Version
- je nach Konfiguration der User auf dem Server (Apache-User und FTP-User) müssen gegebenenfalls die Rechte angepasst werden, damit man die gerade aufgespielten Dateien auch per FTP bearbeiten kann. Ansonsten kann man die beiden Zeilen auch auskommentieren.
- für Updates muss zb. kein dummy-Paket ausgepackt und verschoben werden
MEMO: Wenn die Zugriffsrechte angepasst werden mussten unbedingt entsprechende Einträge im Install-tool machen ([fileCreateMask], [folderCreateMask] und ggfls. [createGroup]) sonst gibt es schnell wieder Stress mit Dateien, die sowohl über das BE als auch FTP bearbeitet werden.
Für eine TYPO3-Installation muss man nur diese PHP-Datei (zb. als unpack.php) auf den Server kopieren. Dann ruft man diese PHP-Datei auf (z.B. www.meinedomain.tld/unpack.php), die zuerst die Schreibrechte überprüft, dann die beiden Archive holt und anschließend auspackt. Und damit man mit der Konfiguration direkt loslegen kann gibt es am Ende der PHP-Datei einen direkten Link zum Install-Tool und zum 1-2-3-Install.