Letztes Mal habe ich das Blockdiagramm-Generierungswerkzeug blockdiag in CentOS6.5 eingeführt.
Dieses Mal werde ich die Tipps beschreiben, wenn Sie es über den Webserver verwenden.
-Wenn der Befehl blockdiag im Skript definiert ist, wird davon ausgegangen, dass er vom Benutzer / der Gruppe "Apache" ausgeführt wird.
-Es ist erforderlich, dem Apache-Benutzer oder der Apache-Gruppe eine Schreibberechtigung für das Ziel der Blockdiagrammgenerierung zu erteilen.
-Wenn der Befehl blockdiag ausgeführt wird, muss die Schriftart explizit angegeben werden, da sie vom Apache-Benutzer ausgeführt wird.
Aus dem Standarddokumentstamm
# mkdir /var/www/html/data
# chown .apache /var/www/html/data
# vi /var/www/html/index.php
--------------------
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>BlockDiag Online</h1>
<form action='index.php' method='post'>
<textarea name='text' cols='120' rows='20'>
blockdiag admin {
// Set M17N text using label property.
A [label = "Ki"];
B [label = "Akzeptiert"];
C [label = "Wende"];
D [label = "Fazit"];
A -> B -> C -> D;
// Use M17N text directly (need to quote).
Frühling->Sommer-->Herbst->Winter;
// Use M17N text including symbol characters (need to quote).
"Der Frühling bricht an" -> "Sommer-=Nacht" -> "Herbst.Abend" -> "Winter&sich anstrengen";
}
</textarea>
<hr />
<input type='submit' value='Umwandlung' />
</form>
<?php
if (isset($_POST['text'])){
//Pfad definieren usw.
$dir = "data/";
$font = "/usr/share/fonts/ipa-gothic/ipag.ttf";
$filename = sprintf("svg%04d",mt_rand(0,9999));
$fd = sprintf("./{$dir}%s.diag",$filename);
$ff = sprintf("./{$dir}%s.svg" ,$filename);
$text = $_POST['text'];
//Blockdiagramm erstellen
file_put_contents($fd,$text);
//Blockdiag-Befehlsausführung
$command = sprintf("blockdiag -f {$font} -Tsvg %s",$ft);
$Err = `$command`;
printf("command: %s<br />",$command);
print "<hr />";
if (file_exists($ff)) {
echo "$ff existiert<br />";
printf("ff: %s<br />",$ff);
print "<img src=\"{$ff}\" />";
} else {
echo "<span style='color:#ff0000;'>$ff existiert nicht. Scheint nicht generiert zu haben<br />";
echo "Bei Erfolg wird die folgende SVG-Datei generiert</span><br />";
print "<img src=\"/cp_root/nippon.svg\" />";
}
}
?>
</body>
</html>
# chmod 755 /var/www/html/index.php
http://example.com/index.php
# ls -l /var/www/html/data/svg5038.svg
-rw-r--r--1 Apache Apache 7465 8. Oktober 20:04 2014 /var/www/html/data/svg5038.svg
Ich denke, dass der Inhalt für den tatsächlichen Gebrauch ein wenig nützlich geworden ist.
Das ist es.
Recommended Posts