Kategori PHP

RRD Graphen über SNMP erstellen

Sonntag, Januar 30th, 2011

Hier Dokumentire ich mal wie wir im Wohnheim den Cisco Catalist 4006 über SNMP abfragen um RRD Graphen zu erstellen. Zuerst muss man auf den Cisco natürlich SNMP einschalten und ein Passwort Sätzen.

snmp-server community password RO
snmp-server enable traps tty

Als erstes müssen vollende Pakete installiert werden:
apt-get install php-cli snmp rrdtool

Dann habe ich ein Script geschrieben das die insgesamt 195 Port abfragt.

#!/usr/bin/php5

Das ganze sieht dann so aus, hier ist der Aktelle Graph des Netzwerk Trafik des Wohnheims:
network traffic

sudo für www-data auf ein Programm

Freitag, Januar 28th, 2011

Um für die Internet freischalte Anwendung im Wohnheim dem Apache root Rechte auf ein Programm zu geben, gibt es die Möglichkeit dies mit sudo und nopassword zumachen. Dafür Edition man die /etc/sudoers mit visudo und ergänzt dies mit einer solchen Zeile:

www-data ALL=NOPASSWD:/usr/sbin/arp

So kann der Befehl

$mac = system('sudo arp -a '. $_SERVER['REMOTE_ADDR'] .' | cut -d " " -f4');

instent die MAC Adresse für die IP des Client Rechners ermitteln, obwohl root rechte zum ausführen einer arp anfrage benötige werden.

MediaWiki LDAP benuzer

Freitag, November 19th, 2010

Bei der Installation eines MediaWikis mit LDAP Plugin als Benutzerauthentifizierung bin ich in folgende falle gelaufen. Trotz Debuggen „on“ bekam ich nur Folgenden Fehler:

LoginForm::attemptAutoCreate: $wgAuth->authenticate() returned false, aborting

Zuerst mal sollte man überprüfen ob das PHP LDAP Modul aktiviert ist.

Dann müssen folgende Einstellungen in der LocalSettings.php eingetragen werden.

require_once( "extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();

$wgLDAPDomainNames = array( "blog.chr.istoph.de" );
$wgLDAPServerNames = array( "blog.chr.istoph.de" => "ldap.chr.istoph.de" );
$wgLDAPBaseDNs = array( "blog.chr.istoph.de"=>"dc=chr,dc=istoph,dc=de" );
$wgLDAPSearchAttributes = array( "blog.chr.istoph.de" => "uid" );
$wgLDAPSearchStrings = array( "blog.chr.istoph.de" => "uid=USER-NAME,ou=people,dc=chr,dc=istoph,dc=de" );

MySQL Unix Socket weiterleiten

Samstag, November 13th, 2010

Wenn man bei einer LAMP System den Datenbankserver auf eine extra Maschine legen muss, hat man dank PHP etwas Stress mit dem unterschied zwischen localhost und 127.0.0.1 bzw ::1. Das liegt daran der UNIX Socket bei mein match auf localhost fest einkompiliert ist.

Mit socat kann man den Unix Socket zum Glück umleiten:
socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,fork,user=mysql,group=mysql,mode=777 TCP:localhost:3306 2> /dev/null &

Mit rinetd kann man diese dann auf eine IP Weiterleiten.

Importscript von Drupal nach WordPress

Samstag, März 6th, 2010

Endlich hat der AStA eine neue Webseite. Was auffällt ist vermutlich das Kopfzeilen Hintergründigbild das meinem vielleicht ein bisschen ähnelt. Die Jungs vom AStA haben beim anschauen meines Blogs ein bisschen inspirieren lassen. Toll an dem Bild, das ich von meinem Turm geschossen habe, ist nämlich das es die sich um die Sicht der ganzen FH-Aachen auf Aachen handelt, da alle Standorte sich hinter dem HBF befinden. Ich habe dafür einen Importscript von Drupal nach WordPress geschrieben. Wie immer habe ich es als PHP_CLI Anwendung auf der Konsole gemacht.

#!/usr/bin/php5
 0)
	{
		#UPDATE
		$sql = "UPDATE `wp_posts` SET `post_content`= 
CONCAT(`post_content` , '" . mysql_real_escape_string(con( $ds['post_content'] )) ."') 
WHERE `post_title`='". mysql_real_escape_string(con( $ds['post_title'] )) ."'";
	}
	else
	{
		$sql = "
		INSERT INTO `wp_posts` 
		SET 
		`post_author`='1', 
		`post_date`='". $ds['post_date'] ."', 
		`post_date_gmt`='". $ds['post_date'] ."', 
		`post_content`='" . mysql_real_escape_string(con( $ds['post_content'] )) ."', 
		`post_title`='". mysql_real_escape_string(con( $ds['post_title'] )) ."', 
		`post_excerpt`='', 
		`post_status`='publish', 
		`comment_status`='closed', 
		`ping_status`='closed', 
		`post_password`='', 
		`post_name`='". $ds['post_name'] ."', 
		`to_ping`='', 
		`pinged`='', 
		`post_modified`='". $ds['post_modified'] ."', 
		`post_modified_gmt`='". $ds['post_modified'] ."',
		`post_type`='page';
		";
	}

	mysql_query($sql,$link) or die (mysql_error($link));
}

### Import Post
mysql_select_db("drupal",$link);

$sql = 'SELECT `news_id` , `news_category_id` , `news_title` , `news_data` , 
`news_date` , `summary` , `start_time` , `end_time` , `status` , 
`icon` , `create_date` , `modified_date` , `author_id` , `news_extra` 
FROM `cms_module_news`';


$q = mysql_query($sql,$link);
mysql_select_db("wordpress",$link);
for(;$ds = mysql_fetch_array($q);)
{

$sql = "
		INSERT INTO `wp_posts` 
		SET 
		`post_author`='1', 
		`post_date`='". $ds['create_date'] ."', 
		`post_date_gmt`='". $ds['create_date'] ."', 
		`post_content`='" . mysql_real_escape_string(con( $ds['news_data'] )) ."', 
		`post_title`='". mysql_real_escape_string(con( $ds['news_title'] )) ."', 
		`post_excerpt`='" . mysql_real_escape_string(con( $ds['summary'] )) ."', 
		`post_status`='publish', 
		`comment_status`='closed', 
		`ping_status`='closed', 
		`post_password`='', 
		`post_name`='". $ds['post_name'] ."', 
		`to_ping`='', 
		`pinged`='', 
		`post_modified`='". $ds['modified_date'] ."', 
		`post_modified_gmt`='". $ds['modified_date'] ."'
		";

	mysql_query($sql,$link) or die (mysql_error($link));
}
?>