Skip to content

Instantly share code, notes, and snippets.

@kazumich
Last active June 30, 2016 00:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kazumich/cf9d5e44f7c2d49e1cf7 to your computer and use it in GitHub Desktop.
Save kazumich/cf9d5e44f7c2d49e1cf7 to your computer and use it in GitHub Desktop.
ヘテムル や ロリポップ に a-blog cms 2.6.1.2 をインストールするためのインストーラーです。PHP 5.4 の環境でご利用ください。(PHP 7.0については未対応です)これで正常にインストールできない場合にはコメントでお知らせください。
<?php
// --------------------------
//
// ヘテムル&ロリポップ用 a-blog cms 2.6.1.2 インストーラー
// (linux系で ioncube が標準のサーバー向け)
//
// --------------------------
# インストーラー の
# MySQL の設定を事前に行う場合に
# ここを設定してください。
$dbHost = 'mysql@@@.heteml.jp'; // 'mysql@@@.phy.lolipop.lan'
$dbName = '';
$dbUser = '';
$dbPass = '';
// --------------------------
// a-blog cms Ver. 2.6.0.2 設定
// --------------------------
# ダウンロード元 URL
$download = "http://ablogc.ms/29btqGH";
# ダウンロード後のZipファイル名
$zipFile = "./acms2612_install.zip";
# 解凍後の全体フォルダ名
$zipAfterDirName = "acms2612_install_53x";
# 解凍後の a-blog cms のフォルダ名
$cmsDirName = "ablogcms";
$installPath = realpath('.');
$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/";
$phpName = basename($_SERVER['PHP_SELF']);
// --------------------------
// a-blog cms ファイルをダウンロード
// --------------------------
$fp = fopen($download, "r");
if ($fp !== FALSE) {
file_put_contents($zipFile, "");
while(!feof($fp)) {
$buffer = fread($fp, 4096);
if ($buffer !== FALSE) {
file_put_contents($zipFile, $buffer, FILE_APPEND);
}
}
fclose($fp);
} else {
echo 'a-blog cms download Error ! : '.$download;
exit;
}
// --------------------------
// a-blog cms ファイルを解凍
// --------------------------
$zip = new ZipArchive();
$res = $zip->open($zipFile);
if($res === true){
$zip->extractTo($installPath);
$zip->close();
} else {
echo 'a-blog cms unZip Error ! : '. $zipFile;
exit;
}
// --------------------------
// a-blog cms ディレクトリを移動
// --------------------------
if ($handle = opendir($ablogcmsDir)) {
while(false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
rename($ablogcmsDir.$entry, $installPath ."/". $entry);
}
}
closedir($handle);
} else {
echo 'a-blog cms move Error ! :'.$ablogcmsDir;
exit;
}
// --------------------------
// .htaccess の設定
// --------------------------
rename($installPath."/htaccess.txt", $installPath.'/.htaccess');
rename($installPath."/archives/htaccess.txt", $installPath.'/archives/.htaccess');
rename($installPath."/archives_rev/htaccess.txt", $installPath.'/archives_rev/.htaccess');
rename($installPath."/media/htaccess.txt", $installPath.'/media/.htaccess');
rename($installPath."/private/htaccess.txt", $installPath.'/private/.htaccess');
rename($installPath."/themes/htaccess.txt", $installPath.'/themes/.htaccess');
// --------------------------
// DB 初期設定
// --------------------------
$data = sprintf("<?php
\$dbDefaultHost = '%s';
\$dbDefaultName = '%s';
\$dbDefaultCreate = ''; // '' or 'checked'
\$dbDefaultUser = '%s';
\$dbDefaultPass = '%s';
\$dbDefaultPrefix = 'acms_';",$dbHost,$dbName,$dbUser,$dbPass);
$db_default = $installPath."/setup/lib/db_default.php";
file_put_contents($db_default, $data);
// --------------------------
// ファイルの削除
// --------------------------
unlink($zipFile);
unlink($phpName);
# index.html があった時にリネームしておく
if (is_file("./index.html")) {
rename("./index.html", "_index.html");
}
# プログラム以外のディレクトリを削除
dir_shori("delete", $zipAfterDirName);
// --------------------------
// インストーラーに飛ぶ
// --------------------------
$jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']);
header("Location: " . $jump);
// --------------------------
// ディレクトリを操作 function ( move / copy / delete )
// --------------------------
function dir_shori ($shori, $nowDir , $newDir="") {
if ($shori != "delete") {
if (!is_dir($newDir)) {
mkdir($newDir);
}
}
if (is_dir($nowDir)) {
if ($handle = opendir($nowDir)) {
while (($file = readdir($handle)) !== false) {
if ($file != "." && $file != "..") {
if ($shori == "copy") {
if (is_dir($nowDir."/".$file)) {
dir_shori("copy", $nowDir."/".$file, $newDir."/".$file);
} else {
copy($nowDir."/".$file, $newDir."/".$file);
}
} elseif ($shori == "move") {
rename($nowDir."/".$file, $newDir."/".$file);
} elseif ($shori == "delete") {
if (filetype($nowDir."/".$file) == "dir") {
dir_shori("delete", $nowDir."/".$file, "");
} else {
unlink($nowDir."/".$file);
}
}
}
}
closedir($handle);
}
}
if ($shori == "move" || $shori == "delete") {
rmdir($nowDir);
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment