SysCP übernimmt keine Einstellungen

dodge

Registered User
Hallo,,
SysCP übernimmt keine Einstellungen. Wenn ich einen Kunden anlege, legt SysCP keinen Ordner an, Domains werden nicht richtig angelegt, Emails auch nicht. Habe alles so installiert wie im HowTo für Suse 9.3 . Aber es will die Einstellungen nicht übernehmen. Was kann ich tun?
 
DjTom-i said:
Mein Orakel sagt das evtl. dein Cronjob mit dem syscpcron.php nicht richtig läuft.
Aha, und was kann da nicht richtig laufen??
Code:
Could not open input file: /var/www/syscp/scripts/cronscript.php.

Edit: endlich funktioniert mal wieder ein Orakel, die sind ja ständig kaputt...
 
nun steht dort:
Code:
There is already a lockfile. Exiting...
Take a look into the contents of /var/run/syscp_cron.lock-* for more information!
und im syscp::cron.lock-*
Code:
Setting Lockfile to /var/run/syscp_cron.lock-1152290101Setting SysCP installation path to /var/www/syscpUserdatas includedTable definitions includedDatabase Class has been loaded

Was ist nun los`?
 
Last edited by a moderator:
Lösch den Lock und starte nochmal den Cron, dann bekommst du die Fehlermeldung angezeigt, natürlich wird wieder ein Lock gesetzt falls ein Fehler vorliegt.
 
DjTom-i said:
Lösch den Lock und starte nochmal den Cron, dann bekommst du die Fehlermeldung angezeigt, natürlich wird wieder ein Lock gesetzt falls ein Fehler vorliegt.
gemacht, aber nun wird kein Lock angelegt.
In der Mail steht jedoch:
Code:
There is already a lockfile. Exiting...
Take a look into the contents of /var/run/syscp_cron.lock-* for more information!
Aber es existiert kein Lock
 
Hab auch ein Problem mit dem Cronjob....

Code:
# /usr/bin/php4 -q -c /etc/php4/syscpcron /var/www/syscp/scripts/cronscript.php
rndc: connect failed: connection refused
 
Ich habe das gleiche Problem mit Debian und PHP 5 habe alles an php5 angepasst, aber als Fehlermeldung kommt im SSH

Code:
ks36337:/var/www/syscp/scripts# ./cronscript.php
./cronscript.php: line 1: ?php: Datei oder Verzeichnis nicht gefunden
./cronscript.php: line 2: /bin: is a directory
./cronscript.php: line 3: cronscript.php: command not found
./cronscript.php: line 4: syntax error near unexpected token `('
./cronscript.php: line 4: ` * Copyright (c) 2003-2006 the SysCP Team (see authors).'

Die cronscript Dateie befindet sich im /var/www/syscp/scripts Verzeichnis mit dem Inhalt

Code:
<?php
/**
 * This file is part of the SysCP project.
 * Copyright (c) 2003-2006 the SysCP Team (see authors).
 *
 * For the full copyright and license information, please view the COPYING
 * file that was distributed with this source code. You can also view the
 * COPYING file online at [url]http://files.syscp.org/misc/COPYING.txt[/url]
 *
 * @copyright  (c) the authors
 * @author     Florian Lippert <flo@syscp.org>
 * @author     Martin Burchert <eremit@syscp.org>
 * @license    GPLv2 [url]http://files.syscp.org/misc/COPYING.txt[/url]
 * @package    System
 * @version    $Id: cronscript.php 880 2006-10-18 20:52:23Z flo $
 */

	if(@php_sapi_name() != 'cli' && @php_sapi_name() != 'cgi' && @php_sapi_name() != 'cgi-fcgi')
	{
		die('This script will only work in the shell.');
	}

	$cronscriptDebug = false;
	$lockdir        = '/var/run/';
	$lockFilename   = 'syscp_cron.lock-';
	$lockfName      = $lockFilename.time();
	$lockfile		= $lockdir.$lockfName;

	// guess the syscp installation path
	// normally you should not need to modify this script anymore, if your
	// syscp installation isn't in /var/www/syscp
	$pathtophpfiles = '';
	if( substr($_SERVER['PHP_SELF'], 0, 1) != '/' )
	{
		$pathtophpfiles = $_SERVER['PWD'];
	}
	$pathtophpfiles .= '/'.$_SERVER['PHP_SELF'];
	$pathtophpfiles = str_replace( array( '/./', '//' ), '/', $pathtophpfiles );
	$pathtophpfiles = dirname(dirname( $pathtophpfiles ));

	// should the syscp installation guessing not work correctly,
	// uncomment the following line, and put your path in there!
	//$pathtophpfiles = '/var/www/syscp';

	$filename       = 'cronscript.php';

	// create and open the lockfile!
	$debugHandler = fopen( $lockfile, 'w' );
	fwrite( $debugHandler, 'Setting Lockfile to '.$lockfile . "\n");
	fwrite( $debugHandler, 'Setting SysCP installation path to '.$pathtophpfiles . "\n");

	// open the lockfile directory and scan for existing lockfiles
	$lockDirHandle  = opendir($lockdir);
	while ($fName = readdir($lockDirHandle))
	{
		if ( $lockFilename == substr($fName, 0, strlen($lockFilename)) && $lockfName != $fName )
		{
			// close the current lockfile
			fclose( $debugHandler );
			// ... and delete it
			unlink($lockfile);
			die('There is already a lockfile. Exiting...' . "\n" .
			    'Take a look into the contents of ' . $lockdir . $lockFilename .
			    '* for more information!' );
		}
	}

	/**
	 * Includes the Usersettings eg. MySQL-Username/Passwort etc.
	 */
	require($pathtophpfiles.'/lib/userdata.inc.php');
	fwrite( $debugHandler, 'Userdatas included' . "\n");

	/**
	 * Includes the MySQL-Tabledefinitions etc.
	 */
	require($pathtophpfiles.'/lib/tables.inc.php');
	fwrite( $debugHandler, 'Table definitions included' . "\n");

	/**
	 * Includes the MySQL-Connection-Class
	 */
	require($pathtophpfiles.'/lib/class_mysqldb.php');
	fwrite( $debugHandler, 'Database Class has been loaded' . "\n");
	$db      = new db($sql['host'],$sql['user'],$sql['password'],$sql['db']);
	$db_root = new db($sql['host'],$sql['root_user'],$sql['root_password'],'');
	if($db->link_id == 0 || $db_root->link_id == 0)
	{
		/**
		 * Do not proceed further if no database connection could be established (either normal or root)
		 */
		fclose( $debugHandler );
		unlink($lockfile);
		die('Cant connect to mysqlserver. Please check userdata.inc.php! Exiting...');
	}
	fwrite( $debugHandler, 'Database Connection established' . "\n" );

	unset( $sql               );
	unset( $db->password      );
	unset( $db_root->password );

	$result=$db->query("SELECT `settingid`, `settinggroup`, `varname`, `value` FROM `".TABLE_PANEL_SETTINGS."`");
	while($row=$db->fetch_array($result))
	{
		$settings[$row['settinggroup']][$row['varname']]=$row['value'];
	}
	unset($row);
	unset($result);
	fwrite( $debugHandler, 'SysCP Settings has been loaded from the database' . "\n");


	if(!isset($settings['panel']['version']) || $settings['panel']['version'] != $version)
	{
		/**
		 * Do not proceed further if the Database version is not the same as the script version
		 */
		fclose( $debugHandler );
		unlink($lockfile);
		die('Version of File doesnt match Version of Database. Exiting...');
	}
	fwrite( $debugHandler, 'SysCP Version and Database Version are correct' . "\n");

	/**
	 * Includes the Functions
	 */
	require($pathtophpfiles.'/lib/functions.php');
	fwrite( $debugHandler, 'Functions has been included' . "\n" );

	/**
	 * Backend Wrapper
	 */
	$query =
		'SELECT * ' .
		'FROM `'.TABLE_PANEL_CRONSCRIPT.'` ';
	$cronFileIncludeResult = $db->query($query);
	while ($cronFileIncludeRow = $db->fetch_array($cronFileIncludeResult))
	{
		fwrite( $debugHandler, 'Processing ...'.$pathtophpfiles.'/scripts/'.$cronFileIncludeRow['file'] . "\n");
		include_once $pathtophpfiles.'/scripts/'.$cronFileIncludeRow['file'];
		fwrite( $debugHandler, 'Processing done!' . "\n");
	}

	fclose( $debugHandler );
	unlink($lockfile);

	$db->query(
		'UPDATE `'.TABLE_PANEL_SETTINGS.'` ' .
		'SET `value` = UNIX_TIMESTAMP() ' .
		'WHERE `settinggroup` = \'system\'  ' .
		'  AND `varname`      = \'lastcronrun\' '
		);

	$db->close();
?>

Die Dateie etc/php5/syscpcron/php.ini wurde so angelegt wie es beim SysCP steht. Dazu wurde in /etc/cron.d noch eine Dateie syscp erstellt mit dem Inhalt

Code:
#
# Set PATH, otherwise restart-scripts won't find start-stop-daemon
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#
# Regular cron jobs for the syscp package
#
*/5 * * * *	root	/usr/bin/php5 -q -c /etc/php5/syscpcron /var/www/syscp/scripts/cronscript.php

Ich kann da keinen Fehler finden und trotzdem funktioniert es nicht.
 
Last edited by a moderator:
Änder doch bitte die Tags von QUOTE auf CODE Tags um.

Zu deinem Problem: Du kannst keine PHP Dateien einfach so mit ./ ausführen. Die PHP Dateien müssen geparsed werden. Deswegen
Code:
/usr/bin/php Dateiname.php
Voraussetzung dafür ist selbstverständlich, dass du PHP mit dem Command Line Schalter compiliert hast.
 
Habe es geänder mit dem QUOTE auf CODE ;)

Das mit dem usr/bin/php funktioniert nicht

Code:
ks36337:/var/www/syscp/scripts# /user/bin/php5 cronscript.php
-bash: /user/bin/php5: Datei oder Verzeichnis nicht gefunden
ks36337:/var/www/syscp/scripts# /user/bin/php cronscript.php
-bash: /user/bin/php: Datei oder Verzeichnis nicht gefunden

Command Line Schalter ist per apt-get install php5-cli installiert worden (Schon vorher)
 
Ok danke das war ein dummer Fehler von mir :o

Als ich es zuerst ausführe kam

Code:
ks36337:/var/www/syscp/scripts# /usr/bin/php5 cronscript.php
du: Zugriff auf ,,/var/kunden/webs/LabSen" nicht möglich: Datei oder Verzeichnis nicht gefunden
du: Zugriff auf ,,/var/kunden/mail/LabSen" nicht möglich: Datei oder Verzeichnis nicht gefunden
[Sat Dec 23 14:39:57 2006] [warn] NameVirtualHost XXX:80 has no VirtualHosts

Dann habe ich dem Verzeichnissen /var/kunden /var/kunden/webs /var/kunden/mail und /var/kunden/logs die Rechte 777 gegeben und danach gin es.

Nun funktioniert aber der Seiten aufruf nicht mehr. Wenn ich IP/syscp aufrufe kommt

Not Found

The requested URL /syscp/ was not found on this server.

Auch die Seite des Kundes ist noch nicht zu finden.

In der /etc/apache2/diroptions.conf ist das zu finden.
Code:
# /etc/apache2/diroptions.conf
# Created 23.12.2006 14:39
# Do NOT manually edit this file, all changes will be deleted after the next dir options change at the panel.

<Directory "/var/kunden/webs/LabSen/webalizer/">
  AuthType Basic
  AuthName "Restricted Area"
  AuthUserFile /etc/apache2/htpasswd/1-1-16398b59eaa6c2d5cf751fedd209a158.htpasswd
  require valid-user
</Directory>

In der /etc/apache2/sites-available/99_syscp_vhosts.conf

Code:
# /etc/apache2/sites-available/99_syscp_vhosts.conf
# Created 23.12.2006 14:39
# Do NOT manually edit this file, all changes will be  deleted after the next domain change at the panel.

Include /etc/apache2/diroptions.conf

NameVirtualHost XXX:80
<VirtualHost XXX:80>
 ServerName XXX.com
</VirtualHost>

# Domain ID: 1 - CustomerID: 1 - CustomerLogin: LabSen
<VirtualHost XXX:80>
  ServerName LabSen.XXX.com
  ServerAlias www.LabSen.XXX.com
  ServerAdmin labsen@gmx.net
  DocumentRoot "/var/kunden/webs/LabSen/"
  php_admin_value open_basedir "/var/kunden/webs/LabSen/:/tmp/"
  php_admin_flag safe_mode On 
  ErrorLog "/var/kunden/logs/LabSen-error.log"
  CustomLog "/var/kunden/logs/LabSen-access.log" combined

</VirtualHost>

Nun wundert es mich, dass keine Datei in im /etc/apache2/sites-enabled zu finden ist. Was doch eigendlich sollte oder?

Im /var/log/apache2/error.log steht nur

Code:
[Sat Dec 23 14:42:07 2006] [error] [client XXX] File does not exist: /htdocs
[Sat Dec 23 14:45:40 2006] [error] [client XXX] File does not exist: /htdocs
[Sat Dec 23 14:45:57 2006] [error] [client XXX] File does not exist: /htdocs
[Sat Dec 23 14:50:48 2006] [error] [client XXX] File does not exist: /htdocs
 
Hallo,

normal ist im sites-enabled/ eine 000-default Datei drin, die den DocumentRoot auf /var/www festlegt. Eventuell solltest du die Apache Konfiguration um diese Angabe ersetzen.

Liebe Grüße
 
Also ich finde "chmod 777 -R /" löst eigentlich fast alle Probleme. Mache ich täglich.

Grüße
Sinepp
 
Back
Top