From c629d0e02ff0b5b85839e0d7405f3ddc4579f9f7 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 5 Jan 2022 12:04:01 +0900 Subject: [PATCH 01/23] =?UTF-8?q?=E7=B0=A1=E5=8D=98=E3=82=BB=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=82=A2=E3=83=83=E3=83=97=E3=82=92=20Ver.=203.0=20?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 210x/cpi/readme.txt | 30 -- 210x/cpi/setup.php | 473 -------------------------- 210x/heteml/readme.txt | 30 -- 210x/heteml/setup.php | 323 ------------------ 210x/lolipop/readme.txt | 30 -- 210x/lolipop/setup.php | 259 -------------- 210x/mamp/readme.txt | 30 -- 210x/mamp/setup.php | 363 -------------------- 210x/sakura/readme.txt | 29 -- 210x/sakura/setup.php | 336 ------------------- 210x/update/update.php | 313 ----------------- 210x/xampp/readme.txt | 30 -- 210x/xampp/setup.php | 366 -------------------- 210x/xserver/readme.txt | 30 -- 210x/xserver/setup.php | 358 -------------------- 210x/zenlogic/readme.txt | 30 -- 210x/zenlogic/setup.php | 243 -------------- 211x/cpi/readme.txt | 30 -- 211x/cpi/setup.php | 576 -------------------------------- 211x/heteml/readme.txt | 30 -- 211x/heteml/setup.php | 384 --------------------- 211x/lolipop/readme.txt | 30 -- 211x/lolipop/setup.php | 339 ------------------- 211x/mamp/readme.txt | 30 -- 211x/mamp/setup.php | 430 ------------------------ 211x/onamae/readme.txt | 31 -- 211x/onamae/setup.php | 400 ---------------------- 211x/sakura/readme.txt | 29 -- 211x/sakura/setup.php | 397 ---------------------- 211x/update/readme.txt | 32 -- 211x/xampp/readme.txt | 30 -- 211x/xampp/setup.php | 438 ------------------------ 211x/xserver/readme.txt | 30 -- 211x/xserver/setup.php | 435 ------------------------ 211x/zenlogic/readme.txt | 30 -- 211x/zenlogic/setup.php | 307 ----------------- 28x/cpi/readme.txt | 30 -- 28x/cpi/setup.php | 473 -------------------------- 28x/heteml/readme.txt | 30 -- 28x/heteml/setup.php | 297 ---------------- 28x/lolipop/readme.txt | 30 -- 28x/lolipop/setup.php | 259 -------------- 28x/mamp/readme.txt | 30 -- 28x/mamp/setup.php | 363 -------------------- 28x/sakura/readme.txt | 29 -- 28x/sakura/setup.php | 336 ------------------- 28x/update/readme.txt | 33 -- 28x/update/update.php | 312 ----------------- 28x/xampp/readme.txt | 30 -- 28x/xampp/setup.php | 336 ------------------- 28x/xserver/readme.txt | 30 -- 28x/xserver/setup.php | 358 -------------------- 28x/zenlogic/readme.txt | 30 -- 28x/zenlogic/setup.php | 243 -------------- 29x/cpi/readme.txt | 30 -- 29x/cpi/setup.php | 473 -------------------------- 29x/heteml/readme.txt | 30 -- 29x/heteml/setup.php | 297 ---------------- 29x/lolipop/readme.txt | 30 -- 29x/lolipop/setup.php | 259 -------------- 29x/mamp/readme.txt | 30 -- 29x/mamp/setup.php | 363 -------------------- 29x/sakura/readme.txt | 29 -- 29x/sakura/setup.php | 336 ------------------- 29x/update/readme.txt | 32 -- 29x/update/update.php | 312 ----------------- 29x/xampp/readme.txt | 30 -- 29x/xampp/setup.php | 365 -------------------- 29x/xserver/readme.txt | 30 -- 29x/xserver/setup.php | 358 -------------------- 29x/zenlogic/readme.txt | 30 -- 29x/zenlogic/setup.php | 243 -------------- 30x/install/readme.txt | 15 + 30x/install/setup.php | 337 +++++++++++++++++++ {210x => 30x}/update/readme.txt | 7 +- {211x => 30x}/update/update.php | 178 +++++----- README.md | 23 +- build/210x/cpi.zip | Bin 4591 -> 0 bytes build/210x/heteml.zip | Bin 3810 -> 0 bytes build/210x/lolipop.zip | Bin 3599 -> 0 bytes build/210x/mamp.zip | Bin 4411 -> 0 bytes build/210x/sakura.zip | Bin 4105 -> 0 bytes build/210x/update.zip | Bin 4022 -> 0 bytes build/210x/xampp.zip | Bin 4132 -> 0 bytes build/210x/xserver.zip | Bin 4581 -> 0 bytes build/210x/zenlogic.zip | Bin 3437 -> 0 bytes build/211x/cpi.zip | Bin 4812 -> 0 bytes build/211x/heteml.zip | Bin 3985 -> 0 bytes build/211x/lolipop.zip | Bin 4055 -> 0 bytes build/211x/mamp.zip | Bin 4534 -> 0 bytes build/211x/onamae.zip | Bin 4598 -> 0 bytes build/211x/sakura.zip | Bin 4279 -> 0 bytes build/211x/xampp.zip | Bin 4423 -> 0 bytes build/211x/xserver.zip | Bin 4857 -> 0 bytes build/211x/zenlogic.zip | Bin 3745 -> 0 bytes build/28x/cpi.zip | Bin 4586 -> 0 bytes build/28x/heteml.zip | Bin 3734 -> 0 bytes build/28x/lolipop.zip | Bin 3594 -> 0 bytes build/28x/mamp.zip | Bin 4406 -> 0 bytes build/28x/sakura.zip | Bin 4101 -> 0 bytes build/28x/update.zip | Bin 4014 -> 0 bytes build/28x/xampp.zip | Bin 4080 -> 0 bytes build/28x/xserver.zip | Bin 4575 -> 0 bytes build/28x/zenlogic.zip | Bin 3432 -> 0 bytes build/29x/cpi.zip | Bin 4586 -> 0 bytes build/29x/heteml.zip | Bin 3733 -> 0 bytes build/29x/lolipop.zip | Bin 3594 -> 0 bytes build/29x/mamp.zip | Bin 4406 -> 0 bytes build/29x/sakura.zip | Bin 4101 -> 0 bytes build/29x/update.zip | Bin 4014 -> 0 bytes build/29x/xampp.zip | Bin 4137 -> 0 bytes build/29x/xserver.zip | Bin 4575 -> 0 bytes build/29x/zenlogic.zip | Bin 3432 -> 0 bytes build/{211x => 30x}/update.zip | Bin deploy.js | 19 +- 115 files changed, 455 insertions(+), 13931 deletions(-) delete mode 100755 210x/cpi/readme.txt delete mode 100755 210x/cpi/setup.php delete mode 100755 210x/heteml/readme.txt delete mode 100755 210x/heteml/setup.php delete mode 100755 210x/lolipop/readme.txt delete mode 100755 210x/lolipop/setup.php delete mode 100755 210x/mamp/readme.txt delete mode 100755 210x/mamp/setup.php delete mode 100755 210x/sakura/readme.txt delete mode 100755 210x/sakura/setup.php delete mode 100755 210x/update/update.php delete mode 100755 210x/xampp/readme.txt delete mode 100755 210x/xampp/setup.php delete mode 100755 210x/xserver/readme.txt delete mode 100755 210x/xserver/setup.php delete mode 100755 210x/zenlogic/readme.txt delete mode 100755 210x/zenlogic/setup.php delete mode 100755 211x/cpi/readme.txt delete mode 100755 211x/cpi/setup.php delete mode 100755 211x/heteml/readme.txt delete mode 100755 211x/heteml/setup.php delete mode 100755 211x/lolipop/readme.txt delete mode 100755 211x/lolipop/setup.php delete mode 100755 211x/mamp/readme.txt delete mode 100755 211x/mamp/setup.php delete mode 100755 211x/onamae/readme.txt delete mode 100755 211x/onamae/setup.php delete mode 100755 211x/sakura/readme.txt delete mode 100755 211x/sakura/setup.php delete mode 100755 211x/update/readme.txt delete mode 100755 211x/xampp/readme.txt delete mode 100755 211x/xampp/setup.php delete mode 100755 211x/xserver/readme.txt delete mode 100755 211x/xserver/setup.php delete mode 100755 211x/zenlogic/readme.txt delete mode 100755 211x/zenlogic/setup.php delete mode 100755 28x/cpi/readme.txt delete mode 100755 28x/cpi/setup.php delete mode 100755 28x/heteml/readme.txt delete mode 100755 28x/heteml/setup.php delete mode 100755 28x/lolipop/readme.txt delete mode 100755 28x/lolipop/setup.php delete mode 100755 28x/mamp/readme.txt delete mode 100755 28x/mamp/setup.php delete mode 100755 28x/sakura/readme.txt delete mode 100755 28x/sakura/setup.php delete mode 100755 28x/update/readme.txt delete mode 100755 28x/update/update.php delete mode 100755 28x/xampp/readme.txt delete mode 100755 28x/xampp/setup.php delete mode 100755 28x/xserver/readme.txt delete mode 100755 28x/xserver/setup.php delete mode 100755 28x/zenlogic/readme.txt delete mode 100755 28x/zenlogic/setup.php delete mode 100755 29x/cpi/readme.txt delete mode 100755 29x/cpi/setup.php delete mode 100755 29x/heteml/readme.txt delete mode 100755 29x/heteml/setup.php delete mode 100755 29x/lolipop/readme.txt delete mode 100755 29x/lolipop/setup.php delete mode 100755 29x/mamp/readme.txt delete mode 100755 29x/mamp/setup.php delete mode 100755 29x/sakura/readme.txt delete mode 100755 29x/sakura/setup.php delete mode 100755 29x/update/readme.txt delete mode 100755 29x/update/update.php delete mode 100755 29x/xampp/readme.txt delete mode 100755 29x/xampp/setup.php delete mode 100755 29x/xserver/readme.txt delete mode 100755 29x/xserver/setup.php delete mode 100755 29x/zenlogic/readme.txt delete mode 100755 29x/zenlogic/setup.php create mode 100755 30x/install/readme.txt create mode 100755 30x/install/setup.php rename {210x => 30x}/update/readme.txt (96%) rename {211x => 30x}/update/update.php (53%) delete mode 100644 build/210x/cpi.zip delete mode 100644 build/210x/heteml.zip delete mode 100644 build/210x/lolipop.zip delete mode 100644 build/210x/mamp.zip delete mode 100644 build/210x/sakura.zip delete mode 100644 build/210x/update.zip delete mode 100644 build/210x/xampp.zip delete mode 100644 build/210x/xserver.zip delete mode 100644 build/210x/zenlogic.zip delete mode 100644 build/211x/cpi.zip delete mode 100644 build/211x/heteml.zip delete mode 100644 build/211x/lolipop.zip delete mode 100644 build/211x/mamp.zip delete mode 100644 build/211x/onamae.zip delete mode 100644 build/211x/sakura.zip delete mode 100644 build/211x/xampp.zip delete mode 100644 build/211x/xserver.zip delete mode 100644 build/211x/zenlogic.zip delete mode 100644 build/28x/cpi.zip delete mode 100644 build/28x/heteml.zip delete mode 100644 build/28x/lolipop.zip delete mode 100644 build/28x/mamp.zip delete mode 100644 build/28x/sakura.zip delete mode 100644 build/28x/update.zip delete mode 100644 build/28x/xampp.zip delete mode 100644 build/28x/xserver.zip delete mode 100644 build/28x/zenlogic.zip delete mode 100644 build/29x/cpi.zip delete mode 100644 build/29x/heteml.zip delete mode 100644 build/29x/lolipop.zip delete mode 100644 build/29x/mamp.zip delete mode 100644 build/29x/sakura.zip delete mode 100644 build/29x/update.zip delete mode 100644 build/29x/xampp.zip delete mode 100644 build/29x/xserver.zip delete mode 100644 build/29x/zenlogic.zip rename build/{211x => 30x}/update.zip (100%) diff --git a/210x/cpi/readme.txt b/210x/cpi/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/cpi/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/cpi/setup.php b/210x/cpi/setup.php deleted file mode 100755 index 38ec62a..0000000 --- a/210x/cpi/setup.php +++ /dev/null @@ -1,473 +0,0 @@ -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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$ioncubePhpVersion); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - - - -// -------------------------- -// .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'); - -$htaccess = file_get_contents($installPath."/.htaccess"); - -$new = sprintf(" -deny from all - -Options +SymLinksIfOwnerMatch -AddHandler x-httpd-php%s .php\n\n",$phpVersion); - -$fp = fopen($installPath."/.htaccess",'w'); -fwrite($fp,$new.$htaccess); -fclose($fp); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -if ($mysql_version == "5.6") { - $dbHost .= ":3307"; -} - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} diff --git a/210x/heteml/readme.txt b/210x/heteml/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/heteml/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/heteml/setup.php b/210x/heteml/setup.php deleted file mode 100755 index c4ee91f..0000000 --- a/210x/heteml/setup.php +++ /dev/null @@ -1,323 +0,0 @@ -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 の設定 -// -------------------------- - -if (is_file($installPath."/.htaccess")) { - # .htaccess があった場合にはバックアップ - rename($installPath."/.htaccess", $installPath.'/.htaccess_backup'.date("YmdHis")); -} - -rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); - -if ($htaccessPlus != "") { - $htaccess = file_get_contents($installPath.'/.htaccess'); - $htaccess = $htaccessPlus . "\n\n" . $htaccess; - file_put_contents($installPath.'/.htaccess', $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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} diff --git a/210x/lolipop/readme.txt b/210x/lolipop/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/lolipop/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/lolipop/setup.php b/210x/lolipop/setup.php deleted file mode 100755 index 8c8e12e..0000000 --- a/210x/lolipop/setup.php +++ /dev/null @@ -1,259 +0,0 @@ -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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} diff --git a/210x/mamp/readme.txt b/210x/mamp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/mamp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/mamp/setup.php b/210x/mamp/setup.php deleted file mode 100755 index af3d81e..0000000 --- a/210x/mamp/setup.php +++ /dev/null @@ -1,363 +0,0 @@ - - - - -a-blog cms インストーラー (MAMP版) - - - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -# ioncube Loader ダウンロード元 URL -$downloadIoncube = "http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_dar_x86-64.zip"; - -# ioncube Loader ダウンロード後のZipファイル名 -$zipFileIoncube ="ioncube.zip"; - -$installPath = realpath('.'); - -$phpName = basename($_SERVER['PHP_SELF']); - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -$ablogcmsVersionNum = str_replace(".", "", $ablogcmsVersion); - -$mampRestart = ""; - -// -------------------------- -// データベースの設定 -// -------------------------- - -$dbHost = 'localhost'; -$dbName = 'DBacms_'.$ablogcmsVersionNum."_".date(mdHi); -$dbCreate = 'checked'; -$dbUser = 'root'; -$dbPass = 'root'; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube Loader チェック -// -------------------------- - -$useIonCubeLoader = sprintf("ioncube_loader_dar_%d.%d.so",$versionArray[0],$versionArray[1]); - -if (!is_file(PHP_EXTENSION_DIR."/".$useIonCubeLoader)) { - - - // -------------------------- - // ioncube ファイルをダウンロード - // -------------------------- - - $fp = fopen($downloadIoncube, "r"); - if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); - } else { - echo 'ioncube loader download Error ! : '.$download; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを解凍 - // -------------------------- - - $zip = new ZipArchive(); - $res = $zip->open($zipFileIoncube); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを移動 - // -------------------------- - - rename("./ioncube/".$useIonCubeLoader, PHP_EXTENSION_DIR."/".$useIonCubeLoader); - - // -------------------------- - // php.ini の設定 - // -------------------------- - - # MAMP の php.ini のパスを設定する - $iniFile = "/Applications/MAMP/bin/php/php".phpversion()."/conf/php.ini"; - - # 追記する設定内容 - $iniData = sprintf("\n\ndate.timezone = 'Asia/Tokyo'\n\nzend_extension = \"%s/ioncube_loader_dar_%d.%d.so\"",PHP_EXTENSION_DIR ,$versionArray[0],$versionArray[1]); - - $file = file_get_contents($iniFile); - - if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - - } else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); - } - - $mampRestart = "MAMPを再起動して "; - -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -rename("./htaccess.txt", './.htaccess'); -#rename("./archives/htaccess.txt", './archives/.htaccess'); -#rename("./archives_rev/htaccess.txt", './archives_rev/.htaccess'); -#rename("./private/htaccess.txt", './private/.htaccess'); -#rename("./media/htaccess.txt", './media/.htaccess'); -#rename("./theme/htaccess.txt", './theme/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("a-blog cms Ver %s ( php %s ) をインストールしました。

',$ablogcmsVersion,$version); - -$jump = "http://".$_SERVER['HTTP_HOST'].str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -echo sprintf('

%s%s にアクセスしてください。

',$mampRestart, $jump, $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; -} - -function download_version_check () { - - // Version 2.10.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/210x/sakura/readme.txt b/210x/sakura/readme.txt deleted file mode 100755 index a37d7a2..0000000 --- a/210x/sakura/readme.txt +++ /dev/null @@ -1,29 +0,0 @@ -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/sakura/setup.php b/210x/sakura/setup.php deleted file mode 100755 index 2188c23..0000000 --- a/210x/sakura/setup.php +++ /dev/null @@ -1,336 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] == 5) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[0] == 5 && $versionArray[1] == 4) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[1] == 3) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} else { - echo "php version check error!"; - exit; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$version); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - -// -------------------------- -// .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'); - -# RewriteBase を調整 -if (!preg_match("/www$/", $installPath)) { - - if ($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'] != $_SERVER['SCRIPT_FILENAME']) { - - $installDir = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - $htaccessFile = $installPath."/.htaccess"; - $data = file_get_contents($htaccessFile); - $data = str_replace("# RewriteBase /", "RewriteBase ".$installDir, $data); - file_put_contents($htaccessFile, $data); - } -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} diff --git a/210x/update/update.php b/210x/update/update.php deleted file mode 100755 index 8b73aeb..0000000 --- a/210x/update/update.php +++ /dev/null @@ -1,313 +0,0 @@ - 2.10.x update -// -// -------------------------- - -# 今後は、このアップデートを利用することなく管理ページから -# 可能になります。 - -$ablogcmsVersion = ""; #サイトからバージョンを自動チェック - -# ERROR になる場合や 2.10系のバージョンを -# 指定したい場合には、バージョンを設定してください。 - -#$ablogcmsVersion = "2.10.0"; - -// -------------------------- - -# 利用しているテーマを指定します。 -# 複数あれば | で区切って指定してください。 -# 継承しているテーマは全て含まれます。 -# systemはアップデート対象になりますので指定しないでください。 - - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -// -------------------------- -// 二重実行防止処理 -// -------------------------- - -$lockFile = realpath('.'). "/update.lock"; - -if (is_file($lockFile)) { - echo "lockFile:".$lockFile; - exit; -} else { - touch($lockFile); -} - -// -------------------------- -// 現在の a-blog cms のバージョンをチェック -// -------------------------- - -if (!$ablogcmsVersion) { - $check = download_version_check (); - if ($check) { - $ablogcmsVersion = $check; - } else { - echo "web site version check error."; - exit; - } -} - -// -------------------------- - -# 実行時刻 -$ymdhis = date("YmdHis"); - -# ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip",$ablogcmsVersion,$ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip",$ablogcmsVersion,$ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip",$ablogcmsVersion,$ablogcmsVersion); - -# ダウンロード後のZipファイル名 -$zipFile = sprintf("./acms_%s.zip",$ymdhis); - -# 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3",$ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6",$ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1",$ablogcmsVersion); - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -// -------------------------- -// バージョンチェック -// -------------------------- - -$versionArray = explode(".", phpversion()); -$version = $versionArray[0].".".$versionArray[1]; - - -if ($versionArray[0]==7 && $versionArray[1] > 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$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; -} - -// -------------------------- -// バックアップ -// -------------------------- - -$backupDir = "backup_". $ymdhis; - -# バックアップディレクトリを作成 -mkdir($backupDir); - -# ファイルを移動 -if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); -if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); -if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); -rename("./index.php", $backupDir."/index.php"); - -# ディレクトリを移動 - -dir_shori("move", "./js", $backupDir."/js"); -dir_shori("move", "./lang", $backupDir."/lang"); -dir_shori("move", "./php", $backupDir."/php"); -dir_shori("move", "./private", $backupDir."/private"); -dir_shori("move", "./themes", $backupDir."/themes"); - -if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir."/cache"); -if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir."/extension"); - - -// -------------------------- -// update版 ファイル&ディレクトリを移動 -// -------------------------- - -dir_shori("move", $ablogcmsDir, $installPath); - -# 運用中のものを利用するので新しいファイルは削除 -unlink($installPath ."/htaccess.txt"); - -// -------------------------- -// カスタマイズ部分を戻す -// -------------------------- - -# themes を戻す -if (isset($useThemes)) { -if ($handle = opendir($backupDir."/themes")) { - while(false !== ($theme = readdir($handle))) { - if ($theme != "." && $theme != "..") { - if (preg_match("/".$useThemes."/", $theme)) { - if (is_dir("./themes/".$theme)) { - rename ("./themes/".$theme, "./themes/".$theme."_".$ablogcmsVersion); - } - dir_shori ("copy", $backupDir."/themes/".$theme, "./themes/".$theme); - } - } - } - closedir($handle); -} -} - -# /php/ACMS/User を戻す -rename ("./php/ACMS/User","./php/ACMS/User_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/ACMS/User", "./php/ACMS/User"); - -# php/AAPP を戻す -rename ("./php/AAPP", "./php/AAPP_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/AAPP", "./php/AAPP"); - -# /private/config.system.yaml を戻す -rename ("./private/config.system.yaml", "./private/config.system_".$ablogcmsVersion.".yaml"); -copy ($backupDir."/private/config.system.yaml", "./private/config.system.yaml"); - -# /extension を戻す -if (is_dir($backupDir."/extension")) { - rename ("./extension","./extension_".$ablogcmsVersion); - dir_shori ("copy", $backupDir."/extension", "./extension"); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- -rename("./private/htaccess.txt", './private/.htaccess'); -rename("./themes/htaccess.txt", './themes/.htaccess'); -rename("./cache/htaccess.txt", './cache/.htaccess'); - -// -------------------------- -// php.ini があった時の処理 -// -------------------------- - -if ( is_file( "./php.ini" )) { - copy("./php.ini", "./setup/php.ini"); -} - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($phpName); - -# プログラム以外のディレクトリを削除 -if ( is_file( "./index.php" )) { - dir_shori("delete", $zipAfterDirName); -} else { - echo "update error!"; - exit; -} - -unlink($lockFile); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.10.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} \ No newline at end of file diff --git a/210x/xampp/readme.txt b/210x/xampp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/xampp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/xampp/setup.php b/210x/xampp/setup.php deleted file mode 100755 index e91b836..0000000 --- a/210x/xampp/setup.php +++ /dev/null @@ -1,366 +0,0 @@ - - - - -a-blog cms インストーラー (Windows XAMPP版) - - -open($zipFile); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'a-blog cms unZip Error ! : '. $zipFile; - exit; -} - -// -------------------------- -// a-blog cms ディレクトリを移動 -// -------------------------- - -# index.php があった時にリネームしておく -if (is_file("./index.php")) { - rename("./index.php", "_index.php"); -} - -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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -# php.ini のパスを設定する -$phpiniDir = explode("\htdocs",$installPath); -$iniFile = $phpiniDir[0]."\php\php.ini"; - -# 追記する設定内容 -$iniData = sprintf("\r\n\r\ndate.timezone = 'Asia/Tokyo'\r\n\r\nzend_extension = \"%s\ioncube\ioncube_loader_win_%d.%d.dll\"",$installPath,$versionArray[0],$versionArray[1]); - -$file = file_get_contents($iniFile); - -if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - -} else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -if ( is_file($installPath."/htaccess.txt") ) { - rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("XAMPPを再起動して %s にアクセスしてください。

',$jump,$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; -} - -function download_version_check () { - - // Version 2.10.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} - - -?> - - diff --git a/210x/xserver/readme.txt b/210x/xserver/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/xserver/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/xserver/setup.php b/210x/xserver/setup.php deleted file mode 100755 index f9415ee..0000000 --- a/210x/xserver/setup.php +++ /dev/null @@ -1,358 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFile = php_ini_loaded_file(); - -if (preg_match("/xserver_php/i", $iniFile)) { - # 既存の php.ini に ioncube の設定があるかをチェック - $file = file_get_contents($iniFile); - if (preg_match("/ioncube_loader/i", $file)) { - #設定済み - } else { - - $pattern = '/\[Zend Optimizer\]/'; - $ioncube = sprintf("zend_extension = \"%s/ioncube/ioncube_loader_lin_%s.so\"",$installPath,$version); - $replacement = '[Zend Optimizer]'."\n".$ioncube; - $file = preg_replace($pattern, $replacement, $file); - file_put_contents($iniFile, $file); - } - -} else { - - if (preg_match("/public_html/i", $iniFile)) { - # 既に php.ini が存在しているのでバックアップ。 - rename("./php.ini", './php.ini_backup_'.date("YmdHis")); - } - # php.ini を新規作成 - - $iniFileName = "php.ini"; - $iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_lin_5.%d.so\"",$installPath,$versionArray[1]); - file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - - # setupディレクトリにも php.ini が必要な時のために - copy($installPath."/php.ini", $installPath."/setup/php.ini"); -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -$moto_htaccessFile = ".htaccess"; - -if (is_file($moto_htaccessFile)) { - - $htaccessData = file_get_contents($moto_htaccessFile); - $cms_htaccessData = file_get_contents("htaccess.txt"); - - $file = fopen( "./.htaccess", "w+" ); - fwrite( $file, $htaccessData ); - fwrite( $file, "\n\n".$cms_htaccessData ); - fclose( $file ); - -} else { - 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'); - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($zipFileIoncube); -unlink($phpName); - -# index.html があった時にリネームしておく -if (is_file("./index.html")) { - rename("./index.html", "_index.html"); -} - -unlink($installPath."/ioncube/loader-wizard.php"); - -# プログラム以外のディレクトリを削除 -dir_shori("delete", $zipAfterDirName); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -if (preg_match("/public_html/i", $iniFile)) { - $jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - header("Location: " . $jump); -} else { - -?> - - - - -a-blog cms インストーラー (XSERVER版) - - -%s にアクセスしてエラーが出る場合には、
設定した php.ini の設定が有効になっていません。

',$jump,$jump); - -?> -

コントロールパネルの「php.ini設定のphp.ini直接編集」にアクセスし何も変更せずに保存するか、
しばらく時間をおいてアクセスしてみてください。
設定した php.ini が有効になりインストーラーが起動します。

- - -(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} - diff --git a/210x/zenlogic/readme.txt b/210x/zenlogic/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/210x/zenlogic/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/210x/zenlogic/setup.php b/210x/zenlogic/setup.php deleted file mode 100755 index dbcd3fc..0000000 --- a/210x/zenlogic/setup.php +++ /dev/null @@ -1,243 +0,0 @@ -= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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."/private/htaccess.txt", $installPath.'/private/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.10.".$matches[2]; - } else { - return; - } - -} diff --git a/211x/cpi/readme.txt b/211x/cpi/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/cpi/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/cpi/setup.php b/211x/cpi/setup.php deleted file mode 100755 index 643892a..0000000 --- a/211x/cpi/setup.php +++ /dev/null @@ -1,576 +0,0 @@ -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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$ioncubePhpVersion); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - - - -// -------------------------- -// .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'); - -$htaccess = file_get_contents($installPath."/.htaccess"); - -$new = sprintf(" -deny from all - -Options +SymLinksIfOwnerMatch -AddHandler x-httpd-php%s .php\n\n",$phpVersion); - -$fp = fopen($installPath."/.htaccess",'w'); -fwrite($fp,$new.$htaccess); -fclose($fp); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -if ($mysql_version == "5.6") { - $dbHost .= ":3307"; -} - -$data = sprintf("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -header("Location: " . $jump); - -// -------------------------- -// ディレクトリを削除する function -// -------------------------- - -function rrmdir($dir) { - if (is_dir($dir)) { - $objects = scandir($dir); - foreach ($objects as $object) { - if ($object != "." && $object != "..") { - if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); - } - } - reset($objects); - rmdir($dir); - } -} - -// -------------------------- -// ディレクトリを操作 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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} \ No newline at end of file diff --git a/211x/heteml/readme.txt b/211x/heteml/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/heteml/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/heteml/setup.php b/211x/heteml/setup.php deleted file mode 100755 index 2597533..0000000 --- a/211x/heteml/setup.php +++ /dev/null @@ -1,384 +0,0 @@ -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 の設定 -// -------------------------- - -if (is_file($installPath."/.htaccess")) { - # .htaccess があった場合にはバックアップ - rename($installPath."/.htaccess", $installPath.'/.htaccess_backup'.date("YmdHis")); -} - -rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); - -if ($htaccessPlus != "") { - $htaccess = file_get_contents($installPath.'/.htaccess'); - $htaccess = $htaccessPlus . "\n\n" . $htaccess; - file_put_contents($installPath.'/.htaccess', $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("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} diff --git a/211x/lolipop/readme.txt b/211x/lolipop/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/lolipop/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/lolipop/setup.php b/211x/lolipop/setup.php deleted file mode 100755 index 711c685..0000000 --- a/211x/lolipop/setup.php +++ /dev/null @@ -1,339 +0,0 @@ - - - - -a-blog cms インストーラー (ロリポップ版) - - -最新版の a-blog cms のバージョンを取得できませんでした。

'; - exit; - } -} - - -// -------------------------- - -# ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_php5.3.zip",$ablogcmsVersion,$ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_php5.6.zip",$ablogcmsVersion,$ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_php7.1.zip",$ablogcmsVersion,$ablogcmsVersion); - -# ダウンロード後のZipファイル名 -$zipFile = "./acms_install.zip"; - -# 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_php5.3",$ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_php5.6",$ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_php7.1",$ablogcmsVersion); - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -$installPath = realpath('.'); - -$phpName = basename($_SERVER['PHP_SELF']); - -// -------------------------- -// 動作チェック -// -------------------------- - -if (is_file("./license.php")) { - echo "Installation error. Please use the updated version."; - exit; -} - -// -------------------------- -// バージョンのチェック -// -------------------------- - -$versionArray = explode(".", phpversion()); -$version = $versionArray[0].".".$versionArray[1]; - -if ($versionArray[0] == 7) { - if ($versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; - } else { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; - } -} elseif ($versionArray[0] == 5 && $versionArray[1] == 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - echo "Please change the version of PHP to CGI version 5.6."; - exit; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} - -?> - - \ No newline at end of file diff --git a/211x/mamp/readme.txt b/211x/mamp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/mamp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/mamp/setup.php b/211x/mamp/setup.php deleted file mode 100755 index 08faecf..0000000 --- a/211x/mamp/setup.php +++ /dev/null @@ -1,430 +0,0 @@ - - - - -a-blog cms インストーラー (MAMP版) - - - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -# ioncube Loader ダウンロード元 URL -$downloadIoncube = "http://downloads.ioncube.com/loader_downloads/ioncube_loaders_mac_x86-64.zip"; - -# ioncube Loader ダウンロード後のZipファイル名 -$zipFileIoncube ="ioncube.zip"; - -$installPath = realpath('.'); - -$phpName = basename($_SERVER['PHP_SELF']); - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -$ablogcmsVersionNum = str_replace(".", "", $ablogcmsVersion); - -$mampRestart = ""; - -// -------------------------- -// データベースの設定 -// -------------------------- - -$dbHost = 'localhost'; -$dbName = 'DBacms_'.$ablogcmsVersionNum."_".date(mdHi); -$dbCreate = 'checked'; -$dbUser = 'root'; -$dbPass = 'root'; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube Loader チェック -// -------------------------- - -$useIonCubeLoader = sprintf("ioncube_loader_mac_%d.%d.so",$versionArray[0],$versionArray[1]); - -if (!is_file(PHP_EXTENSION_DIR."/".$useIonCubeLoader)) { - - - // -------------------------- - // ioncube ファイルをダウンロード - // -------------------------- - - $fp = fopen($downloadIoncube, "r"); - if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); - } else { - echo 'ioncube loader download Error ! : '.$download; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを解凍 - // -------------------------- - - $zip = new ZipArchive(); - $res = $zip->open($zipFileIoncube); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを移動 - // -------------------------- - - rename("./ioncube/".$useIonCubeLoader, PHP_EXTENSION_DIR."/".$useIonCubeLoader); - - // -------------------------- - // php.ini の設定 - // -------------------------- - - # MAMP の php.ini のパスを設定する - $iniFile = "/Applications/MAMP/bin/php/php".phpversion()."/conf/php.ini"; - - # 追記する設定内容 - $iniData = sprintf("\n\ndate.timezone = 'Asia/Tokyo'\n\nzend_extension = \"%s/ioncube_loader_mac_%d.%d.so\"",PHP_EXTENSION_DIR ,$versionArray[0],$versionArray[1]); - - $file = file_get_contents($iniFile); - - if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - - } else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); - } - - $mampRestart = "MAMPを再起動して "; - -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -rename("./htaccess.txt", './.htaccess'); -#rename("./archives/htaccess.txt", './archives/.htaccess'); -#rename("./archives_rev/htaccess.txt", './archives_rev/.htaccess'); -#rename("./private/htaccess.txt", './private/.htaccess'); -#rename("./media/htaccess.txt", './media/.htaccess'); -#rename("./theme/htaccess.txt", './theme/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -echo sprintf('

a-blog cms Ver %s ( php %s ) をインストールしました。

',$ablogcmsVersion,$version); - -$jump = "http://".$_SERVER['HTTP_HOST'].str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -echo sprintf('

%s%s にアクセスしてください。

',$mampRestart, $jump, $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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/211x/onamae/readme.txt b/211x/onamae/readme.txt deleted file mode 100755 index d95a118..0000000 --- a/211x/onamae/readme.txt +++ /dev/null @@ -1,31 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI / SV-Basic・ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ / ヘテムル・ロリポップ -* お名前ドットコム RSプラン - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/onamae/setup.php b/211x/onamae/setup.php deleted file mode 100755 index d0413cf..0000000 --- a/211x/onamae/setup.php +++ /dev/null @@ -1,400 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFile = php_ini_loaded_file(); - - -# php.ini を新規作成 - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_lin_%s.so\"",$installPath,$version); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -$moto_htaccessFile = ".htaccess"; - -if (is_file($moto_htaccessFile)) { - - $htaccessData = file_get_contents($moto_htaccessFile); - $cms_htaccessData = file_get_contents("htaccess.txt"); - - $file = fopen( "./.htaccess", "w+" ); - fwrite( $file, $htaccessData ); - fwrite( $file, "\n\n".$cms_htaccessData ); - fclose( $file ); - -} else { - 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("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - - -?> - - - - -a-blog cms インストーラー (お名前.com版) - - -%s にアクセスしてエラーが出る場合には、
設定した php.ini の設定が有効になっていません。

',$jump,$jump); - -?> -

コントロールパネルの「高度な設定PHP の php.ini編集」から(内容を編集)ボタンをクリックし、
「上記の注意事項を確認しました」のチェックをクリックして(編集する)ボタンをクリックしてください。

設定した php.ini が有効になりインストーラーが起動します。

- - -(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} - diff --git a/211x/sakura/readme.txt b/211x/sakura/readme.txt deleted file mode 100755 index a37d7a2..0000000 --- a/211x/sakura/readme.txt +++ /dev/null @@ -1,29 +0,0 @@ -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/sakura/setup.php b/211x/sakura/setup.php deleted file mode 100755 index a37af0b..0000000 --- a/211x/sakura/setup.php +++ /dev/null @@ -1,397 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] == 5) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[0] == 5 && $versionArray[1] == 4) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[1] == 3) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} else { - echo "php version check error!"; - exit; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$version); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - -// -------------------------- -// .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'); - -# RewriteBase を調整 -if (!preg_match("/www$/", $installPath)) { - - if ($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'] != $_SERVER['SCRIPT_FILENAME']) { - - $installDir = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - $htaccessFile = $installPath."/.htaccess"; - $data = file_get_contents($htaccessFile); - $data = str_replace("# RewriteBase /", "RewriteBase ".$installDir, $data); - file_put_contents($htaccessFile, $data); - } -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} diff --git a/211x/update/readme.txt b/211x/update/readme.txt deleted file mode 100755 index 7abc64a..0000000 --- a/211x/update/readme.txt +++ /dev/null @@ -1,32 +0,0 @@ - -# 簡単アップデートについて - -「簡単アップデート」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのアップデートが可能です。 - -2.8.x にすることで、今後は管理ページから可能です。 2.7.x までの環境でご利用ください。 - - -## 利用できるサーバー - -* どのような環境でも利用可能です。 - - -## 設定方法 - -以下のように設定が空であれば、バージョンを自動で取得します。 - -$ablogcmsVersion = ""; - -利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) -systemはアップデート対象になりますので指定しないでください。 - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -## 利用方法 - -上記の設定を行った後に、サーバーにアップロードして、ブラウザ上からアクセスしてください。 - -これまでのファイルは backup_yyyymmddhhmmss ディレクトリに移動してバックアップしておいてくれます。 - - diff --git a/211x/xampp/readme.txt b/211x/xampp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/xampp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/xampp/setup.php b/211x/xampp/setup.php deleted file mode 100755 index 6f447e0..0000000 --- a/211x/xampp/setup.php +++ /dev/null @@ -1,438 +0,0 @@ - - - - -a-blog cms インストーラー (Windows XAMPP・MAMP両対応版) - - -open($zipFile); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'a-blog cms unZip Error ! : '. $zipFile; - exit; -} - -// -------------------------- -// a-blog cms ディレクトリを移動 -// -------------------------- - -# index.php があった時にリネームしておく -if (is_file("./index.php")) { - rename("./index.php", "_index.php"); -} - -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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$phpiniDir = explode("\htdocs",$installPath); -if (preg_match("/MAMP/i", $installPath)) { - $iniFile = $phpiniDir[0]."\conf\php".phpversion()."\php.ini"; - $dbPass = 'root'; - $systemName = "MAMP"; -} else { - $iniFile = $phpiniDir[0]."\php\php.ini"; - $systemName = "XAMPP"; -} - -# 追記する設定内容 -$iniData = sprintf("\r\n\r\ndate.timezone = 'Asia/Tokyo'\r\n\r\nzend_extension = \"%s\ioncube\ioncube_loader_win_%d.%d.dll\"",$installPath,$versionArray[0],$versionArray[1]); - -$file = file_get_contents($iniFile); - -if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - -} else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -if ( is_file($installPath."/htaccess.txt") ) { - rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$jump = "http://".$_SERVER['HTTP_HOST'].str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -echo sprintf('

%sを再起動して %s にアクセスしてください。

',$systemName,$jump,$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; -} - -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/211x/xserver/readme.txt b/211x/xserver/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/xserver/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/xserver/setup.php b/211x/xserver/setup.php deleted file mode 100755 index fdcf9e1..0000000 --- a/211x/xserver/setup.php +++ /dev/null @@ -1,435 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFile = php_ini_loaded_file(); - -if (preg_match("/xserver_php/i", $iniFile)) { - # 既存の php.ini に ioncube の設定があるかをチェック - $file = file_get_contents($iniFile); - if (preg_match("/ioncube_loader/i", $file)) { - #設定済み - } else { - - $pattern = '/\[Zend Optimizer\]/'; - $ioncube = sprintf("zend_extension = \"%s/ioncube/ioncube_loader_lin_%s.so\"",$installPath,$version); - $replacement = '[Zend Optimizer]'."\n".$ioncube; - $file = preg_replace($pattern, $replacement, $file); - file_put_contents($iniFile, $file); - } - -} else { - - if (preg_match("/public_html/i", $iniFile)) { - # 既に php.ini が存在しているのでバックアップ。 - rename("./php.ini", './php.ini_backup_'.date("YmdHis")); - } - # php.ini を新規作成 - - $iniFileName = "php.ini"; - $iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_lin_5.%d.so\"",$installPath,$versionArray[1]); - file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - - # setupディレクトリにも php.ini が必要な時のために - copy($installPath."/php.ini", $installPath."/setup/php.ini"); -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -$moto_htaccessFile = ".htaccess"; - -if (is_file($moto_htaccessFile)) { - - $htaccessData = file_get_contents($moto_htaccessFile); - $cms_htaccessData = file_get_contents("htaccess.txt"); - - $file = fopen( "./.htaccess", "w+" ); - fwrite( $file, $htaccessData ); - fwrite( $file, "\n\n".$cms_htaccessData ); - fclose( $file ); - -} else { - 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("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -if (preg_match("/public_html/i", $iniFile)) { - $jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - header("Location: " . $jump); -} else { - -?> - - - - -a-blog cms インストーラー (XSERVER版) - - -%s にアクセスしてエラーが出る場合には、
設定した php.ini の設定が有効になっていません。

',$jump,$jump); - -?> -

コントロールパネルの「php.ini設定のphp.ini直接編集」にアクセスし何も変更せずに保存するか、
しばらく時間をおいてアクセスしてみてください。
設定した php.ini が有効になりインストーラーが起動します。

- - -(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} - diff --git a/211x/zenlogic/readme.txt b/211x/zenlogic/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/211x/zenlogic/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/211x/zenlogic/setup.php b/211x/zenlogic/setup.php deleted file mode 100755 index 7b53b91..0000000 --- a/211x/zenlogic/setup.php +++ /dev/null @@ -1,307 +0,0 @@ - 0 && $versionArray[1] < 4) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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."/private/htaccess.txt", $installPath.'/private/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("open($zipThemeFile); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'theme unZip Error ! : '. $zipThemeFile; - exit; - } - - dir_shori("move", "./".$theme_name."/bin/".$theme_name, "./setup/bin/".$theme_name); - dir_shori("move", "./".$theme_name."/themes/".$theme_name, "./themes/".$theme_name); - - rename("./".$theme_name."/tpl/install.html", "./setup/tpl/install.html"); - rename("./".$theme_name."/img/".$theme_name.".jpg", "./setup/img/".$theme_name.".jpg"); - - dir_shori ("delete", $theme_name); - unlink($zipThemeFile); - -} - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.11x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; - } else { - return; - } - -} diff --git a/28x/cpi/readme.txt b/28x/cpi/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/cpi/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/cpi/setup.php b/28x/cpi/setup.php deleted file mode 100755 index 0843079..0000000 --- a/28x/cpi/setup.php +++ /dev/null @@ -1,473 +0,0 @@ -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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$ioncubePhpVersion); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - - - -// -------------------------- -// .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'); - -$htaccess = file_get_contents($installPath."/.htaccess"); - -$new = sprintf(" -deny from all - -Options +SymLinksIfOwnerMatch -AddHandler x-httpd-php%s .php\n\n",$phpVersion); - -$fp = fopen($installPath."/.htaccess",'w'); -fwrite($fp,$new.$htaccess); -fclose($fp); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -if ($mysql_version == "5.6") { - $dbHost .= ":3307"; -} - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} diff --git a/28x/heteml/readme.txt b/28x/heteml/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/heteml/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/heteml/setup.php b/28x/heteml/setup.php deleted file mode 100755 index 3344bfc..0000000 --- a/28x/heteml/setup.php +++ /dev/null @@ -1,297 +0,0 @@ -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 の設定 -// -------------------------- - -if (is_file($installPath."/.htaccess")) { - # .htaccess があった場合にはバックアップ - rename($installPath."/.htaccess", $installPath.'/.htaccess_backup'.date("YmdHis")); -} - -rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); - -if ($htaccessPlus != "") { - $htaccess = file_get_contents($installPath.'/.htaccess'); - $htaccess = $htaccessPlus . "\n\n" . $htaccess; - file_put_contents($installPath.'/.htaccess', $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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} diff --git a/28x/lolipop/readme.txt b/28x/lolipop/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/lolipop/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/lolipop/setup.php b/28x/lolipop/setup.php deleted file mode 100755 index d04a29b..0000000 --- a/28x/lolipop/setup.php +++ /dev/null @@ -1,259 +0,0 @@ -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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} diff --git a/28x/mamp/readme.txt b/28x/mamp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/mamp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/mamp/setup.php b/28x/mamp/setup.php deleted file mode 100755 index 4a739b4..0000000 --- a/28x/mamp/setup.php +++ /dev/null @@ -1,363 +0,0 @@ - - - - -a-blog cms インストーラー (MAMP版) - - - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -# ioncube Loader ダウンロード元 URL -$downloadIoncube = "http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_dar_x86-64.zip"; - -# ioncube Loader ダウンロード後のZipファイル名 -$zipFileIoncube ="ioncube.zip"; - -$installPath = realpath('.'); - -$phpName = basename($_SERVER['PHP_SELF']); - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -$ablogcmsVersionNum = str_replace(".", "", $ablogcmsVersion); - -$mampRestart = ""; - -// -------------------------- -// データベースの設定 -// -------------------------- - -$dbHost = 'localhost'; -$dbName = 'DBacms_'.$ablogcmsVersionNum."_".date(mdHi); -$dbCreate = 'checked'; -$dbUser = 'root'; -$dbPass = 'root'; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube Loader チェック -// -------------------------- - -$useIonCubeLoader = sprintf("ioncube_loader_dar_%d.%d.so",$versionArray[0],$versionArray[1]); - -if (!is_file(PHP_EXTENSION_DIR."/".$useIonCubeLoader)) { - - - // -------------------------- - // ioncube ファイルをダウンロード - // -------------------------- - - $fp = fopen($downloadIoncube, "r"); - if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); - } else { - echo 'ioncube loader download Error ! : '.$download; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを解凍 - // -------------------------- - - $zip = new ZipArchive(); - $res = $zip->open($zipFileIoncube); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを移動 - // -------------------------- - - rename("./ioncube/".$useIonCubeLoader, PHP_EXTENSION_DIR."/".$useIonCubeLoader); - - // -------------------------- - // php.ini の設定 - // -------------------------- - - # MAMP の php.ini のパスを設定する - $iniFile = "/Applications/MAMP/bin/php/php".phpversion()."/conf/php.ini"; - - # 追記する設定内容 - $iniData = sprintf("\n\ndate.timezone = 'Asia/Tokyo'\n\nzend_extension = \"%s/ioncube_loader_dar_%d.%d.so\"",PHP_EXTENSION_DIR ,$versionArray[0],$versionArray[1]); - - $file = file_get_contents($iniFile); - - if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - - } else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); - } - - $mampRestart = "MAMPを再起動して "; - -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -rename("./htaccess.txt", './.htaccess'); -#rename("./archives/htaccess.txt", './archives/.htaccess'); -#rename("./archives_rev/htaccess.txt", './archives_rev/.htaccess'); -#rename("./private/htaccess.txt", './private/.htaccess'); -#rename("./media/htaccess.txt", './media/.htaccess'); -#rename("./theme/htaccess.txt", './theme/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("a-blog cms Ver %s ( php %s ) をインストールしました。

',$ablogcmsVersion,$version); - -$jump = "http://".$_SERVER['HTTP_HOST'].str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -echo sprintf('

%s%s にアクセスしてください。

',$mampRestart, $jump, $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; -} - -function download_version_check () { - - // Version 2.8.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/28x/sakura/readme.txt b/28x/sakura/readme.txt deleted file mode 100755 index a37d7a2..0000000 --- a/28x/sakura/readme.txt +++ /dev/null @@ -1,29 +0,0 @@ -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/sakura/setup.php b/28x/sakura/setup.php deleted file mode 100755 index 091fb0d..0000000 --- a/28x/sakura/setup.php +++ /dev/null @@ -1,336 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] == 5) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[0] == 5 && $versionArray[1] == 4) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[1] == 3) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} else { - echo "php version check error!"; - exit; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$version); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - -// -------------------------- -// .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'); - -# RewriteBase を調整 -if (!preg_match("/www$/", $installPath)) { - - if ($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'] != $_SERVER['SCRIPT_FILENAME']) { - - $installDir = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - $htaccessFile = $installPath."/.htaccess"; - $data = file_get_contents($htaccessFile); - $data = str_replace("# RewriteBase /", "RewriteBase ".$installDir, $data); - file_put_contents($htaccessFile, $data); - } -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} diff --git a/28x/update/readme.txt b/28x/update/readme.txt deleted file mode 100755 index 332a34a..0000000 --- a/28x/update/readme.txt +++ /dev/null @@ -1,33 +0,0 @@ - -# 簡単アップデートについて - -「簡単アップデート」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのアップデートが可能です。 - -2.8.x にすることで、今後は管理ページから可能です。 2.7.x までの環境でご利用ください。 - - -## 利用できるサーバー - -* どのような環境でも利用可能です。 - - -## 設定方法 - -以下のように設定が空であれば、バージョンを自動で取得します。 - -$ablogcmsVersion = ""; - -利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) -systemはアップデート対象になりますので指定しないでください。 - - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -## 利用方法 - -上記の設定を行った後に、サーバーにアップロードして、ブラウザ上からアクセスしてください。 - -これまでのファイルは backup_yyyymmddhhmmss ディレクトリに移動してバックアップしておいてくれます。 - - diff --git a/28x/update/update.php b/28x/update/update.php deleted file mode 100755 index c54daa6..0000000 --- a/28x/update/update.php +++ /dev/null @@ -1,312 +0,0 @@ - 2.8.x update -// -// -------------------------- - -# 今後は、このアップデートを利用することなく管理ページから -# 可能になります。 - -$ablogcmsVersion = ""; #サイトからバージョンを自動チェック - -# ERROR になる場合や 2.8系のバージョンを -# 指定したい場合には、バージョンを設定してください。 - -#$ablogcmsVersion = "2.8.0"; - -// -------------------------- - -# 利用しているテーマを指定します。 -# 複数あれば | で区切って指定してください。 -# 継承しているテーマは全て含まれます。 -# systemはアップデート対象になりますので指定しないでください。 - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -// -------------------------- -// 二重実行防止処理 -// -------------------------- - -$lockFile = realpath('.'). "/update.lock"; - -if (is_file($lockFile)) { - echo "lockFile:".$lockFile; - exit; -} else { - touch($lockFile); -} - -// -------------------------- -// 現在の a-blog cms のバージョンをチェック -// -------------------------- - -if (!$ablogcmsVersion) { - $check = download_version_check (); - if ($check) { - $ablogcmsVersion = $check; - } else { - echo "web site version check error."; - exit; - } -} - -// -------------------------- - -# 実行時刻 -$ymdhis = date("YmdHis"); - -# ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip",$ablogcmsVersion,$ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip",$ablogcmsVersion,$ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip",$ablogcmsVersion,$ablogcmsVersion); - -# ダウンロード後のZipファイル名 -$zipFile = sprintf("./acms_%s.zip",$ymdhis); - -# 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3",$ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6",$ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1",$ablogcmsVersion); - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -// -------------------------- -// バージョンチェック -// -------------------------- - -$versionArray = explode(".", phpversion()); -$version = $versionArray[0].".".$versionArray[1]; - - -if ($versionArray[0]==7 && $versionArray[1] > 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$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; -} - -// -------------------------- -// バックアップ -// -------------------------- - -$backupDir = "backup_". $ymdhis; - -# バックアップディレクトリを作成 -mkdir($backupDir); - -# ファイルを移動 -if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); -if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); -if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); -rename("./index.php", $backupDir."/index.php"); - -# ディレクトリを移動 - -dir_shori("move", "./js", $backupDir."/js"); -dir_shori("move", "./lang", $backupDir."/lang"); -dir_shori("move", "./php", $backupDir."/php"); -dir_shori("move", "./private", $backupDir."/private"); -dir_shori("move", "./themes", $backupDir."/themes"); - -if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir."/cache"); -if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir."/extension"); - - -// -------------------------- -// update版 ファイル&ディレクトリを移動 -// -------------------------- - -dir_shori("move", $ablogcmsDir, $installPath); - -# 運用中のものを利用するので新しいファイルは削除 -unlink($installPath ."/htaccess.txt"); - -// -------------------------- -// カスタマイズ部分を戻す -// -------------------------- - -# themes を戻す -if (isset($useThemes)) { -if ($handle = opendir($backupDir."/themes")) { - while(false !== ($theme = readdir($handle))) { - if ($theme != "." && $theme != "..") { - if (preg_match("/".$useThemes."/", $theme)) { - if (is_dir("./themes/".$theme)) { - rename ("./themes/".$theme, "./themes/".$theme."_".$ablogcmsVersion); - } - dir_shori ("copy", $backupDir."/themes/".$theme, "./themes/".$theme); - } - } - } - closedir($handle); -} -} - -# /php/ACMS/User を戻す -rename ("./php/ACMS/User","./php/ACMS/User_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/ACMS/User", "./php/ACMS/User"); - -# php/AAPP を戻す -rename ("./php/AAPP", "./php/AAPP_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/AAPP", "./php/AAPP"); - -# /private/config.system.yaml を戻す -rename ("./private/config.system.yaml", "./private/config.system_".$ablogcmsVersion.".yaml"); -copy ($backupDir."/private/config.system.yaml", "./private/config.system.yaml"); - -# /extension を戻す -if (is_dir($backupDir."/extension")) { - rename ("./extension","./extension_".$ablogcmsVersion); - dir_shori ("copy", $backupDir."/extension", "./extension"); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- -rename("./private/htaccess.txt", './private/.htaccess'); -rename("./themes/htaccess.txt", './themes/.htaccess'); -rename("./cache/htaccess.txt", './cache/.htaccess'); - -// -------------------------- -// php.ini があった時の処理 -// -------------------------- - -if ( is_file( "./php.ini" )) { - copy("./php.ini", "./setup/php.ini"); -} - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($phpName); - -# プログラム以外のディレクトリを削除 -if ( is_file( "./index.php" )) { - dir_shori("delete", $zipAfterDirName); -} else { - echo "update error!"; - exit; -} - -unlink($lockFile); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.8.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} \ No newline at end of file diff --git a/28x/xampp/readme.txt b/28x/xampp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/xampp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/xampp/setup.php b/28x/xampp/setup.php deleted file mode 100755 index dbcf309..0000000 --- a/28x/xampp/setup.php +++ /dev/null @@ -1,336 +0,0 @@ - - - - -a-blog cms インストーラー (Windows XAMPP版) - - - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -if (PHP_INT_SIZE == 4) { - $downloadIoncube = $downloadIoncube32; -} else { - $downloadIoncube = $downloadIoncube64; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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 ディレクトリを移動 -// -------------------------- - -# index.php があった時にリネームしておく -if (is_file("./index.php")) { - rename("./index.php", "_index.php"); -} - -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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -# php.ini のパスを設定する -$phpiniDir = explode("\htdocs",$installPath); -$iniFile = $phpiniDir[0]."\php\php.ini"; - -# 追記する設定内容 -$iniData = sprintf("\r\n\r\ndate.timezone = 'Asia/Tokyo'\r\n\r\nzend_extension = \"%s\ioncube\ioncube_loader_win_%d.%d.dll\"",$installPath,$versionArray[0],$versionArray[1]); - -$file = file_get_contents($iniFile); - -if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - -} else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -if ( is_file($installPath."/htaccess.txt") ) { - rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("XAMPPを再起動して %s にアクセスしてください。

',$jump,$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; -} - -function download_version_check () { - - // Version 2.8.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/28x/xserver/readme.txt b/28x/xserver/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/xserver/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/xserver/setup.php b/28x/xserver/setup.php deleted file mode 100755 index 643f26c..0000000 --- a/28x/xserver/setup.php +++ /dev/null @@ -1,358 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFile = php_ini_loaded_file(); - -if (preg_match("/xserver_php/i", $iniFile)) { - # 既存の php.ini に ioncube の設定があるかをチェック - $file = file_get_contents($iniFile); - if (preg_match("/ioncube_loader/i", $file)) { - #設定済み - } else { - - $pattern = '/\[Zend Optimizer\]/'; - $ioncube = sprintf("zend_extension = \"%s/ioncube/ioncube_loader_lin_%s.so\"",$installPath,$version); - $replacement = '[Zend Optimizer]'."\n".$ioncube; - $file = preg_replace($pattern, $replacement, $file); - file_put_contents($iniFile, $file); - } - -} else { - - if (preg_match("/public_html/i", $iniFile)) { - # 既に php.ini が存在しているのでバックアップ。 - rename("./php.ini", './php.ini_backup_'.date("YmdHis")); - } - # php.ini を新規作成 - - $iniFileName = "php.ini"; - $iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_lin_5.%d.so\"",$installPath,$versionArray[1]); - file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - - # setupディレクトリにも php.ini が必要な時のために - copy($installPath."/php.ini", $installPath."/setup/php.ini"); -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -$moto_htaccessFile = ".htaccess"; - -if (is_file($moto_htaccessFile)) { - - $htaccessData = file_get_contents($moto_htaccessFile); - $cms_htaccessData = file_get_contents("htaccess.txt"); - - $file = fopen( "./.htaccess", "w+" ); - fwrite( $file, $htaccessData ); - fwrite( $file, "\n\n".$cms_htaccessData ); - fclose( $file ); - -} else { - 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'); - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($zipFileIoncube); -unlink($phpName); - -# index.html があった時にリネームしておく -if (is_file("./index.html")) { - rename("./index.html", "_index.html"); -} - -unlink($installPath."/ioncube/loader-wizard.php"); - -# プログラム以外のディレクトリを削除 -dir_shori("delete", $zipAfterDirName); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -if (preg_match("/public_html/i", $iniFile)) { - $jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - header("Location: " . $jump); -} else { - -?> - - - - -a-blog cms インストーラー (XSERVER版) - - -%s にアクセスしてエラーが出る場合には、
設定した php.ini の設定が有効になっていません。

',$jump,$jump); - -?> -

コントロールパネルの「php.ini設定のphp.ini直接編集」にアクセスし何も変更せずに保存するか、
しばらく時間をおいてアクセスしてみてください。
設定した php.ini が有効になりインストーラーが起動します。

- - -(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} - diff --git a/28x/zenlogic/readme.txt b/28x/zenlogic/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/28x/zenlogic/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/28x/zenlogic/setup.php b/28x/zenlogic/setup.php deleted file mode 100755 index c9c93a2..0000000 --- a/28x/zenlogic/setup.php +++ /dev/null @@ -1,243 +0,0 @@ -= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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."/private/htaccess.txt", $installPath.'/private/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.8.".$matches[2]; - } else { - return; - } - -} diff --git a/29x/cpi/readme.txt b/29x/cpi/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/cpi/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/cpi/setup.php b/29x/cpi/setup.php deleted file mode 100755 index 6a2f2d2..0000000 --- a/29x/cpi/setup.php +++ /dev/null @@ -1,473 +0,0 @@ -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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$ioncubePhpVersion); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - - - -// -------------------------- -// .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'); - -$htaccess = file_get_contents($installPath."/.htaccess"); - -$new = sprintf(" -deny from all - -Options +SymLinksIfOwnerMatch -AddHandler x-httpd-php%s .php\n\n",$phpVersion); - -$fp = fopen($installPath."/.htaccess",'w'); -fwrite($fp,$new.$htaccess); -fclose($fp); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -if ($mysql_version == "5.6") { - $dbHost .= ":3307"; -} - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} diff --git a/29x/heteml/readme.txt b/29x/heteml/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/heteml/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/heteml/setup.php b/29x/heteml/setup.php deleted file mode 100755 index ec57f4c..0000000 --- a/29x/heteml/setup.php +++ /dev/null @@ -1,297 +0,0 @@ -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 の設定 -// -------------------------- - -if (is_file($installPath."/.htaccess")) { - # .htaccess があった場合にはバックアップ - rename($installPath."/.htaccess", $installPath.'/.htaccess_backup'.date("YmdHis")); -} - -rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); - -if ($htaccessPlus != "") { - $htaccess = file_get_contents($installPath.'/.htaccess'); - $htaccess = $htaccessPlus . "\n\n" . $htaccess; - file_put_contents($installPath.'/.htaccess', $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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} diff --git a/29x/lolipop/readme.txt b/29x/lolipop/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/lolipop/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/lolipop/setup.php b/29x/lolipop/setup.php deleted file mode 100755 index 2d6f6db..0000000 --- a/29x/lolipop/setup.php +++ /dev/null @@ -1,259 +0,0 @@ -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("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} diff --git a/29x/mamp/readme.txt b/29x/mamp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/mamp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/mamp/setup.php b/29x/mamp/setup.php deleted file mode 100755 index 2f06fa5..0000000 --- a/29x/mamp/setup.php +++ /dev/null @@ -1,363 +0,0 @@ - - - - -a-blog cms インストーラー (MAMP版) - - - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -# ioncube Loader ダウンロード元 URL -$downloadIoncube = "http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_dar_x86-64.zip"; - -# ioncube Loader ダウンロード後のZipファイル名 -$zipFileIoncube ="ioncube.zip"; - -$installPath = realpath('.'); - -$phpName = basename($_SERVER['PHP_SELF']); - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -$ablogcmsVersionNum = str_replace(".", "", $ablogcmsVersion); - -$mampRestart = ""; - -// -------------------------- -// データベースの設定 -// -------------------------- - -$dbHost = 'localhost'; -$dbName = 'DBacms_'.$ablogcmsVersionNum."_".date(mdHi); -$dbCreate = 'checked'; -$dbUser = 'root'; -$dbPass = 'root'; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube Loader チェック -// -------------------------- - -$useIonCubeLoader = sprintf("ioncube_loader_dar_%d.%d.so",$versionArray[0],$versionArray[1]); - -if (!is_file(PHP_EXTENSION_DIR."/".$useIonCubeLoader)) { - - - // -------------------------- - // ioncube ファイルをダウンロード - // -------------------------- - - $fp = fopen($downloadIoncube, "r"); - if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); - } else { - echo 'ioncube loader download Error ! : '.$download; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを解凍 - // -------------------------- - - $zip = new ZipArchive(); - $res = $zip->open($zipFileIoncube); - - if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - - } else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; - } - - // -------------------------- - // ioncube Loader ファイルを移動 - // -------------------------- - - rename("./ioncube/".$useIonCubeLoader, PHP_EXTENSION_DIR."/".$useIonCubeLoader); - - // -------------------------- - // php.ini の設定 - // -------------------------- - - # MAMP の php.ini のパスを設定する - $iniFile = "/Applications/MAMP/bin/php/php".phpversion()."/conf/php.ini"; - - # 追記する設定内容 - $iniData = sprintf("\n\ndate.timezone = 'Asia/Tokyo'\n\nzend_extension = \"%s/ioncube_loader_dar_%d.%d.so\"",PHP_EXTENSION_DIR ,$versionArray[0],$versionArray[1]); - - $file = file_get_contents($iniFile); - - if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - - } else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); - } - - $mampRestart = "MAMPを再起動して "; - -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -rename("./htaccess.txt", './.htaccess'); -#rename("./archives/htaccess.txt", './archives/.htaccess'); -#rename("./archives_rev/htaccess.txt", './archives_rev/.htaccess'); -#rename("./private/htaccess.txt", './private/.htaccess'); -#rename("./media/htaccess.txt", './media/.htaccess'); -#rename("./theme/htaccess.txt", './theme/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("a-blog cms Ver %s ( php %s ) をインストールしました。

',$ablogcmsVersion,$version); - -$jump = "http://".$_SERVER['HTTP_HOST'].str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -echo sprintf('

%s%s にアクセスしてください。

',$mampRestart, $jump, $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; -} - -function download_version_check () { - - // Version 2.9.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/29x/sakura/readme.txt b/29x/sakura/readme.txt deleted file mode 100755 index a37d7a2..0000000 --- a/29x/sakura/readme.txt +++ /dev/null @@ -1,29 +0,0 @@ -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/sakura/setup.php b/29x/sakura/setup.php deleted file mode 100755 index 5823890..0000000 --- a/29x/sakura/setup.php +++ /dev/null @@ -1,336 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] == 5) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[0] == 5 && $versionArray[1] == 4) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} elseif ($versionArray[1] == 3) { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} else { - echo "php version check error!"; - exit; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFileName = "php.ini"; -$iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_fre_%s.so\"",$installPath,$version); -file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - -# setupディレクトリにも php.ini が必要な時のために -copy($installPath."/php.ini", $installPath."/setup/php.ini"); - -// -------------------------- -// .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'); - -# RewriteBase を調整 -if (!preg_match("/www$/", $installPath)) { - - if ($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'] != $_SERVER['SCRIPT_FILENAME']) { - - $installDir = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - $htaccessFile = $installPath."/.htaccess"; - $data = file_get_contents($htaccessFile); - $data = str_replace("# RewriteBase /", "RewriteBase ".$installDir, $data); - file_put_contents($htaccessFile, $data); - } -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} diff --git a/29x/update/readme.txt b/29x/update/readme.txt deleted file mode 100755 index 7abc64a..0000000 --- a/29x/update/readme.txt +++ /dev/null @@ -1,32 +0,0 @@ - -# 簡単アップデートについて - -「簡単アップデート」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのアップデートが可能です。 - -2.8.x にすることで、今後は管理ページから可能です。 2.7.x までの環境でご利用ください。 - - -## 利用できるサーバー - -* どのような環境でも利用可能です。 - - -## 設定方法 - -以下のように設定が空であれば、バージョンを自動で取得します。 - -$ablogcmsVersion = ""; - -利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) -systemはアップデート対象になりますので指定しないでください。 - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -## 利用方法 - -上記の設定を行った後に、サーバーにアップロードして、ブラウザ上からアクセスしてください。 - -これまでのファイルは backup_yyyymmddhhmmss ディレクトリに移動してバックアップしておいてくれます。 - - diff --git a/29x/update/update.php b/29x/update/update.php deleted file mode 100755 index 3866f9f..0000000 --- a/29x/update/update.php +++ /dev/null @@ -1,312 +0,0 @@ - 2.9.x update -// -// -------------------------- - -# 今後は、このアップデートを利用することなく管理ページから -# 可能になります。 - -$ablogcmsVersion = ""; #サイトからバージョンを自動チェック - -# ERROR になる場合や 2.9系のバージョンを -# 指定したい場合には、バージョンを設定してください。 - -#$ablogcmsVersion = "2.9.0"; - -// -------------------------- - -# 利用しているテーマを指定します。 -# 複数あれば | で区切って指定してください。 -# 継承しているテーマは全て含まれます。 -# systemはアップデート対象になりますので指定しないでください。 - -#$useThemes = "blog2016"; # "site2015|blog2015"; - - -// -------------------------- -// 二重実行防止処理 -// -------------------------- - -$lockFile = realpath('.'). "/update.lock"; - -if (is_file($lockFile)) { - echo "lockFile:".$lockFile; - exit; -} else { - touch($lockFile); -} - -// -------------------------- -// 現在の a-blog cms のバージョンをチェック -// -------------------------- - -if (!$ablogcmsVersion) { - $check = download_version_check (); - if ($check) { - $ablogcmsVersion = $check; - } else { - echo "web site version check error."; - exit; - } -} - -// -------------------------- - -# 実行時刻 -$ymdhis = date("YmdHis"); - -# ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip",$ablogcmsVersion,$ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip",$ablogcmsVersion,$ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip",$ablogcmsVersion,$ablogcmsVersion); - -# ダウンロード後のZipファイル名 -$zipFile = sprintf("./acms_%s.zip",$ymdhis); - -# 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3",$ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6",$ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1",$ablogcmsVersion); - -# 解凍後の a-blog cms のフォルダ名 -$cmsDirName = "ablogcms"; - -// -------------------------- -// バージョンチェック -// -------------------------- - -$versionArray = explode(".", phpversion()); -$version = $versionArray[0].".".$versionArray[1]; - - -if ($versionArray[0]==7 && $versionArray[1] > 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$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; -} - -// -------------------------- -// バックアップ -// -------------------------- - -$backupDir = "backup_". $ymdhis; - -# バックアップディレクトリを作成 -mkdir($backupDir); - -# ファイルを移動 -if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); -if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); -if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); -rename("./index.php", $backupDir."/index.php"); - -# ディレクトリを移動 - -dir_shori("move", "./js", $backupDir."/js"); -dir_shori("move", "./lang", $backupDir."/lang"); -dir_shori("move", "./php", $backupDir."/php"); -dir_shori("move", "./private", $backupDir."/private"); -dir_shori("move", "./themes", $backupDir."/themes"); - -if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir."/cache"); -if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir."/extension"); - - -// -------------------------- -// update版 ファイル&ディレクトリを移動 -// -------------------------- - -dir_shori("move", $ablogcmsDir, $installPath); - -# 運用中のものを利用するので新しいファイルは削除 -unlink($installPath ."/htaccess.txt"); - -// -------------------------- -// カスタマイズ部分を戻す -// -------------------------- - -# themes を戻す -if (isset($useThemes)) { -if ($handle = opendir($backupDir."/themes")) { - while(false !== ($theme = readdir($handle))) { - if ($theme != "." && $theme != "..") { - if (preg_match("/".$useThemes."/", $theme)) { - if (is_dir("./themes/".$theme)) { - rename ("./themes/".$theme, "./themes/".$theme."_".$ablogcmsVersion); - } - dir_shori ("copy", $backupDir."/themes/".$theme, "./themes/".$theme); - } - } - } - closedir($handle); -} -} - -# /php/ACMS/User を戻す -rename ("./php/ACMS/User","./php/ACMS/User_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/ACMS/User", "./php/ACMS/User"); - -# php/AAPP を戻す -rename ("./php/AAPP", "./php/AAPP_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/AAPP", "./php/AAPP"); - -# /private/config.system.yaml を戻す -rename ("./private/config.system.yaml", "./private/config.system_".$ablogcmsVersion.".yaml"); -copy ($backupDir."/private/config.system.yaml", "./private/config.system.yaml"); - -# /extension を戻す -if (is_dir($backupDir."/extension")) { - rename ("./extension","./extension_".$ablogcmsVersion); - dir_shori ("copy", $backupDir."/extension", "./extension"); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- -rename("./private/htaccess.txt", './private/.htaccess'); -rename("./themes/htaccess.txt", './themes/.htaccess'); -rename("./cache/htaccess.txt", './cache/.htaccess'); - -// -------------------------- -// php.ini があった時の処理 -// -------------------------- - -if ( is_file( "./php.ini" )) { - copy("./php.ini", "./setup/php.ini"); -} - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($phpName); - -# プログラム以外のディレクトリを削除 -if ( is_file( "./index.php" )) { - dir_shori("delete", $zipAfterDirName); -} else { - echo "update error!"; - exit; -} - -unlink($lockFile); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -$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; -} - -function download_version_check () { - - // Version 2.9.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} \ No newline at end of file diff --git a/29x/xampp/readme.txt b/29x/xampp/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/xampp/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/xampp/setup.php b/29x/xampp/setup.php deleted file mode 100755 index ba1210a..0000000 --- a/29x/xampp/setup.php +++ /dev/null @@ -1,365 +0,0 @@ - - - - -a-blog cms インストーラー (Windows XAMPP版) - - -open($zipFile); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'a-blog cms unZip Error ! : '. $zipFile; - exit; -} - -// -------------------------- -// a-blog cms ディレクトリを移動 -// -------------------------- - -# index.php があった時にリネームしておく -if (is_file("./index.php")) { - rename("./index.php", "_index.php"); -} - -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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -# php.ini のパスを設定する -$phpiniDir = explode("\htdocs",$installPath); -$iniFile = $phpiniDir[0]."\php\php.ini"; - -# 追記する設定内容 -$iniData = sprintf("\r\n\r\ndate.timezone = 'Asia/Tokyo'\r\n\r\nzend_extension = \"%s\ioncube\ioncube_loader_win_%d.%d.dll\"",$installPath,$versionArray[0],$versionArray[1]); - -$file = file_get_contents($iniFile); - -if (preg_match("/ioncube_loader/i", $file)) { - - # 設定済み - -} else { - $file = fopen( $iniFile, "a+" ); - fwrite( $file, $iniData ); - fclose( $file ); -} - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -if ( is_file($installPath."/htaccess.txt") ) { - rename($installPath."/htaccess.txt", $installPath.'/.htaccess'); -} - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("XAMPPを再起動して %s にアクセスしてください。

',$jump,$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; -} - -function download_version_check () { - - // Version 2.9.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} - - -?> - - \ No newline at end of file diff --git a/29x/xserver/readme.txt b/29x/xserver/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/xserver/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/xserver/setup.php b/29x/xserver/setup.php deleted file mode 100755 index 3323c71..0000000 --- a/29x/xserver/setup.php +++ /dev/null @@ -1,358 +0,0 @@ - 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} - -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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; -} - -// -------------------------- -// ioncube ファイルをダウンロード -// -------------------------- - -$fp = fopen($downloadIoncube, "r"); -if ($fp !== FALSE) { - file_put_contents($zipFileIoncube, ""); - while(!feof($fp)) { - $buffer = fread($fp, 4096); - if ($buffer !== FALSE) { - file_put_contents($zipFileIoncube, $buffer, FILE_APPEND); - } - } - fclose($fp); -} else { - echo 'ioncube loader download Error ! : '.$download; - exit; -} - -// -------------------------- -// ioncube ファイルを解凍 -// -------------------------- - -$zip = new ZipArchive(); -$res = $zip->open($zipFileIoncube); - -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - -} else { - echo 'ioncube loader unZip Error ! : '. $zipFileIoncube; - exit; -} - -// -------------------------- -// php.ini の設定 -// -------------------------- - -$iniFile = php_ini_loaded_file(); - -if (preg_match("/xserver_php/i", $iniFile)) { - # 既存の php.ini に ioncube の設定があるかをチェック - $file = file_get_contents($iniFile); - if (preg_match("/ioncube_loader/i", $file)) { - #設定済み - } else { - - $pattern = '/\[Zend Optimizer\]/'; - $ioncube = sprintf("zend_extension = \"%s/ioncube/ioncube_loader_lin_%s.so\"",$installPath,$version); - $replacement = '[Zend Optimizer]'."\n".$ioncube; - $file = preg_replace($pattern, $replacement, $file); - file_put_contents($iniFile, $file); - } - -} else { - - if (preg_match("/public_html/i", $iniFile)) { - # 既に php.ini が存在しているのでバックアップ。 - rename("./php.ini", './php.ini_backup_'.date("YmdHis")); - } - # php.ini を新規作成 - - $iniFileName = "php.ini"; - $iniData = sprintf("date.timezone = 'Asia/Tokyo'\nzend_extension = \"%s/ioncube/ioncube_loader_lin_5.%d.so\"",$installPath,$versionArray[1]); - file_put_contents($installPath."/".$iniFileName, $iniData, FILE_APPEND | LOCK_EX); - - # setupディレクトリにも php.ini が必要な時のために - copy($installPath."/php.ini", $installPath."/setup/php.ini"); -} - - -// -------------------------- -// .htaccess の設定 -// -------------------------- - -$moto_htaccessFile = ".htaccess"; - -if (is_file($moto_htaccessFile)) { - - $htaccessData = file_get_contents($moto_htaccessFile); - $cms_htaccessData = file_get_contents("htaccess.txt"); - - $file = fopen( "./.htaccess", "w+" ); - fwrite( $file, $htaccessData ); - fwrite( $file, "\n\n".$cms_htaccessData ); - fclose( $file ); - -} else { - 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'); - -// -------------------------- -// ファイルの削除 -// -------------------------- - -unlink($zipFile); -unlink($zipFileIoncube); -unlink($phpName); - -# index.html があった時にリネームしておく -if (is_file("./index.html")) { - rename("./index.html", "_index.html"); -} - -unlink($installPath."/ioncube/loader-wizard.php"); - -# プログラム以外のディレクトリを削除 -dir_shori("delete", $zipAfterDirName); - -// -------------------------- -// インストーラーに飛ぶ -// -------------------------- - -if (preg_match("/public_html/i", $iniFile)) { - $jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); - header("Location: " . $jump); -} else { - -?> - - - - -a-blog cms インストーラー (XSERVER版) - - -%s にアクセスしてエラーが出る場合には、
設定した php.ini の設定が有効になっていません。

',$jump,$jump); - -?> -

コントロールパネルの「php.ini設定のphp.ini直接編集」にアクセスし何も変更せずに保存するか、
しばらく時間をおいてアクセスしてみてください。
設定した php.ini が有効になりインストーラーが起動します。

- - -(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} - diff --git a/29x/zenlogic/readme.txt b/29x/zenlogic/readme.txt deleted file mode 100755 index 19fbb9c..0000000 --- a/29x/zenlogic/readme.txt +++ /dev/null @@ -1,30 +0,0 @@ - -# 簡単セットアップについて - -「簡単セットアップ」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードや ionCube Loader の設定が可能です。 - -## 利用できるサーバー - -* Windows XAMPP -* macOS MAMP -* KDDI ウェブコミュニケーションズ CPI ACE01 -* さくらインターネット レンタルサーバ -* ファーストサーバー Zenlogic -* エックスサーバー -* GMO ペパボ ヘテムル / ロリポップ - -## 利用方法 - -「簡単セットアップ」を利用することで以下の作業を自動化してくれます。 - -1. 利用されるPHPのバージョンに合わせた a-blog cms のパッケージを直接サーバー上にダウンロード -2. ダウンロードした Zipファイルを解凍し、設置先に移動 -3. サーバーにあわせた ionCube Loader を直接ダウンロード -4. ダウンロードした ionCube Loader の Zipファイルを解凍 -5. ionCube Loader 等を利用する設定を php.ini に設定 -6. .htaccess を有効にし、サーバーにあわせた設定 -7. ダウンロードした Zipファイルや、必要のないフォルダの削除 -8. a-blog cms インストーラーを起動 - - - diff --git a/29x/zenlogic/setup.php b/29x/zenlogic/setup.php deleted file mode 100755 index e602450..0000000 --- a/29x/zenlogic/setup.php +++ /dev/null @@ -1,243 +0,0 @@ -= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName."/"; - -// -------------------------- -// 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."/private/htaccess.txt", $installPath.'/private/.htaccess'); - -// -------------------------- -// DB 初期設定 -// -------------------------- - -$data = sprintf("(.*)<\/a><\/h1>/',$html,$matches); - - if (is_numeric($matches[2])) { - return "2.9.".$matches[2]; - } else { - return; - } - -} diff --git a/30x/install/readme.txt b/30x/install/readme.txt new file mode 100755 index 0000000..9adcf64 --- /dev/null +++ b/30x/install/readme.txt @@ -0,0 +1,15 @@ +# 簡単セットアップについて + +「簡単セットアップ」を利用すると 10KB程度の PHP ファイル をアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードやファイルのリネーム作業などを自動化します。 + +# 動作環境 + +PHP 7.2.5 - 8.0.x +MySQL 5.x - / MariaDB + +# インストールについて + +インストールしたいディレクトリに setup.php をアップロードし、そのファイルをブラウザからアクセスください。 + +しばらくすると、ブラウザ上にインストーラーが立ち上がります。 + diff --git a/30x/install/setup.php b/30x/install/setup.php new file mode 100755 index 0000000..c06621e --- /dev/null +++ b/30x/install/setup.php @@ -0,0 +1,337 @@ +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 の設定 +// -------------------------- + +$moto_htaccessFile = ".htaccess"; + +if (is_file($moto_htaccessFile)) { + + $htaccessData = file_get_contents($moto_htaccessFile); + $cms_htaccessData = file_get_contents("htaccess.txt"); + + $file = fopen("./.htaccess", "w+"); + fwrite($file, $htaccessData); + fwrite($file, "\n\n" . $cms_htaccessData); + fclose($file); +} else { + rename($installPath . "/htaccess.txt", $installPath . '/.htaccess'); +} + +rename($installPath . "/editorconfig.txt", $installPath . '/.editorconfig'); +rename($installPath . "/env.txt", $installPath . '/.env'); +rename($installPath . "/gitignore.txt", $installPath . '/.gitignore'); + +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("open($zipThemeFile); + + if ($res === true) { + $zip->extractTo($installPath); + $zip->close(); + } else { + echo 'theme unZip Error ! : ' . $zipThemeFile; + exit; + } + + dir_shori("move", "./" . $theme_name . "/bin/" . $theme_name, "./setup/bin/" . $theme_name); + dir_shori("move", "./" . $theme_name . "/themes/" . $theme_name, "./themes/" . $theme_name); + + rename("./" . $theme_name . "/tpl/install.html", "./setup/tpl/install.html"); + rename("./" . $theme_name . "/img/" . $theme_name . ".jpg", "./setup/img/" . $theme_name . ".jpg"); + + dir_shori("delete", $theme_name); + unlink($zipThemeFile); +} + +// -------------------------- +// インストーラーに飛ぶ +// -------------------------- + +$jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); +header("Location: " . $jump); + +exit; + + +// -------------------------- +// ディレクトリを操作 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; +} + +/** + * Version 3.0.x のチェック用 + * 正常にチェックできない場合には 空 でかえす。 + */ +function download_version_check() +{ + $options['ssl']['verify_peer'] = false; + $options['ssl']['verify_peer_name'] = false; + $html = file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); + preg_match('/

(.*)<\/a><\/h1>/', $html, $matches); + + if (is_numeric($matches[2])) { + return "3.0." . $matches[2]; + } else { + return; + } +} diff --git a/210x/update/readme.txt b/30x/update/readme.txt similarity index 96% rename from 210x/update/readme.txt rename to 30x/update/readme.txt index 7abc64a..f787b4a 100755 --- a/210x/update/readme.txt +++ b/30x/update/readme.txt @@ -15,13 +15,16 @@ 以下のように設定が空であれば、バージョンを自動で取得します。 -$ablogcmsVersion = ""; +``` +$ablogcmsVersion = ''; +``` 利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) systemはアップデート対象になりますので指定しないでください。 +``` #$useThemes = "blog2016"; # "site2015|blog2015"; - +``` ## 利用方法 diff --git a/211x/update/update.php b/30x/update/update.php similarity index 53% rename from 211x/update/update.php rename to 30x/update/update.php index 3676783..c17e137 100755 --- a/211x/update/update.php +++ b/30x/update/update.php @@ -31,10 +31,10 @@ // 二重実行防止処理 // -------------------------- -$lockFile = realpath('.'). "/update.lock"; +$lockFile = realpath('.') . "/update.lock"; if (is_file($lockFile)) { - echo "lockFile:".$lockFile; + echo "lockFile:" . $lockFile; exit; } else { touch($lockFile); @@ -45,7 +45,7 @@ // -------------------------- if (!$ablogcmsVersion) { - $check = download_version_check (); + $check = download_version_check(); if ($check) { $ablogcmsVersion = $check; } else { @@ -60,17 +60,17 @@ $ymdhis = date("YmdHis"); # ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip",$ablogcmsVersion,$ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip",$ablogcmsVersion,$ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip",$ablogcmsVersion,$ablogcmsVersion); +$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip", $ablogcmsVersion, $ablogcmsVersion); +$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip", $ablogcmsVersion, $ablogcmsVersion); +$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip", $ablogcmsVersion, $ablogcmsVersion); # ダウンロード後のZipファイル名 -$zipFile = sprintf("./acms_%s.zip",$ymdhis); +$zipFile = sprintf("./acms_%s.zip", $ymdhis); # 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3",$ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6",$ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1",$ablogcmsVersion); +$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3", $ablogcmsVersion); +$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6", $ablogcmsVersion); +$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1", $ablogcmsVersion); # 解凍後の a-blog cms のフォルダ名 $cmsDirName = "ablogcms"; @@ -80,25 +80,25 @@ // -------------------------- $versionArray = explode(".", phpversion()); -$version = $versionArray[0].".".$versionArray[1]; +$version = $versionArray[0] . "." . $versionArray[1]; -if ($versionArray[0]==7 && $versionArray[1] > 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; +if ($versionArray[0] == 7 && $versionArray[1] > 0) { + $download = $download71; + $zipAfterDirName = $zipAfterDirName71; } elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; + $download = $download56; + $zipAfterDirName = $zipAfterDirName56; } elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; + $download = $download56; + $zipAfterDirName = $zipAfterDirName56; } else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; + $download = $download55; + $zipAfterDirName = $zipAfterDirName55; } $installPath = realpath('.'); -$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName; +$ablogcmsDir = $installPath . "/" . $zipAfterDirName . "/" . $cmsDirName; $phpName = basename($_SERVER['PHP_SELF']); // -------------------------- @@ -107,17 +107,17 @@ $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); - } + file_put_contents($zipFile, ""); + while (!feof($fp)) { + $buffer = fread($fp, 4096); + if ($buffer !== FALSE) { + file_put_contents($zipFile, $buffer, FILE_APPEND); } - fclose($fp); + } + fclose($fp); } else { - echo 'a-blog cms download Error ! : '.$download; - exit; + echo 'a-blog cms download Error ! : ' . $download; + exit; } // -------------------------- @@ -127,40 +127,39 @@ $zip = new ZipArchive(); $res = $zip->open($zipFile); -if($res === true){ - $zip->extractTo($installPath); - $zip->close(); - +if ($res === true) { + $zip->extractTo($installPath); + $zip->close(); } else { - echo 'a-blog cms unZip Error ! : '. $zipFile; - exit; + echo 'a-blog cms unZip Error ! : ' . $zipFile; + exit; } // -------------------------- // バックアップ // -------------------------- -$backupDir = "backup_". $ymdhis; +$backupDir = "backup_" . $ymdhis; # バックアップディレクトリを作成 mkdir($backupDir); # ファイルを移動 -if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); -if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); -if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); -rename("./index.php", $backupDir."/index.php"); +if (is_file("./acms.js")) rename("./acms.js", $backupDir . "/acms.js"); +if (is_file("./index.js")) rename("./index.js", $backupDir . "/index.js"); +if (is_file("./500.html")) rename("./500.html", $backupDir . "/500.html"); +rename("./index.php", $backupDir . "/index.php"); # ディレクトリを移動 -dir_shori("move", "./js", $backupDir."/js"); -dir_shori("move", "./lang", $backupDir."/lang"); -dir_shori("move", "./php", $backupDir."/php"); -dir_shori("move", "./private", $backupDir."/private"); -dir_shori("move", "./themes", $backupDir."/themes"); +dir_shori("move", "./js", $backupDir . "/js"); +dir_shori("move", "./lang", $backupDir . "/lang"); +dir_shori("move", "./php", $backupDir . "/php"); +dir_shori("move", "./private", $backupDir . "/private"); +dir_shori("move", "./themes", $backupDir . "/themes"); -if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir."/cache"); -if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir."/extension"); +if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir . "/cache"); +if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir . "/extension"); // -------------------------- @@ -170,7 +169,7 @@ dir_shori("move", $ablogcmsDir, $installPath); # 運用中のものを利用するので新しいファイルは削除 -unlink($installPath ."/htaccess.txt"); +unlink($installPath . "/htaccess.txt"); // -------------------------- // カスタマイズ部分を戻す @@ -178,37 +177,37 @@ # themes を戻す if (isset($useThemes)) { -if ($handle = opendir($backupDir."/themes")) { - while(false !== ($theme = readdir($handle))) { - if ($theme != "." && $theme != "..") { - if (preg_match("/".$useThemes."/", $theme)) { - if (is_dir("./themes/".$theme)) { - rename ("./themes/".$theme, "./themes/".$theme."_".$ablogcmsVersion); + if ($handle = opendir($backupDir . "/themes")) { + while (false !== ($theme = readdir($handle))) { + if ($theme != "." && $theme != "..") { + if (preg_match("/" . $useThemes . "/", $theme)) { + if (is_dir("./themes/" . $theme)) { + rename("./themes/" . $theme, "./themes/" . $theme . "_" . $ablogcmsVersion); + } + dir_shori("copy", $backupDir . "/themes/" . $theme, "./themes/" . $theme); } - dir_shori ("copy", $backupDir."/themes/".$theme, "./themes/".$theme); } } + closedir($handle); } - closedir($handle); -} } # /php/ACMS/User を戻す -rename ("./php/ACMS/User","./php/ACMS/User_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/ACMS/User", "./php/ACMS/User"); +rename("./php/ACMS/User", "./php/ACMS/User_" . $ablogcmsVersion); +dir_shori("copy", $backupDir . "/php/ACMS/User", "./php/ACMS/User"); # php/AAPP を戻す -rename ("./php/AAPP", "./php/AAPP_".$ablogcmsVersion); -dir_shori ("copy", $backupDir."/php/AAPP", "./php/AAPP"); +rename("./php/AAPP", "./php/AAPP_" . $ablogcmsVersion); +dir_shori("copy", $backupDir . "/php/AAPP", "./php/AAPP"); # /private/config.system.yaml を戻す -rename ("./private/config.system.yaml", "./private/config.system_".$ablogcmsVersion.".yaml"); -copy ($backupDir."/private/config.system.yaml", "./private/config.system.yaml"); +rename("./private/config.system.yaml", "./private/config.system_" . $ablogcmsVersion . ".yaml"); +copy($backupDir . "/private/config.system.yaml", "./private/config.system.yaml"); # /extension を戻す -if (is_dir($backupDir."/extension")) { - rename ("./extension","./extension_".$ablogcmsVersion); - dir_shori ("copy", $backupDir."/extension", "./extension"); +if (is_dir($backupDir . "/extension")) { + rename("./extension", "./extension_" . $ablogcmsVersion); + dir_shori("copy", $backupDir . "/extension", "./extension"); } // -------------------------- @@ -222,8 +221,8 @@ // php.ini があった時の処理 // -------------------------- -if ( is_file( "./php.ini" )) { - copy("./php.ini", "./setup/php.ini"); +if (is_file("./php.ini")) { + copy("./php.ini", "./setup/php.ini"); } // -------------------------- @@ -234,7 +233,7 @@ unlink($phpName); # プログラム以外のディレクトリを削除 -if ( is_file( "./index.php" )) { +if (is_file("./index.php")) { dir_shori("delete", $zipAfterDirName); } else { echo "update error!"; @@ -254,7 +253,8 @@ // ディレクトリを操作 function ( move / copy / delete ) // -------------------------- -function dir_shori ($shori, $nowDir , $newDir="") { +function dir_shori($shori, $nowDir, $newDir = "") +{ if ($shori != "delete") { if (!is_dir($newDir)) { @@ -267,18 +267,18 @@ function dir_shori ($shori, $nowDir , $newDir="") { while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { if ($shori == "copy") { - if (is_dir($nowDir."/".$file)) { - dir_shori("copy", $nowDir."/".$file, $newDir."/".$file); + if (is_dir($nowDir . "/" . $file)) { + dir_shori("copy", $nowDir . "/" . $file, $newDir . "/" . $file); } else { - copy($nowDir."/".$file, $newDir."/".$file); + copy($nowDir . "/" . $file, $newDir . "/" . $file); } } elseif ($shori == "move") { - rename($nowDir."/".$file, $newDir."/".$file); + rename($nowDir . "/" . $file, $newDir . "/" . $file); } elseif ($shori == "delete") { - if (filetype($nowDir."/".$file) == "dir") { - dir_shori("delete", $nowDir."/".$file, ""); + if (filetype($nowDir . "/" . $file) == "dir") { + dir_shori("delete", $nowDir . "/" . $file, ""); } else { - unlink($nowDir."/".$file); + unlink($nowDir . "/" . $file); } } } @@ -294,20 +294,20 @@ function dir_shori ($shori, $nowDir , $newDir="") { return true; } -function download_version_check () { - - // Version 2.11.x のチェック用 - // 正常にチェックできない場合には 空 でかえす。 - - $options['ssl']['verify_peer']=false; - $options['ssl']['verify_peer_name']=false; - $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); +/** + * Version 2.11.x のチェック用 + * 正常にチェックできない場合には 空 でかえす。 + */ +function download_version_check() +{ + $options['ssl']['verify_peer'] = false; + $options['ssl']['verify_peer_name'] = false; + $html = file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); + preg_match('/

(.*)<\/a><\/h1>/', $html, $matches); if (is_numeric($matches[2])) { - return "2.11.".$matches[2]; + return "2.11." . $matches[2]; } else { return; } - } diff --git a/README.md b/README.md index 6e0af19..f9668f8 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,11 @@ # a-blog cms 簡単セットアップ / 簡単アップデート -## 簡単アップデート -より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。 - -- [簡単アップデート 2.8x](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/update.zip) -- [簡単アップデート 2.9x](https://github.com/appleple/acms-easy-setup/raw/master/build/29x/update.zip) -- [簡単アップデート 2.10x](https://github.com/appleple/acms-easy-setup/raw/master/build/210x/update.zip) -- [簡単アップデート 2.11x](https://github.com/appleple/acms-easy-setup/raw/master/build/211x/update.zip) - ## 簡単セットアップ より簡単に、ご利用の環境に合わせて a-blog cms をインストールできるパッケージです。 -以下の環境に対応しています。 -- [macOS MAMP版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/mamp.zip) -- [Windows XAMPP版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/xampp.zip) -- [KDDI ウェブコミュニケーションズ CPI ACE01版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/cpi.zip) -- [さくらインターネット レンタルサーバ版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/sakura.zip) -- [ファーストサーバー Zenlogic版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/zenlogic.zip) -- [GMO ペパボ ヘテムル版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/heteml.zip) -- [GMO ペパボ ロリポップ版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/lolipop.zip) -- [エックスサーバー版](https://github.com/appleple/acms-easy-setup/raw/master/build/28x/xserver.zip) \ No newline at end of file +- [簡単セットアップ 3.0.x](https://github.com/appleple/acms-easy-setup/raw/master/build/30x/install.zip) + +## 簡単アップデート +より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。 + +- [簡単アップデート 3.0.x](https://github.com/appleple/acms-easy-setup/raw/master/build/30x/update.zip) \ No newline at end of file diff --git a/build/210x/cpi.zip b/build/210x/cpi.zip deleted file mode 100644 index 6cbe4bae3ef0b69f8fb1d3e484eb4be4d94c8ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4591 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 Go&F2ghmqI- diff --git a/build/210x/heteml.zip b/build/210x/heteml.zip deleted file mode 100644 index bfa35be0da01e3aabfeb5c54daeb6fc98dc81f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3810 zcmZvfWmFXIy2Xd?4v{WFI+Y&Dp&O*7V`z{rnW19{X@(dHkq`t%KpJU5Nf8)AQltlv zkeH+Etb6bOo^|%~;eDR9-nBpN55H}oje|=IApA3Nf)@IKe~A9iE-oe-BI4#8;Oylo z;_qzl>|&r^8L2 zUhgurvQr{%c{LY)E0*BgiYY6=%5gycL>*dp9~GSzOVp*vt+pJ@5)X(~#HK1m%(0Cj z#2*qAV$m_g6m*^=3ZNtNjW16d2`%F^qLVwT!gm^tb>`La405jVBbdcW8p$$a1XY}b znMR2>iJX{`r2M_yBM(NXRk7B2NBmn;^bQHL@!sz3S|QXj25(zIyj&adqI6pb{>?IF z;qF@Zb;XAKn#8)bvbg-UR~l_cpWQN^q+AX|8)kJ|%^Pby5EaEMfm?hdM)Ep+=4SVv z@VY>ZYC7g;-0rdKGn^jZdv$ES>6P8H|Lb?ecz@LmWbMZiYR~kE%I$58_31lWUc;EB z*l`t}FZPEjmc$6@^~i3e71TvVM?z>D4?I56(oJ2jv~>|;sTHG&5NDi zgb5i1t?rB`87Bn~bkZ?puFcTQfF3fhBmAFdDu}j;p%>W*amx+KGr^t%2UjY(I$&QM z)Kf@;6y=AqBT}8F372JTK8ne-u=ggkTKsI&xTXh}H%DKY!<}xnuzt~hwX`tQH_(Lh zZX6!eR*MeZ0SvSW2o*C-w#u*p0CqgUpZkAO4x!Bae<`Q?kCZ=m4hZxW_I309Y>Dw% zGNHySzZjggcz1zpq+w60x4Ia~G*RQX7RIY6PZAuCvVw;NN47}mlH|CHOy){r(}fxA zB>8Xcw9_lnQn<<2R;Lez7H{K+ z%vf#OP^fOL4l0<>nkU)}DvCE&Tl>NskMUr7M;O)`E_JsMe#8k|bt*iJd|nE=z*i$O zK0ZE)Tj@#%pK-u|l~Zscw&bhil5~6v*5y0#N(>ZqG`)iltDoM{4Fl50R@#RSfH5zo-0smx^B*|=?}Y&ffZpf_ z!0$>(ZldzZbH$}-(JR0J62)G^!$c{~0a2CrMGst{x;Z&%01N)gL&8Py-afYrd00{sFzhKqxh3W_71 zEg8muF45w!!>-*BWO&X{X=7IhD%?l?O;KPcSDLn{G(V}sG8pgGTD#|v?BSVutM|F^ z{#kzFid8Gy%`q^`KOra>d=bI#+(X1i7*_4A_dBX1<8xyc6G) z!9d03vU_|oaZoq>u$0Ww_#Sb83b;c=P)dbU3-u4_bV)Wqglf z;$x_s(oO(0I@W*9*Fk_10G-iuTQp#Ve#4_5*Rh7SA>@TvoqDjEj-wmJ$>>O$<CM?)O$R)}H^Wm8LEe|O#P!3Z~ zX^cW+4}c*pt%z|Qg4ahO9HJNcKQu_=2yFZ8x3jNol}BZqqq1KWY@Y*(JAzT>$9;|r}ltonUb>U@O0dX!C_gftD@RF-Fv8>DWEE%L2i_U~vt zb{>zuvvwvj*Mc$9-`5|n6DZ^4-^y#=69l}gdz;QENk(6DEPL@mDS08VB7gMZIgu6K zQ7NE5!WQ=U1*%cOMZ6%fWSs;-9l$UFk9n2CV~a6#X1lQGpioQPOqDM2hqOhI7^wAd#R#=sw-#jyTMLak*lu%EFk$ zDtz8_V9tJ}5my6Ccz9DM-#p$T^Q8J0S-<>OG&f#~u*Hq>jO;EhrwhjqT>G|pTAT+< z#OfL@fqWOk4rnOwWr)UuoLC68W9HWT1n6cfZED_fvGxiqQ~3!xrADJvCJwC zKcggO{l6G0GRU*yxwogSB|143DEJcfH|l}|OFi`-=4R@#w`&RxGjL_i=&+BU7VC0x zI}TKu&=8V(O>=K#=p<^b5A8oOjjLQ$Ia;@6dxptwg$#=l(v1&6%_- z>;snG%?n3yX6!24*Uj@BvW0))1tsb_k#Sd(*ATzN^UD10>Gq)_ryk?S-YPXDHlaiXde63uhXx|Wea7lQTTLX#RW$uUg>skTt)3D-oF%j%F=XMqz=9H28GtznsRhC>)r8Uk*rf<0&{B>|0|EOciEB3~~yCzw`0?fd$TUx(wPKO5^^k)lsv;XtsC42wK^ zHjKWSI)Q2dx6Fv$Uf6VrsVFL)-=>4}w z{#)#T1IXX)zn98?di;g-fBOH0^ndHG$Mzqn|EI_QBD;Y$9{%5N*ncMB&#OlM_xcyP Ce-*$0 diff --git a/build/210x/lolipop.zip b/build/210x/lolipop.zip deleted file mode 100644 index c8f3284fdc853fda3ddebd87391336c463a5a4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3599 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 g^fzPW5B&TypF diff --git a/build/210x/update.zip b/build/210x/update.zip deleted file mode 100644 index e03c8023df0f51105fb136215419085df45a877a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4022 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 JB)Y%be*ooXw*vqG diff --git a/build/210x/xserver.zip b/build/210x/xserver.zip deleted file mode 100644 index e1c7396a4ebdbc7c704b19e6f4bf5a57a6a38b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4581 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 aVXiO)%u~|A%R|Zo<`4+?eDY_B=zjpvVry3b diff --git a/build/211x/lolipop.zip b/build/211x/lolipop.zip deleted file mode 100644 index ffe2141c5b8b2cc156d223a8680aac8f90022149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4055 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 PFsP-Mos;k1DV+ZU?CFDI diff --git a/build/211x/sakura.zip b/build/211x/sakura.zip deleted file mode 100644 index 3ffcbd7581c1598553e3bea47a4a3c2cab7014f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4279 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 B1%vplPH4K(q(| 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 L2KW2x3E#f}zPa~d diff --git a/build/211x/zenlogic.zip b/build/211x/zenlogic.zip deleted file mode 100644 index c1ec031fe1f94ac69184b9b69fdcb55b745216dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3745 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 diff --git a/build/28x/cpi.zip b/build/28x/cpi.zip deleted file mode 100644 index 3ebf9fca59fd44ff8bac89cb3ded5742630ecef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4586 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 DL))Hm diff --git a/build/28x/heteml.zip b/build/28x/heteml.zip deleted file mode 100644 index 6fbe0b7d745ee57e41bde33bb1de095eb2a64b35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3734 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 diff --git a/build/28x/lolipop.zip b/build/28x/lolipop.zip deleted file mode 100644 index b2dcec792aca240a5ef35a0390611e86fd520dfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3594 zcmZ{nXEYlO`^IC{-c`FrHD(c`HEJf+J_us(y*ELN7`0+OB~`oHP_wkeC`ye-j8tqj zOVCg|#)GDcw>|GU|NnE|^S;;p;lA&4?sI**Km0CZeJbj!0J>k5ByDX3_=m3jn&p)r z%lZZSc?Sgs$%eQ)yZO7zggy?hOEtjPQ6ge(Un+tn(oun5>#R|3QYJ~T@Qw&&8 zSz?AZV*17qT3(#Ckb;XRp`hagT@XJwi+Og0p|eSP7?;*j8MT2iHJE)sW1Mq#1tB2M zh+#%0NQ2#E_;CzGdN+Y4CdqEm!CQkI5QDS6mR8urT4O#eO*UpED9vBK2&qRWbx!qy}P zP3{@=SXpvwig`RSdDA{S>BTK%#B;RIU9xXQ^nc#9bNmB=@2&j#WaZnJg>7?9@cDUy z-BJBjF<8QvL_8Qc;=Bj8VL&UdMt5p2Eu5CMBO_XYMae0?Z9Z(CAH3hF++-n}JE~5a zya!bKLQ}ae!RkZ$wFpt3ml+vI%B_5HpYrg}m~f5j7gK6@;hCmfet{60LqXy-w*tbt zO~2rv5fs^ko3v8(n`*f9&t^r748FPXZJU@?0@-W)$_g z>MQ-sU{GG|JUcxh&dA7a_&&5tLMmrBi3eh%g1mF-%!3M^j#XUxws5QZ2EImU(C{Wk z?Ml~&H{$_^sIgGwoc(sXdY;Jwu&pl*Zqw}Pif(WfTu7B}_uW6KP>o#W2(NUNjdMr} zBVDm7cCU)OZ4yq{z^9s~KEifz@uOBIIVW|+1y<1^aFn`SE9hYU1|9Wl7z@hV54%eS zLk+xxs1_`qAn&rZm6DhY8b&=9DJ59Po<=sCUDcDkF+pv<`~4^Bvp|&F&ozqUYoBeb zVMfM(6p4M^+pVdV>%RaP>(kO{Wtpv&QUU-%G=N|G|N3&S|M+saduUjYOpsSlx%DM{ zYMTAhKDJLp3iS@28)SoC%VK1%a85R!5hV-H!f$TBl%^>z(^GZLmP-gN)9R)I>qsyc zWa*IC0R_UlV*uQZBjuu>+{MvG6PumO?N>8*+b0(mTLK>u_B>BdernWHX^$!9Bi1s} z-Ve1FSiR0P{A2Gg_|JEKAotnJ0lDpC>G2-afz@5+mQF|QfvUc-m7Auz@Z5?^BDNsK zG5{n&_v}dn-s5iy`kMo%TC}j*9%|?%bkepdIv4oOJM!s!+3^#FLXDDLwWjm@iaf`c zZ3LCrr1zYKOFfGd58~x06yWgKLaM^rNumaH^icqU&=#6oQ3)F#9x(Dg3^INuN5RiM z5_NtxA$~R~`zu!W>?$|i=&1)dI-gc7D zt)MkVODBh5-^g2igT_W(4)5B}F}{?d*z2bo2s!R%39st1Fj9VEwW~?$PGGol-=kMh z%`uixd^ynBUg7YFV81o>{cQCkU+7<%++K(KU@`Qrl;U~v;_~rGxstZ(3N@`jo|A=X zLF)EX?!M&h20`Ea28X4#IhDp~XA#v`OVI~E;lQ=){&kZl)pnmWq<||iVp#s!?bYi8 z%&N@Mp?}dwevh&<@8|7@SCF8LXa6lh(y^s>=-JD1UrP&#+`Bd*Q#Q^s9i z?41oZj$Y=BSqnGwcgrD8w9??sdM^l8p%8-Fdf>6Hkzb%DIohdUt0@oPi0g=Jvh`$z zCXA4!WM4X7mh%pzZsmUExNoL314`v)SE{GN{AEgK#7G-K%>&9+d&%T9eM=XD=3-Cr zr+kZc#+ISPSYAp$e#27$v>M)fn`?Ef7Z$SJ$Y_%L?j)%M!=Rd#(|yeU7>HqbBIq`x zM+25J@>eAW@-B?;GQO!w^C9(CClw0SI zstE_!rkR>gL7E*|FY5U>zDK-3OAFV9yeZjS>nT$d!P4Luv}lJ|Q!1~%uZ`zP%i%jk zadqFZM^c@!2o~Ucg>)aOd-a7)p1Q2|q2fJz1uSXURWMb8Ee9-qjVXZ=&$!&iN3|#( zrr#bC@wz1?s!KIfvtP8^wNP*%!X@>QcQNjY9aFbOp<9vJN_P)f;W)anQ2}|HM||aG zb9kA%`GeirC)_n5&qI1O1V@bM?qRYBn!VDlZNWI1vrSgcYZ7f8&Fc`!_?tjaE4YFB zx?jS%!w6ll2GZG=WkIZWj11wY9x^(dbWh8J80?YCekcYV5hqLckiuGQiE}@Rtf!K! zFj-P5R@wGZ4!M5UyS3S7328XyD*2u^`IB$K785jZ;-p0}8Vfj#E_7JxIBJ4ld=gK< zR5dWy^=yIoDpnHp$XnN*e4?6_XB&40NOBykvSkbROS^uJm!#2WZ+Q{IZ-GF$H%(BP z<4LgVeQX|Kl6CO2V&k=T^Qc3*`WF<4O)d=H&U8A!4089}eIg81oBQX1esS46#<@^5 z?ZY`vJd@~2g66deC^@9|Iozyju<%Q`7266(AS69purbj-VT4SB8}3zD>8d7g0KJv_ z=?Y$WFga^)Nb`eug=H%Fz)pVIKwfuTM%9BabOc|%olC0Fk(lP-bKj*`Po3DxlG*v) zYrBxlp!M?p)fgAv+jnJ7F@cZ}sQB9)wV8|N7O)F;c4kXxNNG$l%Y7f5W!dC1h2TuYhqVDM8rS(9VcLlMJXQYE)BHaX341C|ADH0OenEYyhti+7}fV$QINU2g;;?%62`z;DpMq*4|PnHsYODYZ>uJ zkk7>*Q9i8Eo!kw75Mf-{>8Yac)5OXQ_qYvu1Vh!7E-K2!d zjER=xpoNH!!MFQ(`9{vCXJ4#bDf)A<0_UmNHaO;7J-Nw%;};wpDy;G;|16nuJTaih zjJ!T;?ARBf`$MoOZ1M5I-;Tw$v945T;bslBm|psA)GqR=$ek2@m-v`n@R@7U=~ys7 zbUL<^d<%M^@CiTh;4QGUUYuoHnBJ~eRBtI+MChGP3x)dO$(NqF(=FubN44Ha<02kr z4#`zvg4@UC05)wJVDP=+1u(wxfIOf6ZKlU30=O;9<)q|5HOXqBO%)(rm7#3a<2cKE zHFd6?;n}wv0~)jhc0^@5Z>=+3I*elV6&|EQ?D_0(Xyyq>g6EEz9$Aqi{ydGM8$V#R zW;A>s)q^_`fP~o%#7l1fp#?islm`%b#$2;xEnDM4rH`Jo*`LBS(Nfl0Gun{XtXiEt zz5C&Eqk2q++~3(4SjFw^R^ntVS5o(0bLc=|>c$_X_>WEHW5XkmX!qDT4tACdfL#0hLUy(cVqLNkh2Wf z_4D;e0Fl1M5i1l$uIfAcf+cUW1!YF9$X_rwY9bEl_icwVhdJG^FF9uulw)48?Y(}H zg?&5bS}d$Tx@fTf##sfCv1UCfbjg5>mB4a5ezeu}i)aj+50*W?;W#ZEKGZ0-fwPrZ zMAJxeUWasdNat~bR9!TBBNIfvvt$~rLn?#7ahOV)UBpUNhk?$3&0E^U#KZWJcc7PE zQXf=V=%P|EEL%MHK7QBfmx%m(3lyorJw}wQFRrm-O&KSGpXIa$$R}14=a-30XlfHT z|4en73SS6HrXeO+KHMcQWmz#428%UkuRP^(LSiT83^eD}>xR2rYBlTD7>0f4;$j`Z zuh0S(+kM`Mc25U|ic`Gr$y5{2^42|sxeGc~j%ZzGU-wzG#8r~KI^J?E4O^I$o^p7< z8Pc;_jQ}a%VpUiv+t>V!p}Lj!gAfJ)AVJ_ahEh=8ruzT5^-o0o9k>21A;9jF-_w5& qU;pXxPygRA`)~dBSpNmT|Md7jv^CbJx$^sr@>d~$b${mH+rI$+bgat& diff --git a/build/28x/mamp.zip b/build/28x/mamp.zip deleted file mode 100644 index 25e3a004a3606ac6b681cfd4717cfea0b978b957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4406 zcmZ{oWl$9U_QvV%RzQ%hC8e81x{+2`xtTKsJp+kVal7O1y{~D`9%0L*D|V zNC5jhA9ODiYv24(n2Vli1KnLgz3e>tc$zO#l_B8i5FN;eJ4; zri;vNzkuXM3@z5DpVs4uH{@(q%)T zHm4%4>PKO8&X3P(Ek|Qcsq%?egAui}+Rdi*m9CKD{8is=?jZvit*@pgwDOz|;RY3L zi!)BN%(`@^$F!f1O}E@Kx(?27z@xpTci}&f-&gjH_t4(xXoopjq?`Uf3s$TQqjLYd_5g7>9JVW1+({rc$qG z8y?)=lR{XADwvS_xcGWaA@Hdo6J}x5_vHMc<>8VnPA=j!tb3^f%@j|e?5bsQ{IxJ$ z-Irs}wY#`^GY_Nbl+7h$#U8Bb(mdxwpRFQS*vpwlE18FMSnH*6y5JR4Z%)!CePWkh z?I+4+8?11&_9u9oH#you8f+O?;`!QKk1xJR1#VFImD&n~Sw{OF;h5&zmjwb0{ML3x z;|=5e``W4L(|*iQ&ZuxPY(Tuc(_{r(gnlhE;b9f&lcYJn?mN5&YHK-rV6GU4$BL7+ z79J64HB2}lFt|x4lLMPxP-*ZmO=B4yUfmtdF$CG&ZKI#l%$b|%>*}fJac-gxE6W83 zexvDW;^HZ!zSu6rKtp53M*B1WuM?;E=ZSmU`}lhBdpLPCnFo2#7}Gph6>LBxni}`j z)GaU)0saOQI1T}JO3O=tVJE6xDdT$fBsL(#9%scZ+~CVAbC`X0{`53}3g+wxN0ewf z%a8UeboGz7lA2}ZFG3qf!=h2L$WMbEU8gNPN9Gc+&~07KL=TVcp&tnbHT_9avjF#A zJ*(yyU`4*t!VG#gSa*$?wXzK`*nYeF%#tAq(W1jMe-?;XLu(^PcMDaNUYoigg?gv? zg%s!4Iw4iL7;@zs&bFre%NxeIGaC5mYH!DL6AVJQ%ditD(iYz#aD?{X^d=FC7_vW~ z^37SjNGaTx_-ws2n2c$$RV1BCfqd&$3&Yp#ysrw{rd$qDkY>!Nyq65RGSzb*2{zaF zqN#8YFEml7Ywg6vDRaT+aJmipviE!$uC+om}x_*2Jb-ER+ zng6Y#&jIp$d%Y+;IWM~m*IdbN6MvYyUuSXa!k%yqDga-G!C*L&+?2;x9fXMLuIc$f z=sCAr2m4U!i1-=UHFaw@zjpghzj8M^Ffm0##HEtqGwEAUQG^j!HEwM&Yu}UKzva(=Gxb zdExd2P_a0`N2u|~hFqow`=5njbNjF-ePWMCnUgF|k(y3Dtr505c^&UH7#; z%a&<-KDhhZ+p}Zfz&7u4tEx1TJ^R{4s|Q=;+kwL&zJx zn~=QAoj)6ayZR%m+*VR8Silr<+(+!3$s=GobH{G9hDWo(u~aX#0ZMv=eIC{XqVH8l z(5{DubVjS3E55kg3pg%ld@D2jvOn1YKAh^MpCAx>V`q$zN+@4=l@~xh6=4q1@jP3P z^N71$O(4ILBtcuI(fdnk_+!g0FDd+jhL zc+u@WVLvL}hC`i0-kk#?#VG9iEZa!5-e5smYUjr~zO^&VEPi-TDdGyE6MTu*yJ!}H z@ZQu26KQ^rCMpWzk4HD?g4WoSppV6HtypM8CG>%UiTqD@Qbp$kW7;(7q;9P3nA0tb z4xfEmOj1+8$9O-gCTOl3wjbo@o!@P}=A|Y*(srN)Sfc} z?5qE7K;quX^K&o79UMC~hW`MNjHP1vj?i$GRrH6yj#8hhd;C>6-iG(xTN_E7?^EO0 zSuVe|q!*TYNuf>bbpcqGTOZFOL#S+7Fmbl_JKg47L#U8KLZ*%|N+6+tZI0mSG8wVx z+zV0V4y9hnorYqY;83-y91j?u8w-i!jfS#PtL4tEO*uPng0Q>l&+Fh=HtJ^Q+dWVe z(^u_bBTPZa9&R5mn<^a7rA#N&ls|#e?-33|jyxEwUx<%GB;qvi5>t9NKFBl`%f5#YK$|cQEmIW0dJ97GT__jOQn@TK5v# z0b9IjF&-`nqvbPXb{0(vfALj;t-(oXr5_>%kJ3=dMT&jAl!rSWqb}}R@E{^Mb%A2W zb8avthWboyh*scdOAABn68P78kbh9{ti+b< z6=WvKvm+oR0;PfAN@AOn4V%Yf4;l=Bu~pX z9OgbXF7JFxZ)~+za#*SRMt;Y#Q|ue)waFacg!M4s@qlNqk{6uzyWmn87}Eq$mEwU( z%7d0I~UfoCG^dp{XLMwTFaJ?61h^fMeb*`z>Xs&Vp$bdkUdQ88 zCoWlGyo#Wfc-!jsRw?_LX<(@h+2*7Aorv{~iB8RQttOM8OAn@{qjn@k z_mhMNwXR?yvgB;M9#c0;3Od%9Yw4KiRj8#?w}0>tbSom!D-vs^xNqTcLRa#1ulh*r z(^ooBPx%7^vSE&I#MA4$OJwx`-#gA7nbQg=AfrHo1H6cqfxw z!2ZcLeJm%Skh7yg$6=(g6I5SO(U0DxzyTVqvbQ|OiwN8z(-Ly)Cklux76Dlcj>da% zD0z{k6E|A-`&C1}b+9C;Ao|VmmX4Vt*+#XhZ11mrKVQDd75VlNqKuI>Ywg#4_X2C~ zri0)_8F=oqGf>=}4N{L9A^M)zJyAZX)=ndsH8N|v%|#OIUKCMNdRU3@uaUX`Ex$N7 zsB)KW|B47R@bi^0#spfz{QMN?cI~rtmKVLQy;5CwF8g4ShO| z8YatT#=C(*AU-xD|M%Ib_8o!p=TqF>R#fDntrAyJygvlIwzs=>J&fM2$*_2eOzxxL zsHze2`Ii80pjX4{N0u!HUKp9WpBz<{=Z9}k%q$H{)`p5G_mxrFQ}Df+7A z_bCG+4r;6kM&GE*4OmoMG#`As_*sPeuoLo&cK(vdz?;CEbUV*2KM6T*y)XdvJ<7HS zEvgPpIpH0t-eNcJWKf_gD5nG_4LiuV%^`^03$)vFqS&2Gf5hx-4~Epa`#EqdzL?2g zs7)v1VC4c;gpnGCjg?e6UFP_QQZ&~iSL|iWws84Z()AK+#n5$L9NIfdg z94@P}p!SnR{ALIuI>gQ4sCUY4RiV)+#c&|c$=Yy~sr8RJs2*gp{PXF+d6D;N4E2hj zo4}XxwY&tT)G;xUVUgJL9_A)Z?*l5Tr^xHl`qM;RtOBA;QO+${VR^pA0kXm8e*AW# zV>d(}pUq)8f7I#{K-Y|`le4|Xo`$Clm)4zA8W<0f_&K&@4D;z1Dt%^t|2aH{$aS%9 zJ}JZWr`<=kxm@cpJVpBe-lxL{0XCcu+F-r)0}9%+G776R zOLld7$M?f{?Cu%0%reVGjNg)jlqoKF9L;L&pA9C7Ls}2aJdy8AQxC(SXSvkEE1DWH zjg#rWa>Ix!#G$HlP<1=PY~Q_(4I5!8(l%aEJb_jWH$JPsW1KGT z^}QL#lP}g%{fQQEs;$;BlEe49n3O7Oi(7wb*bXKFXr~@t9#Im{B$^{)jjRvy8SXduAez14m0%> zv#(`GSuSDkx{31IkjHWHs;^Zrm25?2e%awbMqT9Or2g&l2fQy9NFJq=3DgTO(4qj4JlnhTJp3cf2M)1 zX_sfRt$R2dpU=6;`J2s^C{)6)j_r+93z(U*qROeke6@SVCG8ap4!nV#Il%2iNn;485{}waaVff$fzr+>)-{7C-fAR0%`fITH b2N(Zi@E;h|)5OO4`v&7r{oPSO_ILUh!Cq$1 diff --git a/build/28x/sakura.zip b/build/28x/sakura.zip deleted file mode 100644 index 62321fefd8720ec57e41ccd4dd8438bd02c197dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4101 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 diff --git a/build/28x/update.zip b/build/28x/update.zip deleted file mode 100644 index 28136daf4c1f98c0982ec3518b560400a8fb0749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4014 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 z zWc9EitarPgNZPrO^H2t)S~69atB_st$&}ypeGWvDo8)va0rS1l2vU%VBlwE=MXXX{ z6_0?;8;Lhs3M>{%K%u~l?#ScMF;DN0-}90ve69Q1@(p@Gf zp6|NQyyPPI1a1i17s(C{9CVDy&Z3pH08mOgK2D7`t*fd>=NN0VV1ZI++=y}^1Yz%O z<}U(QyN#bvF;6k&6h$&jQie%4=volh<%FPs&F3z9@j#JGMP zGEng^2_RXhicfnUiSDQ}b}rw4)GS@u%=djmHR7>Me|;a|!ZJMNvQgukq?+f#qxdx3 z@d9w$bZ3+tFoR8!8@Z9!h`07WblT==N*)X!DE~V6x#|p3rW-b%{kncmD;dhh`u&A} ze(!9>weZ8nphrhE`N{gP0O4yu5%Q`@t-gQ}@eQ_~wZ2I1@CHDlZM*Ma`X<%7;^$`M zP3}}h^%aiWDNM4166q@os{_Z3v{h`im1m4!Zm5R|5G&nI`O{?0>DT8-Ttc~|9`|k g@&6am^T%NRf%uP~7#omN{N)4xbo`&mMF02t7yH9=hyVZp diff --git a/build/28x/xampp.zip b/build/28x/xampp.zip deleted file mode 100644 index e423b0e500b7ce8cacda7f4c0b49d83c4eff7ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4080 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 JjX-~|{{bQaojm{m diff --git a/build/28x/xserver.zip b/build/28x/xserver.zip deleted file mode 100644 index 8e2056c63321ca69e4c1b0fe6c89484a2057ecb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4575 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 hzx2ms{Wnj2pLyEb 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 CCzA32 diff --git a/build/29x/heteml.zip b/build/29x/heteml.zip deleted file mode 100644 index e7a92bc60f895821bf4a1f8310251206c5d80657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3733 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 diff --git a/build/29x/mamp.zip b/build/29x/mamp.zip deleted file mode 100644 index bb96117d0182f56edae8cf3aece463a8f2178ce7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4406 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 e1{?q2;(r_bHwGlqg?gr`K0fKbb(cPeQ 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 diff --git a/build/29x/update.zip b/build/29x/update.zip deleted file mode 100644 index 5cb6feb6cc5ba0c9e142d905fca7fb93983ed47a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4014 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 diff --git a/build/29x/xampp.zip b/build/29x/xampp.zip deleted file mode 100644 index 83a8722a658bf1378702a6d4e49052aa62c4ebef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4137 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 { } function *zipPromiseVersion (version) { - yield zipPromise(`${version}/cpi`, `./build/${version}/cpi.zip`); - yield zipPromise(`${version}/heteml`, `./build/${version}/heteml.zip`); - yield zipPromise(`${version}/lolipop`, `./build/${version}/lolipop.zip`); - yield zipPromise(`${version}/mamp`, `./build/${version}/mamp.zip`); - yield zipPromise(`${version}/sakura`, `./build/${version}/sakura.zip`); - yield zipPromise(`${version}/xampp`, `./build/${version}/xampp.zip`); - yield zipPromise(`${version}/xserver`, `./build/${version}/xserver.zip`); - yield zipPromise(`${version}/zenlogic`, `./build/${version}/zenlogic.zip`); + yield zipPromise(`${version}/install`, `./build/${version}/install.zip`); yield zipPromise(`${version}/update`, `./build/${version}/update.zip`); } co(function* () { try { fs.mkdirsSync(`build`); - fs.mkdirsSync(`build/28x`); - fs.mkdirsSync(`build/29x`); - fs.mkdirsSync(`build/210x`); - fs.mkdirsSync(`build/211x`); - yield zipPromiseVersion('28x'); - yield zipPromiseVersion('29x'); - yield zipPromiseVersion('210x'); - yield zipPromiseVersion('211x'); + fs.mkdirsSync(`build/30x`); + yield zipPromiseVersion('30x'); yield systemCmd('git add -A'); yield systemCmd(`git commit -m "v${pkg.version}"`); yield systemCmd('git push'); From ec58bafeef4e635924d06b5993659fbf911741bd Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 5 Jan 2022 12:05:24 +0900 Subject: [PATCH 02/23] npm i --- package-lock.json | 708 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- 2 files changed, 709 insertions(+), 2 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e50f71c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,708 @@ +{ + "name": "acms-easy-setup", + "version": "1.2.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.2.3", + "license": "MIT", + "devDependencies": { + "archiver": "^2.1.1", + "co": "^4.6.0", + "fs-extra": "^2.1.2", + "node-cmd": "^3.0.0" + } + }, + "node_modules/archiver": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "zip-stream": "^1.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/archiver-utils": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/bl": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/compress-commons": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc32-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.1.5", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.3", + "dev": true, + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.1.13", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lazystream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/node-cmd": { + "version": "3.0.0", + "dev": true, + "license": "DBAD" + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/zip-stream": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + } + }, + "dependencies": { + "archiver": { + "version": "2.1.1", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "zip-stream": "^1.2.0" + } + }, + "archiver-utils": { + "version": "1.3.0", + "dev": true, + "requires": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "async": { + "version": "2.6.3", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "balanced-match": { + "version": "1.0.0", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "dev": true + }, + "bl": { + "version": "1.2.2", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.4.3", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "dev": true + }, + "co": { + "version": "4.6.0", + "dev": true + }, + "compress-commons": { + "version": "1.2.2", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "dev": true + }, + "crc": { + "version": "3.8.0", + "dev": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "2.0.0", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "dev": true + }, + "fs-extra": { + "version": "2.1.2", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "glob": { + "version": "7.1.5", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "dev": true + }, + "ieee754": { + "version": "1.1.13", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lazystream": { + "version": "1.0.0", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lodash": { + "version": "4.17.15", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "node-cmd": { + "version": "3.0.0", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "tar-stream": { + "version": "1.6.2", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "to-buffer": { + "version": "1.1.1", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "dev": true + }, + "zip-stream": { + "version": "1.2.0", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + } + } + } +} diff --git a/package.json b/package.json index b94a91c..eedc5a0 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,5 @@ "co": "^4.6.0", "fs-extra": "^2.1.2", "node-cmd": "^3.0.0" - }, - "dependencies": {} + } } From 24463efab517e942ba267e08e02e56942ffd45be Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 5 Jan 2022 12:05:35 +0900 Subject: [PATCH 03/23] 2.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e50f71c..d72ab54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "1.2.3", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.2.3", + "version": "2.0.0", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index eedc5a0..dd32b2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "1.2.3", + "version": "2.0.0", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From d2ac3e510664a383d5085a8df6069d65c5247cc9 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 5 Jan 2022 12:05:36 +0900 Subject: [PATCH 04/23] v2.0.0 --- build/30x/install.zip | Bin 0 -> 3795 bytes build/30x/update.zip | Bin 4005 -> 4008 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 build/30x/install.zip diff --git a/build/30x/install.zip b/build/30x/install.zip new file mode 100644 index 0000000000000000000000000000000000000000..4e552394017e1bf0363ba991c034db56b2695223 GIT binary patch literal 3795 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 b2+KbZ|Ira`4P3mxe5^km^=A?T{%-#QS6gee literal 4005 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 From 7b135b14eafb5c91da534f956545f64fdef9e702 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 6 Jan 2022 19:57:45 +0900 Subject: [PATCH 05/23] =?UTF-8?q?=E7=B0=A1=E5=8D=98=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=83=87=E3=83=BC=E3=83=88=E3=82=92v3=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/update/readme.txt | 13 +-- 30x/update/update.php | 211 ++++++++++++++++++++---------------------- 2 files changed, 106 insertions(+), 118 deletions(-) diff --git a/30x/update/readme.txt b/30x/update/readme.txt index f787b4a..07b91b8 100755 --- a/30x/update/readme.txt +++ b/30x/update/readme.txt @@ -1,9 +1,8 @@ - # 簡単アップデートについて 「簡単アップデート」を利用すると 10KB程度の PHP ファイルをアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのアップデートが可能です。 -2.8.x にすることで、今後は管理ページから可能です。 2.7.x までの環境でご利用ください。 +2.x から 3.0.x にアップデートする際に利用ください。 ## 利用できるサーバー @@ -13,23 +12,25 @@ ## 設定方法 -以下のように設定が空であれば、バージョンを自動で取得します。 +アップデートバージョンを指定する場合は「$ablogcmsVersion」を指定ください。 +( 最初の # を消すと有効になります) ``` -$ablogcmsVersion = ''; +#$ablogcmsVersion = "3.0.0"; ``` 利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) systemはアップデート対象になりますので指定しないでください。 ``` -#$useThemes = "blog2016"; # "site2015|blog2015"; +#$useThemes = "blog2020"; # "site2020|blog2020"; ``` + ## 利用方法 上記の設定を行った後に、サーバーにアップロードして、ブラウザ上からアクセスしてください。 これまでのファイルは backup_yyyymmddhhmmss ディレクトリに移動してバックアップしておいてくれます。 - +もし、途中でエラーになった際には、update.lock というファイルが作られます。再実行する際には update.lockファイルを削除してください。 \ No newline at end of file diff --git a/30x/update/update.php b/30x/update/update.php index c17e137..ae6dfaf 100755 --- a/30x/update/update.php +++ b/30x/update/update.php @@ -1,20 +1,17 @@ 2.11.x update +// a-blog cms 2.x -> 3.x update // // -------------------------- -# 今後は、このアップデートを利用することなく管理ページから -# 可能になります。 - -$ablogcmsVersion = ""; #サイトからバージョンを自動チェック +# 今後は、このアップデートを利用することなく管理ページから可能になります。 -# ERROR になる場合や 2.11系のバージョンを -# 指定したい場合には、バージョンを設定してください。 - -#$ablogcmsVersion = "2.11.0"; +#$ablogcmsVersion = "3.0.0"; #バージョンを指定する際には行頭の # を削除してください。 // -------------------------- @@ -23,18 +20,16 @@ # 継承しているテーマは全て含まれます。 # systemはアップデート対象になりますので指定しないでください。 - -#$useThemes = "blog2016"; # "site2015|blog2015"; - +#$useThemes = "blog2020"; # 複数の場合には | で区切って "site2020|blog2020"; // -------------------------- // 二重実行防止処理 // -------------------------- -$lockFile = realpath('.') . "/update.lock"; +$lockFile = realpath('.'). "/update.lock"; if (is_file($lockFile)) { - echo "lockFile:" . $lockFile; + echo "lockFile:".$lockFile; exit; } else { touch($lockFile); @@ -45,7 +40,7 @@ // -------------------------- if (!$ablogcmsVersion) { - $check = download_version_check(); + $check = download_version_check (); if ($check) { $ablogcmsVersion = $check; } else { @@ -60,46 +55,32 @@ $ymdhis = date("YmdHis"); # ダウンロード元 URL -$download55 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.3.zip", $ablogcmsVersion, $ablogcmsVersion); -$download56 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php5.6.zip", $ablogcmsVersion, $ablogcmsVersion); -$download71 = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x_php7.1.zip", $ablogcmsVersion, $ablogcmsVersion); +$download = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s_update2x.zip",$ablogcmsVersion,$ablogcmsVersion); # ダウンロード後のZipファイル名 -$zipFile = sprintf("./acms_%s.zip", $ymdhis); +$zipFile = sprintf("./acms%s_update2x.zip",$ablogcmsVersion); # 解凍後の全体フォルダ名 -$zipAfterDirName55 = sprintf("acms%s_update2x_php5.3", $ablogcmsVersion); -$zipAfterDirName56 = sprintf("acms%s_update2x_php5.6", $ablogcmsVersion); -$zipAfterDirName71 = sprintf("acms%s_update2x_php7.1", $ablogcmsVersion); +$zipAfterDirName = sprintf("acms%s_update2x",$ablogcmsVersion); # 解凍後の a-blog cms のフォルダ名 $cmsDirName = "ablogcms"; +$installPath = realpath('.'); +$ablogcmsDir = $installPath."/".$zipAfterDirName."/".$cmsDirName; +$phpName = basename($_SERVER['PHP_SELF']); + // -------------------------- // バージョンチェック // -------------------------- $versionArray = explode(".", phpversion()); -$version = $versionArray[0] . "." . $versionArray[1]; - - -if ($versionArray[0] == 7 && $versionArray[1] > 0) { - $download = $download71; - $zipAfterDirName = $zipAfterDirName71; -} elseif ($versionArray[0] == 7 && $versionArray[1] == 0) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} elseif ($versionArray[1] >= 6) { - $download = $download56; - $zipAfterDirName = $zipAfterDirName56; -} else { - $download = $download55; - $zipAfterDirName = $zipAfterDirName55; -} +$version = $versionArray[0].".".$versionArray[1]; -$installPath = realpath('.'); -$ablogcmsDir = $installPath . "/" . $zipAfterDirName . "/" . $cmsDirName; -$phpName = basename($_SERVER['PHP_SELF']); +if ($version < 7.2) { + echo "Installation error. Please use PHP 7.2 or higher."; + exit; +} // -------------------------- // a-blog cms ファイルをダウンロード @@ -107,17 +88,17 @@ $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); + file_put_contents($zipFile, ""); + while(!feof($fp)) { + $buffer = fread($fp, 4096); + if ($buffer !== FALSE) { + file_put_contents($zipFile, $buffer, FILE_APPEND); + } } - } - fclose($fp); + fclose($fp); } else { - echo 'a-blog cms download Error ! : ' . $download; - exit; + echo 'a-blog cms download Error ! : '.$download; + exit; } // -------------------------- @@ -127,40 +108,41 @@ $zip = new ZipArchive(); $res = $zip->open($zipFile); -if ($res === true) { - $zip->extractTo($installPath); - $zip->close(); +if($res === true){ + $zip->extractTo($installPath); + $zip->close(); + } else { - echo 'a-blog cms unZip Error ! : ' . $zipFile; - exit; + echo 'a-blog cms unZip Error ! : '. $zipFile; + exit; } // -------------------------- // バックアップ // -------------------------- -$backupDir = "backup_" . $ymdhis; +$backupDir = "backup_". $ymdhis; # バックアップディレクトリを作成 mkdir($backupDir); # ファイルを移動 -if (is_file("./acms.js")) rename("./acms.js", $backupDir . "/acms.js"); -if (is_file("./index.js")) rename("./index.js", $backupDir . "/index.js"); -if (is_file("./500.html")) rename("./500.html", $backupDir . "/500.html"); -rename("./index.php", $backupDir . "/index.php"); +if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); +if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); +if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); +rename("./index.php", $backupDir."/index.php"); # ディレクトリを移動 -dir_shori("move", "./js", $backupDir . "/js"); -dir_shori("move", "./lang", $backupDir . "/lang"); -dir_shori("move", "./php", $backupDir . "/php"); -dir_shori("move", "./private", $backupDir . "/private"); -dir_shori("move", "./themes", $backupDir . "/themes"); - -if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir . "/cache"); -if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir . "/extension"); +dir_shori("move", "./js", $backupDir."/js"); +dir_shori("move", "./lang", $backupDir."/lang"); +dir_shori("move", "./php", $backupDir."/php"); +dir_shori("move", "./private", $backupDir."/private"); +dir_shori("move", "./themes", $backupDir."/themes"); +if (is_dir("./extension")) dir_shori("move", "./extension", $backupDir."/extension"); +#if (is_dir("./cache")) dir_shori("move", "./cache", $backupDir."/cache"); +dir_shori ("delete", "cache"); // -------------------------- // update版 ファイル&ディレクトリを移動 @@ -169,7 +151,7 @@ dir_shori("move", $ablogcmsDir, $installPath); # 運用中のものを利用するので新しいファイルは削除 -unlink($installPath . "/htaccess.txt"); +unlink($installPath ."/htaccess.txt"); // -------------------------- // カスタマイズ部分を戻す @@ -177,63 +159,69 @@ # themes を戻す if (isset($useThemes)) { - if ($handle = opendir($backupDir . "/themes")) { - while (false !== ($theme = readdir($handle))) { - if ($theme != "." && $theme != "..") { - if (preg_match("/" . $useThemes . "/", $theme)) { - if (is_dir("./themes/" . $theme)) { - rename("./themes/" . $theme, "./themes/" . $theme . "_" . $ablogcmsVersion); - } - dir_shori("copy", $backupDir . "/themes/" . $theme, "./themes/" . $theme); +if ($handle = opendir($backupDir."/themes")) { + while(false !== ($theme = readdir($handle))) { + if ($theme != "." && $theme != "..") { + if (preg_match("/".$useThemes."/", $theme)) { + if (is_dir("./themes/".$theme)) { + rename ("./themes/".$theme, "./themes/".$theme."_".$ablogcmsVersion); } + dir_shori ("copy", $backupDir."/themes/".$theme, "./themes/".$theme); } } - closedir($handle); } + closedir($handle); +} } # /php/ACMS/User を戻す -rename("./php/ACMS/User", "./php/ACMS/User_" . $ablogcmsVersion); -dir_shori("copy", $backupDir . "/php/ACMS/User", "./php/ACMS/User"); +rename ("./php/ACMS/User","./php/ACMS/User_".$ablogcmsVersion); +dir_shori ("copy", $backupDir."/php/ACMS/User", "./php/ACMS/User"); # php/AAPP を戻す -rename("./php/AAPP", "./php/AAPP_" . $ablogcmsVersion); -dir_shori("copy", $backupDir . "/php/AAPP", "./php/AAPP"); +rename ("./php/AAPP", "./php/AAPP_".$ablogcmsVersion); +dir_shori ("copy", $backupDir."/php/AAPP", "./php/AAPP"); # /private/config.system.yaml を戻す -rename("./private/config.system.yaml", "./private/config.system_" . $ablogcmsVersion . ".yaml"); -copy($backupDir . "/private/config.system.yaml", "./private/config.system.yaml"); +rename ("./private/config.system.yaml", "./private/config.system_".$ablogcmsVersion.".yaml"); +copy ($backupDir."/private/config.system.yaml", "./private/config.system.yaml"); # /extension を戻す -if (is_dir($backupDir . "/extension")) { - rename("./extension", "./extension_" . $ablogcmsVersion); - dir_shori("copy", $backupDir . "/extension", "./extension"); +if (is_dir($backupDir."/extension")) { + rename ("./extension","./extension_".$ablogcmsVersion); + dir_shori ("copy", $backupDir."/extension", "./extension"); } // -------------------------- // .htaccess の設定 // -------------------------- + +rename("./htaccess.txt", './htaccess_'.$ablogcmsVersion.'.txt'); + rename("./private/htaccess.txt", './private/.htaccess'); rename("./themes/htaccess.txt", './themes/.htaccess'); rename("./cache/htaccess.txt", './cache/.htaccess'); +rename("./editorconfig.txt", './.editorconfig'); +rename("./env.txt", './.env'); +rename("./gitignore.txt", './.gitignore'); // -------------------------- // php.ini があった時の処理 // -------------------------- -if (is_file("./php.ini")) { - copy("./php.ini", "./setup/php.ini"); +if ( is_file( "./php.ini" )) { + copy("./php.ini", "./setup/php.ini"); } // -------------------------- // ファイルの削除 // -------------------------- -unlink($zipFile); -unlink($phpName); +#unlink($zipFile); +#unlink($phpName); # プログラム以外のディレクトリを削除 -if (is_file("./index.php")) { +if ( is_file( "./index.php" )) { dir_shori("delete", $zipAfterDirName); } else { echo "update error!"; @@ -253,8 +241,7 @@ // ディレクトリを操作 function ( move / copy / delete ) // -------------------------- -function dir_shori($shori, $nowDir, $newDir = "") -{ +function dir_shori ($shori, $nowDir , $newDir="") { if ($shori != "delete") { if (!is_dir($newDir)) { @@ -267,18 +254,18 @@ function dir_shori($shori, $nowDir, $newDir = "") while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { if ($shori == "copy") { - if (is_dir($nowDir . "/" . $file)) { - dir_shori("copy", $nowDir . "/" . $file, $newDir . "/" . $file); + if (is_dir($nowDir."/".$file)) { + dir_shori("copy", $nowDir."/".$file, $newDir."/".$file); } else { - copy($nowDir . "/" . $file, $newDir . "/" . $file); + copy($nowDir."/".$file, $newDir."/".$file); } } elseif ($shori == "move") { - rename($nowDir . "/" . $file, $newDir . "/" . $file); + rename($nowDir."/".$file, $newDir."/".$file); } elseif ($shori == "delete") { - if (filetype($nowDir . "/" . $file) == "dir") { - dir_shori("delete", $nowDir . "/" . $file, ""); + if (filetype($nowDir."/".$file) == "dir") { + dir_shori("delete", $nowDir."/".$file, ""); } else { - unlink($nowDir . "/" . $file); + unlink($nowDir."/".$file); } } } @@ -294,20 +281,20 @@ function dir_shori($shori, $nowDir, $newDir = "") return true; } -/** - * Version 2.11.x のチェック用 - * 正常にチェックできない場合には 空 でかえす。 - */ -function download_version_check() -{ - $options['ssl']['verify_peer'] = false; - $options['ssl']['verify_peer_name'] = false; - $html = file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); - preg_match('/"; + foreach($error_msg as $msg) { + echo sprintf("

%s

",$msg); + } + } + + + +} + +exit; +?> + + + Date: Tue, 5 Apr 2022 16:52:42 +0900 Subject: [PATCH 21/23] 2.0.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6079319..2f78617 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.5", + "version": "2.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.5", + "version": "2.0.6", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index 116caa4..d1c0bcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.5", + "version": "2.0.6", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From 5e72dd0695bbc5fccb29db092e13356a4ed3aaef Mon Sep 17 00:00:00 2001 From: atsu666 Date: Tue, 5 Apr 2022 16:52:43 +0900 Subject: [PATCH 22/23] v2.0.6 --- build/30x/install.zip | Bin 3807 -> 6066 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/install.zip b/build/30x/install.zip index 2a01e1c605a8b69be619fcb83b065f762fb04624..5a1cb6bcb9b4422fb8963bccac53467fd143ce7e 100644 GIT binary patch delta 5961 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 S0g?h2lbjb220{)10002moBnYC From 8754f25e63bde1fd96f14115b32bea13fd7e46fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 07:53:48 +0000 Subject: [PATCH 23/23] Bump lodash from 4.17.15 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21) --- updated-dependencies: - dependency-name: lodash dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f78617..fd092bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -265,9 +265,10 @@ } }, "node_modules/lodash": { - "version": "4.17.15", - "dev": true, - "license": "MIT" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/minimatch": { "version": "3.0.4", @@ -601,7 +602,9 @@ } }, "lodash": { - "version": "4.17.15", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "minimatch": {

(.*)<\/a><\/h1>/', $html, $matches); +function download_version_check () { + + // Version 3.0.x のチェック用 + // 正常にチェックできない場合には 空 でかえす。 + + $options['ssl']['verify_peer']=false; + $options['ssl']['verify_peer_name']=false; + $html=file_get_contents('https://developer.a-blogcms.jp/download/', false, stream_context_create($options)); + preg_match('/

(.*)<\/a><\/h1>/',$html,$matches); if (is_numeric($matches[2])) { - return "2.11." . $matches[2]; + return "3.0.".$matches[2]; } else { return; } + } From d13d8b149771408b0b2ff60d56a351893760e262 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 6 Jan 2022 19:58:06 +0900 Subject: [PATCH 06/23] 2.0.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d72ab54..c787fff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.0", + "version": "2.0.1", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index dd32b2a..f8b5819 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.0", + "version": "2.0.1", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From 0aa4aacaa0191c7391b32e71d9973868a1ac871c Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 6 Jan 2022 19:58:07 +0900 Subject: [PATCH 07/23] v2.0.1 --- build/30x/update.zip | Bin 4008 -> 3984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/update.zip b/build/30x/update.zip index a18379dde59dbd513cd51944251302cf8b770969..9c4dbd72561956d0ee47bb9476d44f8ff2ad929c 100644 GIT binary patch delta 3871 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 F008wOT?GID From f3b2cf269256200a74c9cd11cc91e0639ae9f1c9 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 13 Jan 2022 17:47:56 +0900 Subject: [PATCH 08/23] =?UTF-8?q?=E7=B0=A1=E5=8D=98=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=83=87=E3=83=BC=E3=83=88=E3=81=A7omake=E3=81=AB?= =?UTF-8?q?=E3=81=82=E3=82=8Blicense.php=E3=82=92=E8=A8=AD=E7=BD=AE?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/update/readme.txt | 5 +++-- 30x/update/update.php | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/30x/update/readme.txt b/30x/update/readme.txt index 07b91b8..9c26298 100755 --- a/30x/update/readme.txt +++ b/30x/update/readme.txt @@ -26,11 +26,12 @@ systemはアップデート対象になりますので指定しないでくだ #$useThemes = "blog2020"; # "site2020|blog2020"; ``` - ## 利用方法 上記の設定を行った後に、サーバーにアップロードして、ブラウザ上からアクセスしてください。 これまでのファイルは backup_yyyymmddhhmmss ディレクトリに移動してバックアップしておいてくれます。 -もし、途中でエラーになった際には、update.lock というファイルが作られます。再実行する際には update.lockファイルを削除してください。 \ No newline at end of file +もし、途中でエラーになった際には、update.lock というファイルが作られます。再実行する際には update.lockファイルを削除してください。 + +license.php が 開発用になりますので、本番環境の場合には MYPAGE より 3.0 対応版のライセンスをダウンロードください。 \ No newline at end of file diff --git a/30x/update/update.php b/30x/update/update.php index ae6dfaf..8d45ff4 100755 --- a/30x/update/update.php +++ b/30x/update/update.php @@ -130,8 +130,11 @@ if (is_file("./acms.js")) rename("./acms.js", $backupDir."/acms.js"); if (is_file("./index.js")) rename("./index.js", $backupDir."/index.js"); if (is_file("./500.html")) rename("./500.html", $backupDir."/500.html"); + rename("./index.php", $backupDir."/index.php"); +rename ("./license.php", $backupDir."/license.php"); + # ディレクトリを移動 dir_shori("move", "./js", $backupDir."/js"); @@ -150,8 +153,8 @@ dir_shori("move", $ablogcmsDir, $installPath); -# 運用中のものを利用するので新しいファイルは削除 -unlink($installPath ."/htaccess.txt"); +# 3.0対応 ライセンスファイル に上書き(ライセンス切れになります) +rename ($installPath."/".$zipAfterDirName."/omake/license.php", "./license.php"); // -------------------------- // カスタマイズ部分を戻す @@ -217,8 +220,8 @@ // ファイルの削除 // -------------------------- -#unlink($zipFile); -#unlink($phpName); +unlink($zipFile); +unlink($phpName); # プログラム以外のディレクトリを削除 if ( is_file( "./index.php" )) { @@ -296,5 +299,4 @@ function download_version_check () { } else { return; } - } From 4ff36c2e72e7b24850eb857b767c6d82a174bd0b Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 13 Jan 2022 17:48:14 +0900 Subject: [PATCH 09/23] 2.0.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c787fff..f25dc63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.1", + "version": "2.0.2", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index f8b5819..f10e587 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.1", + "version": "2.0.2", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From ae7587925ba7849b4f9ad77845ae890f5721ac77 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Thu, 13 Jan 2022 17:48:15 +0900 Subject: [PATCH 10/23] v2.0.2 --- build/30x/update.zip | Bin 3984 -> 4121 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/update.zip b/build/30x/update.zip index 9c4dbd72561956d0ee47bb9476d44f8ff2ad929c..6e4f9da73ad767f028f812b085a960c18e69001f 100644 GIT binary patch delta 4006 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 From d6b539cd0540839b67a1a9c759e0a78414fcaa1d Mon Sep 17 00:00:00 2001 From: atsu666 Date: Fri, 14 Jan 2022 19:56:48 +0900 Subject: [PATCH 11/23] =?UTF-8?q?=E6=96=87=E8=A8=80=E3=82=92=E8=AA=BF?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/update/readme.txt | 4 +++- 30x/update/update.php | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/30x/update/readme.txt b/30x/update/readme.txt index 9c26298..510f2fa 100755 --- a/30x/update/readme.txt +++ b/30x/update/readme.txt @@ -12,8 +12,9 @@ ## 設定方法 -アップデートバージョンを指定する場合は「$ablogcmsVersion」を指定ください。 +アップデートバージョンを指定する場合は「$ablogcmsVersion」を指定ください。 ( 最初の # を消すと有効になります) +指定しない場合、最新バージョンにアップデートされます。 ``` #$ablogcmsVersion = "3.0.0"; @@ -21,6 +22,7 @@ 利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) systemはアップデート対象になりますので指定しないでください。 +指定したテーマ名が入る、テーマも対象になります。(例: site2020を指定した場合、sp@site2020 や blog@site2020 も対象になります) ``` #$useThemes = "blog2020"; # "site2020|blog2020"; diff --git a/30x/update/update.php b/30x/update/update.php index 8d45ff4..ba1d1f9 100755 --- a/30x/update/update.php +++ b/30x/update/update.php @@ -11,13 +11,16 @@ # 今後は、このアップデートを利用することなく管理ページから可能になります。 -#$ablogcmsVersion = "3.0.0"; #バージョンを指定する際には行頭の # を削除してください。 +# アップデートバージョンを指定する場合は「$ablogcmsVersion」を指定ください。 +# 指定しない場合、最新バージョンにアップデートされます。 + +#$ablogcmsVersion = "3.0.0"; # バージョンを指定する際には行頭の # を削除してください。 // -------------------------- # 利用しているテーマを指定します。 # 複数あれば | で区切って指定してください。 -# 継承しているテーマは全て含まれます。 +# 指定したテーマ名が入る、テーマも対象になります。(例: site2020を指定した場合、sp@site2020 や blog@site2020 も対象になります) # systemはアップデート対象になりますので指定しないでください。 #$useThemes = "blog2020"; # 複数の場合には | で区切って "site2020|blog2020"; From cd54b6f2c9bd3eddfc866b9b5240abf5b8ab82ff Mon Sep 17 00:00:00 2001 From: atsu666 Date: Fri, 14 Jan 2022 19:58:38 +0900 Subject: [PATCH 12/23] 2.0.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f25dc63..29c8a87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.2", + "version": "2.0.3", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index f10e587..034cbba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.2", + "version": "2.0.3", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From 26a1e5a8b4e3dcad5a3481b5e4d3be396db801d8 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Fri, 14 Jan 2022 19:58:39 +0900 Subject: [PATCH 13/23] v2.0.3 --- build/30x/update.zip | Bin 4121 -> 4294 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/update.zip b/build/30x/update.zip index 6e4f9da73ad767f028f812b085a960c18e69001f..91da10898aed13b23f7e66ea3529dde7557d034a 100644 GIT binary patch delta 4189 zcmV-j5TfsyAjTmLP)h>@6aWYS2mrHIE|Co1n&@E^mR0r*YGN1z?;05oz=oO%f#y{*m zf2o1Cq4J=b{3!nQ=e=6qTpWNJa`vlP30;D!KS@b>7V^CGje|T?so=e( zbM=%EGt)myP#!8PKc0@;AN5HuxwEUCe`lb2)axVAo~4z6r=$=f7L(C`RZxM+s=sY> z8_+EwK9Hb8OUwtYgN}N|6Z2d%8KuIPZ_#7We(l&acDkGA-P4i~6Ub@C=caWP`V^|z z4IY}tPB;#;_m|o5K}~qUoq3ilk#xUvesY&q9>5MSx;@sAcu#iAp7DR@0mdYQf4=q^ zk!sy?*5uBuLyn+wpf+gxeG$QIfsR0#L0yl!Wv{z=f?FhMqRJ(xAjGr7nVXvvvD>8O zCvu8M6`#5*_=1Q;xBj6F>#o;<}X;R_@rHHP`ue(MdWkPl8`_wW+%@CZ{6cUv7@W84Y(M zvT^4u*RMSVH3suh#eO9Ky(>ZSzmL zm-X#%4*Bz;E^Wr0^G8H`{F%_F&_hFvZP&k0O9u#w^QSRw0{{Tv5C#AMP)h>@6aWYS z2msGkE|Co!e|2zVVRU6KaAM-u)%zoIXgIRMC0j4=F2B0-2tx+lakX>t(yJTysehgN57HqrBnG5W zh%Sb6pU3NIU0~Ptz2KYci4mjl^8V89wa3&Cm~oHc98iC)v;4HvUZVaz>OT-X*Q3!W ze+av`sI)7 zd}FTtw}=F2a2_xU#FhR>yxzVjjeh&|of00?|687PF4?9nnUoEY4Hg97j{o~)ekACPZ zJ=j~lFf3X!)rK*1)T$CFfJ5}Et$U`DRkJx2WR2Gh6-nfANwO-SSZ=9eRf!Vw<#O<) z1V9Y40dgelkgUc8Sp)~gM@T$<%&ro=at99oA0I3?!-NK1nP zZ~`P3+z|QgEIG|09zyZJ#S_PAII4_Hkq-eDhPw)D0E>j(8$qZ2Ov=pH%BF=ei9JA( zKdY7Bw_G_l&Z=)uQ|f%xf=`Ygf0Hti)ldM}cC5NrQDp2-hcvBBW=XYS6Q{dFm2BOZ z(Wi;_J6F?i!PrXT4mz*I8O&9dEPq)%wo!uh|g~X={VF7Na93Djsp(vz(9ge;VdWd{oNH zUJH8<>51NJG!RcSYHo6n95p!1z>HOQJ-u2j>YkZS*l{WL?R%Dk5hoCtODbWnR zn4C5)Wo*+94Lq&8q^{S9k|~{-JpSqA@sru&`^D0U$zw;er_iQhP^72z{f3mxgn2OG zIQl#kfXvy|MwuwGD(AsAf9-Hv$>qkSh!!mt*-nm~Qe{raKN;tO%f((RO0sG7_oQ>!Q2-h4so-Tsn}3} zO2Z~~CC=A8$PQ*VD@+v|MhXQuI&tj8WK^H9gqQ55S27xPkJLR^e~Gdv4>EFM!8vPU zp&zM`Mn%a~?6A<|4nXE~vr-`#Wfh0$W!%rhAIARjr;rzE*y$l%j|N-}z?(D)56Q#P z4~|WiCW^($kKPmHFEB0n-xZ_Ua0yehtIvc5HY>P1E^3olU10{{2wJ*g|MB4-D{P1`B*AGQG$E4^-nyi)uyeVe`s)Z=lQMO_Nr8yDO-+` ziRJRzoVvKZwP&5n*SgS-%o~b&#+7q9aCl)97W0tERAttD7%fl12s6p5X4T7Nu18F~ znvxT*hq){W`s3J`YI?P5w?6S|N>IFx1}Exs`L=1xDf(n1VE{!|HQ_;<<`K6dzxKI_ z(7RIEa!Rh*e{d{Ct~F+foCjIe&bVo*=<)IX#8tgMohD~%gBbc4ic15@9cxziP_wSf zwZr8>Y#zh^X|8Y;9fNhza!VMAvZ|3ekJRzyiZ|KUDG5bNlVl?|E{%4JHFU!y14Z)P zl(>*Z@HQxNnN$h$fgEoSNn1?=4*B*jwn0p-*V`BRf97Tw5pTv5eL_HlJNYiO!^7_# zb&OA9fVLhYUJRbGS;8-(Qb7HUohO%ezk5RcmDk(t6e+%c@wwkMw!l{;Pa^25u!BHW zqo&W0RO+O12{nGR12he2ut9@gXz(j-eb4N9`l_|wXP3ELslrJC*;rosSi{M<&@=R?+5d;~(0WaAnm6lTA= zC?Txttj?tfS#e6Osd7nH;}{IbPd)Gib%?VXe-znh*z^5sL#$Q5!(zD!=)qsCjf<|u zck}|j>NMN5wTX8>JfVH!5=Xf3C~#%9n?%m1SNfYb%$Tloc~$RT;>pR@CW^&3Xf{zS z3j7nr;{Tygk1VYE%uT$SYeu79v8Gi%8dB%=T6KVC1L;Fu`|bBpT$R}&s0M}v2%toj zf3>j3^wH`Kr^Eu$uDCY{W(XaktE0uV*e?)B3Ne!GVSL2@>SGZL(P7aM3*dGn|IF=g z0;HOrZWzRMf%=;-*B^B@Zw@PZ3EYWzRd3Fd^N>}wXr+|x$z(N)WLXT8L_%~g5nm!H z+KClJ&V(_n9lda&SxmDFdux2G-7 znyxn-A`r!E%t1ptmu=drRkwip%Q$1kiSq5;8v*q<_cx`)$b|^~B2Wwk$`F@u%p$~7 z(GIJkF7cXnytL046X5}B$Y$}wqO4i3TJ@Ru8J!!KqLpx@!s`wDgz|_6j}d3If9~u& z`>}KXTQ6-hn_g?LFp-McL=|fIn%7+W7zeal0)pOZV)A!Na0)}56LX* z#Jk5oD1Kb}XyU_3HjXlhUM7wre;;cYY;bc3WKe-g+@I$CUX8n7uk1X(1(jyqV8b8< z@TmeCu#&9-2gi^bW>_pBz9&#J?D3O_OucayU%2>-;ID$rKuBEqm3 z3878M8Ycrl_|oMfL-c@%VL=K7$DHi=m=mRDdSM?|GNuZLL!c-b9N_fBe|QW7GBg+| z9KkWpA^<)nq6hEAEvjo~;Pr3wloDgKGCAi-kXxP&XdiexFqUtEZg zNPL0+&1z71p$YFk#IfOxD4JbEVmNytrwtFg%Wpo9E1x3NQI8{=53<%oRkB+ zm9pgsFg@ZF{2ad_djts6f5wP!fNP^_n!c;_#fYAae{;}`!Ou_W1DkQ9D?fOCG6R|S z;oLb8)>8g*Y7B*kX@a9MmS_&~nogZf=or393c;Z7N$@2msHQ>qpaA@oJcnpU{G_$_ z%{r&reRQw$$EwViY(kvusRB!4H0e!rCHz*(~hnh1mDZ1f)-27Ez^#Hw#1r!j2<1ONcw29uW$H6PDbE>wtS nT?;o1004|4000#L0000000000AOP)wu#@W#C@6aWYS2msbaEs+f;e^lR36ImF2zkkII^WNd=B**T0<{GKZHJl_CXEM2526%DFnRWn-{%BsEYBo;%5

?}HZ}$_D;wRazdB%UiBg{xH`_bo`e-yQA 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 Date: Fri, 14 Jan 2022 20:05:04 +0900 Subject: [PATCH 14/23] =?UTF-8?q?=E5=BE=AE=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/update/readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/30x/update/readme.txt b/30x/update/readme.txt index 510f2fa..5a20170 100755 --- a/30x/update/readme.txt +++ b/30x/update/readme.txt @@ -22,7 +22,7 @@ 利用しているテーマを設定ください。 ( 最初の # を消すと有効になります) systemはアップデート対象になりますので指定しないでください。 -指定したテーマ名が入る、テーマも対象になります。(例: site2020を指定した場合、sp@site2020 や blog@site2020 も対象になります) +指定したテーマ名を含むテーマも対象になります。(例: site2020を指定した場合、sp@site2020 や blog@site2020 も対象になります) ``` #$useThemes = "blog2020"; # "site2020|blog2020"; From cbb002ed32b28edff3d4e8c2a55b18ca143a92e5 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Fri, 14 Jan 2022 20:05:19 +0900 Subject: [PATCH 15/23] 2.0.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29c8a87..b5eb463 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.3", + "version": "2.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.3", + "version": "2.0.4", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index 034cbba..f0c939f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.3", + "version": "2.0.4", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From a6333eecc10ea9a541bc1c6de3b921569e5c3284 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Fri, 14 Jan 2022 20:05:20 +0900 Subject: [PATCH 16/23] v2.0.4 --- build/30x/update.zip | Bin 4294 -> 4291 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/update.zip b/build/30x/update.zip index 91da10898aed13b23f7e66ea3529dde7557d034a..50ef10f63244d8e986e606288060e8fa04a11841 100644 GIT binary patch delta 952 zcmV;p14sPEA;TdIP)h>@6aWYS2mlROkqjz-Pa8)ReV<=3!g**a6}jXws?=1fTB(Y} zLsh9yg_u=9!NKZ+R7-u>J7bac2MTdx2*fQoL3qKzCL)daaNHkrJhpk_FI0EdYi#0F z>Z8Xq=bn4+xo2atdt5PVFQ8sQYv@hrC(uo3A5;VFfij?dA>b80dC^;gDjNTw`#b=D zZ9(Nhf&4Q5!#CX^Z_f8Ybvgb0w1h4}RiO5uYf#0Zibu9$7PJZ4heyyG&<9ZaQ13z2 zUM1-6or6lCmlk~&^bAy$vtK+|TzV)INmqjE(9gI9^_J1pDW8mKs$iZrdin#X%3M7q z#MI<(5|oF^$~%*B`=d7QC3kkY{Ss7vi+X(u+O@PY@RSrn#9}h~uL@dYvg&W!+&Xkq zh|eYHz!LL8tDwVf@z}i5Oh&2jxq z&YIkrb;u!94%7l|-4+qdCg>29>DTqBQ}#L=$GAa~#;RO`Duj4;I5RUdB6gFs{7O#n zsNxfM1z!-6=+-}!Vcqqr)%`E1VyGTyq&xY)yK~d-vXf*PKeCl+w0dtVH}v2+Q}u=> z)^{UBhE>}c&^GIKsn%;y-r$gbO)|EUr>>fQyOqCcZcBGz*_nz@#fMC=3ECM9!%cl1 zU6D{3$$l6<8DHY6nH5&+*sT@U`ElM!IxdfaUvssIyD}yxBH-VzkHY~C79;X-`!v@J zUV!TT;izJ-QUJYXrmX@i>Cy1+@X598{}mYR(_FaCd|x%7E}+i((K2d(0UiCo1af6T~~5Ks@KqO7+w3&hoD-wdSUXVei=5pwzZ>B z4U>&>VVtrRM_dl2_^C&i-t+e9k0=j}R#J1b%g*HDQsR*W1r~U9 zBx0%1{!oU>4wo{kYo@+`W2L^1Gf+bg!Hs~ZqRHkixAs0E;Nn8UdF(oqsri%y73Aec zzPoj9KLj-nfhZfoT>wYHn{H_kd-W)qYRuvO&(rt5`&L5vP&v+GX&No_Pq~}*?QjnG z+o3LOz@70IM0@;=&?nFXLyWA}zfemD2orItuxbMU0Nn-v08mS_vIB$+4GmZ>R1@6aWYS2mrHIkqjz-ZyQAveV<=3iu(XaL?%2|NPvVuLP&W) zNIa3$S&^u5W3h>ZB_8(9m~?Hg)zs8UlNu7YA$H=%P8F!~;hGak?yyz96ipD?eJ*k0z zwxRN%n*1pK_2<1>-dr4j8glllSqWW&szB{S*P)6d6_0JjENBaK0FR(Ip%0-Bpk9Nj z{YtI3e*r3io>}xg&|^?l&VP7sdF4l$NV*c#fPTy^s8@`p&iG_PQ-OKZ?CUq6Ds%Oe z5Hr(1OHdvvD?gr&+aL8wFS)a;ooAqbderM9(4M80fv2PpA{LX;e^pR{$*R9?a~set zAwH0xLrcsDt%Htw#S`;fGa04Amv7Ny(0=XMGXE>D7AbG50vGA5@Y;9qWz!x;^CBeHSl zEZ46+1vLiqQN?~G0KH(Q?SRGfXmow}2x}sOfD=eE+&(%D>)?93+R`Ou6^huP`y{ZH2Kn?40~PM z+EK2C;YPVIQQ3`SMu$@T)T1l!N$2d?Mna8KP`3uYvdV-3WOtd?QVa8|&h+w1;=Tmc zEb#hR%2LpIQ-;cpmNM&q1=HBIQr{#Rs3}L_#z0ijWOG;B`|l8Nc`4yMaGmMYVoHJn zd9|7EZC}`LL7j6TiidC=z-jQZR~jZ?BTA<_bNJ@_+0VZGLPGgaIgVp#nr-t>xtI0r za1QzNp)PI4o%2UTd;FQur_e(~jBVGyP)i30iu0#2Z36%R;06G*tOJJ(4YO7*REqPb aF>M0?0N|5A5L5xMla&xC1}YE$0001TuifYX From de5627acb5c95675f6bec9c2e3ac73a1b05de64e Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 2 Feb 2022 18:57:55 +0900 Subject: [PATCH 17/23] =?UTF-8?q?3.0=E7=B3=BB=E3=81=AE=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=89=88=E3=81=8C=E5=85=A5=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=80=81=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E3=82=92=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=A2?= =?UTF-8?q?=E3=82=A6=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/install/setup.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/30x/install/setup.php b/30x/install/setup.php index c06621e..a2ca9eb 100755 --- a/30x/install/setup.php +++ b/30x/install/setup.php @@ -6,9 +6,9 @@ // // -------------------------- -$ablogcmsVersion = '3.0.0'; #サイトからバージョンを自動チェック +# $ablogcmsVersion = '3.0.0'; # コメントすることで、3.0系の最新版にアップデートします。 -# ERROR になる場合や個別に 3.x系のバージョンを +# ERROR になる場合や個別に 3.0.x系のバージョンを # 指定したい場合には、バージョンを設定してください。 # # 2.x のバージョンについては 2.x系の簡単セットアップをご利用ください。 From 4548ff08e499a2eff1c32bbc02d6d961dd04f680 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 2 Feb 2022 18:58:11 +0900 Subject: [PATCH 18/23] 2.0.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b5eb463..6079319 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "acms-easy-setup", - "version": "2.0.4", + "version": "2.0.5", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.0.4", + "version": "2.0.5", "license": "MIT", "devDependencies": { "archiver": "^2.1.1", diff --git a/package.json b/package.json index f0c939f..116caa4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "acms-easy-setup", - "version": "2.0.4", + "version": "2.0.5", "description": "より簡単に、ご利用の環境に合わせて a-blog cms をアップデートできるパッケージです。", "main": "deploy.js", "scripts": { From 952ef4e1088080aee79771967cd518e102de9d03 Mon Sep 17 00:00:00 2001 From: atsu666 Date: Wed, 2 Feb 2022 18:58:12 +0900 Subject: [PATCH 19/23] v2.0.5 --- build/30x/install.zip | Bin 3795 -> 3807 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/build/30x/install.zip b/build/30x/install.zip index 4e552394017e1bf0363ba991c034db56b2695223..2a01e1c605a8b69be619fcb83b065f762fb04624 100644 GIT binary patch delta 3201 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 |p4c}?m6{{@3aULZ^nAKv zhGZnmlx|N*jf)+YlAn*Zt=G4T^4=JqE9*^i>&E6leD-<@T+rd9Au+N%3%|`B-gRnjKAl- z(OYTz?-6VDNluc@SAVH*1a;S^CAms$5)!m*R~^15-FEdXJ5=2-%ZE{V=c$WmAYv~9 z(-aJ{=c#uFyNXGmPFjq-7l@^N(lx};Sf~;@`;cj^kfiRt)xw~pJzF>{8UO~C4WkQ( zk)^{PuwyT79bkfc|wr zreXBCL_fXdfN+BYM}`yxDM?lm4B7IaiXamPbI`7x70wOjuh_lQL`K}9J6T_%PWO9G zEAXz*D9^I?%$~0n^j)Fm!)*U_l#@w5;XN*%*Cuewnv`)+_@k{av*Ww+d!@%u=9C7EOZr?-eu`kr` ze73Ru{3g_zj>WrECEz8O4wmbk1094ap*&)P+5FrJ3V#nBNLf0?+|>zYZc-6hI{`UuZ?r2kIK*m{?%)bBA`hYfN#>MwTEWK7rXibnbC z6utU!;qaD|;z>w9`E&Y|{_fL^!AUrb|N9vP-hY1|#K{(W7kOc7CcjZUbLdCN$0uRa zcX-Q=XQTT5{Sxel^h*)=jfmts1bNGP_w)Nmv-92U_LC<(OU}pe);ik2?>}^Ye*tzM zJOw_u&Z5hBjeRkeV81Tq=#< Date: Tue, 5 Apr 2022 16:52:11 +0900 Subject: [PATCH 20/23] =?UTF-8?q?CPI=E3=81=AB=E5=AF=BE=E5=BF=9C=20&=20UI?= =?UTF-8?q?=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 30x/install/readme.txt | 5 +- 30x/install/setup.php | 385 +++++++++++++++++++++++++++++++++++------ 2 files changed, 334 insertions(+), 56 deletions(-) diff --git a/30x/install/readme.txt b/30x/install/readme.txt index 9adcf64..a9c0fcf 100755 --- a/30x/install/readme.txt +++ b/30x/install/readme.txt @@ -1,6 +1,6 @@ # 簡単セットアップについて -「簡単セットアップ」を利用すると 10KB程度の PHP ファイル をアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードやファイルのリネーム作業などを自動化します。 +「簡単セットアップ」を利用すると 16KB程度の PHP ファイル をアップロードして、ブラウザで表示させるだけで a-blog cms のパッケージのダウンロードやファイルのリネーム作業などを自動化します。 # 動作環境 @@ -11,5 +11,4 @@ MySQL 5.x - / MariaDB インストールしたいディレクトリに setup.php をアップロードし、そのファイルをブラウザからアクセスください。 -しばらくすると、ブラウザ上にインストーラーが立ち上がります。 - +簡単セットアップ 画面が表示されますので、指示に従ってセットアップを完了してください。 diff --git a/30x/install/setup.php b/30x/install/setup.php index a2ca9eb..358e8f2 100755 --- a/30x/install/setup.php +++ b/30x/install/setup.php @@ -25,42 +25,165 @@ $dbUser = ''; $dbPass = ''; + // -------------------------- -// 特製テーマ設定 +// CPI向け PHP設定 // -------------------------- -// 標準テーマ以外でインストールする際には、以下の # を外して設定ください。 +# .htaccess で PHPのバージョン指定が必要です。 +# 動作させる PHP のバージョンを指定してください。 +# ACE01 2011 利用できません +# ACE01 2015 PHP 7.2 / 7.4 +# ACE01 2018 PHP 7.2 / 7.3 / 7.4 / 8.0 +# SV-Baisc PHP 7.2 / 7.3 / 7.4 / 8.0 + +$cpi_php_version = "8.0"; + +// -------------------------- +// 追加ファイルダウンロードURL +// -------------------------- -// ダウンロードファイル +$download_url = "http://www.a-blogcms.jp/_download/"; -# $theme_download = "https://www.a-blogcms.jp/_download/utsuwa.zip"; +// -------------------------- +// 特製テーマ設定 +// -------------------------- -// テーマ名 +#$theme_zip_file = "square.zip"; -# $theme_name = "utsuwa"; +# 特製テーマと拡張アプリのダウンロード先が違う場合には個別に設定ください。 +$theme_download_url = $download_url; // -------------------------- -// 現在の a-blog cms のバージョンをチェック +// 拡張アプリ設定 // -------------------------- -if (!$ablogcmsVersion) { +#$plugins_zip_file = "ShoppingCart_100.zip"; + +# 特製テーマと拡張アプリのダウンロード先が違う場合には個別に設定ください。 +$plugins_download_url = $download_url; + +// -------------------------- + +$error_msg = array(); + +if (!isset($ablogcmsVersion)) { $check = download_version_check(); if ($check) { $ablogcmsVersion = $check; } else { - echo "web site version check error."; - exit; + $error_msg[] = "web site version check error."; + } +} + +$versionArray = explode(".", phpversion()); +$version = $versionArray[0] . "." . $versionArray[1]; + +$server = gethostbyaddr($_SERVER['SERVER_ADDR']); +$cpi_check_array = explode( ".", $server ); +$cpi_check = ""; + +if (is_array($cpi_check_array) && count($cpi_check_array) > 1) { + $cpi_check = $cpi_check_array[1]; +} + +if ($cpi_check == "secure") { + if ($cpi_php_version) { + $moto_version = $version; + $version = $cpi_php_version; } + $cpi_htaccess_php = str_replace('.','', $version); +} + +$phpName = basename($_SERVER['PHP_SELF']); + +// -------------------------- +// 動作チェック +// -------------------------- + +if (is_file("./license.php")) { + $error_msg[] = "インストール先に license.php が見つかりました。
インストールを中止します。"; } // -------------------------- +// バージョンのチェック +// -------------------------- + +if ($version < 7.2 || $version >= 8.1) { + + if ($cpi_check == "secure") { + $error_msg[] = $phpName." の \$cpi_php_version で PHP のバージョンを指定ください。"; + } else { + $error_msg[] = "PHP 7.2.x - 8.0.x をご利用ください。"; + } +} # ダウンロード元 URL $download = sprintf("http://developer.a-blogcms.jp/_package/%s/acms%s.zip", $ablogcmsVersion, $ablogcmsVersion); - -# ダウンロード後のZipファイル名 $zipFile = sprintf("./acms%s.zip", $ablogcmsVersion); +$http_header = get_headers($download); +$httt_hedaer0_code = explode(" ",$http_header[0]); +if ( $httt_hedaer0_code[1] != "200" ) { + $error_msg[] = "a-blog cms のバーンジョン設定「".$ablogcmsVersion."」が間違っています。"; +} + +$installPath = realpath('.'); +$http_host = explode(":", $_SERVER['HTTP_HOST']); + +if (is_file($installPath."/".$zipFile) || is_file($installPath."/".$zipFile)) { + $_POST['action'] = ""; +} + + +?> + + + + + a-blog cms Ver. 3.x 簡単セットアップ + + + + +

a-blog cms Ver. 簡単セットアップ

+ +deny from all + +Options +SymLinksIfOwnerMatch +AddHandler x-httpd-php%s .php\n\n",$cpi_htaccess_php); + + $fp = fopen($installPath."/.htaccess",'w'); + fwrite($fp,$cpi_htaccess.$htaccess); + fclose($fp); + } } rename($installPath . "/editorconfig.txt", $installPath . '/.editorconfig'); @@ -216,6 +332,8 @@ unlink($zipFile); unlink($phpName); + + # index.html があった時にリネームしておく if (is_file("./index.html")) { rename("./index.html", "_index.html"); @@ -228,56 +346,217 @@ // 特製テーマファイルをダウンロード // -------------------------- -if ($theme_name) { +if (isset($theme_zip_file)) { - $zipThemeFile = $theme_name . ".zip"; - - $fp = fopen($theme_download, "r"); + $theme_name_version = explode(".",$theme_zip_file); + $theme_name_array = explode("_",$theme_name_version[0]); + $theme_name = $theme_name_array[0]; + $theme_zip_url = $theme_download_url . $theme_zip_file; + $theme_path = $installPath."/".$theme_name; + + $fp = fopen($theme_zip_url, "r"); if ($fp !== FALSE) { - file_put_contents($zipThemeFile, ""); + file_put_contents($theme_zip_file, ""); while (!feof($fp)) { $buffer = fread($fp, 4096); if ($buffer !== FALSE) { - file_put_contents($zipThemeFile, $buffer, FILE_APPEND); + file_put_contents($theme_zip_file, $buffer, FILE_APPEND); } } fclose($fp); } else { - echo 'theme ' . $theme_name . ' download Error ! : ' . $theme_download; + echo 'theme ' . $theme_name . ' download Error ! : ' . $theme_zip_url; exit; } $zip = new ZipArchive(); - $res = $zip->open($zipThemeFile); + $res = $zip->open($theme_zip_file); if ($res === true) { $zip->extractTo($installPath); $zip->close(); } else { - echo 'theme unZip Error ! : ' . $zipThemeFile; + echo 'theme unZip Error ! : ' . $theme_zip_url; exit; } - dir_shori("move", "./" . $theme_name . "/bin/" . $theme_name, "./setup/bin/" . $theme_name); - dir_shori("move", "./" . $theme_name . "/themes/" . $theme_name, "./themes/" . $theme_name); + dir_shori("move", $theme_path . "/bin/" . $theme_name, $installPath . "/setup/bin/" . $theme_name); + dir_shori("move", $theme_path . "/themes/" . $theme_name, $installPath . "/themes/" . $theme_name); + + rename( $theme_path . "/tpl/install.html", $installPath . "/setup/tpl/install.html"); + rename( $theme_path . "/img/" . $theme_name . ".jpg", $installPath . "/setup/img/" . $theme_name . ".jpg"); - rename("./" . $theme_name . "/tpl/install.html", "./setup/tpl/install.html"); - rename("./" . $theme_name . "/img/" . $theme_name . ".jpg", "./setup/img/" . $theme_name . ".jpg"); + $check_plugins = $theme_path."/plugins"; + if (is_dir($check_plugins)) { + if ($handle = opendir($check_plugins)) { + while (($file = readdir($handle)) !== false) { + if ($file != "." && $file != "..") { + if (is_dir($check_plugins."/".$file)) { + dir_shori("move", $check_plugins."/".$file, $installPath."/extension/plugins/".$file); + } + } + } + closedir($handle); + } + } dir_shori("delete", $theme_name); - unlink($zipThemeFile); + unlink($theme_zip_file); +} + +// -------------------------- +// 拡張アプリをダウンロード +// -------------------------- + +if (isset($plugins_zip_file)) { + + $plugins_array = explode("|",$plugins_zip_file); + + foreach($plugins_array as $plugins_zip) { + + $plugins_name_version = explode(".",$plugins_zip); + $plugins_name_array = explode("_",$plugins_name_version[0]); + $plugins_name = $plugins_name_array[0]; + $plugins_zip_url = $plugins_download_url . $plugins_zip; + + $fp = fopen($plugins_zip_url, "r"); + if ($fp !== FALSE) { + file_put_contents($plugins_zip, ""); + while (!feof($fp)) { + $buffer = fread($fp, 4096); + if ($buffer !== FALSE) { + file_put_contents($plugins_zip, $buffer, FILE_APPEND); + } + } + fclose($fp); + } else { + echo 'plugin download Error ! : ' . $plugins_zip_url; + exit; + } + + $zip = new ZipArchive(); + $res = $zip->open($plugins_zip); + + if ($res === true) { + $zip->extractTo($installPath); + $zip->close(); + } else { + echo 'theme unZip Error ! : ' . $plugins_zip; + exit; + } + + dir_shori("move", $installPath ."/". $plugins_name, $installPath."/extension/plugins/" . $plugins_name); + unlink($plugins_zip); + } + } // -------------------------- // インストーラーに飛ぶ // -------------------------- -$jump = str_replace($phpName, "", $_SERVER['SCRIPT_NAME']); -header("Location: " . $jump); +?> + +

セットアップ完了

-exit; +

a-blog cms のインストール準備が完了しました。

+

この ファイルについては削除済みです。

+
+ +
+ + +

a-blog cms のパッケージのダウンロードとファイルのリネーム作業を行います。

+ +

PHP バージョンチェック

+ +
  • Ver. "; + } + + echo phpversion(); + + if ($cpi_php_version && $cpi_check == "secure") { + echo " → ". $version . "(変更)"; + } + ?>
+ +Special Theme Install

"; + + +$check = $theme_download_url.$theme_zip_file; +$http_header = get_headers($check); +$httt_hedaer0_code = explode(" ",$http_header[0]); +if ( $httt_hedaer0_code[1] != "200" ) { + $error_msg[] = "特製テーマ「".$theme_name[0]."」のダウンロード先の情報が間違っています。"; + echo "
  • ".$theme_name[0]."
"; +} else { + echo "
  • ".$theme_name[0]."
"; +} +} + +if (isset($plugins_zip_file)) { + +$plugins_array = explode("|",$plugins_zip_file); +echo "

Plugins Install

"; +echo "
    "; + +foreach($plugins_array as $plugins_zip) { + + $plugins_name_version = explode(".",$plugins_zip); + $plugins_name = explode("_",$plugins_name_version[0]); + + $check = $plugins_download_url.$plugins_zip; + $http_header = get_headers($check); + $httt_hedaer0_code = explode(" ",$http_header[0]); + + if ( $httt_hedaer0_code[1] != "200" ) { + $error_msg[] = "拡張アプリ「".$plugins_name[0]."」のダウンロード先の情報が間違っています。"; + echo "
  • ".$plugins_name[0]."
  • "; + } else { + echo "
  • ".$plugins_name[0]."
  • "; + } +} +echo "
"; +} + + if (empty($error_msg)){ + ?> + +
+ +
+ + Error