[CodeIgniter] レンタルサーバーにCodeIgniterを30秒でインストールする
PHPでサイトを作る時は、大抵はCodeIgniterで作るのですが、毎回毎回、サーバーにCodeIgniterのファイルをアップロードするのが面倒だったので、インスーラーを作ってみました。
更新日: 2018.7.17公開日: 2017.9.25
自作CodeIgniterインストーラーのやってること
基本的には、手動でやってることをPHPプログラムにやらせてるだけです。ちなみに、本当に30秒で終わるかはサーバーの回線速度次第です。もっと早く終わることもあります。
流れとしては、
- 公式サイトから本体zipをダウンロード
- zipを展開
- CodeIgniter-{ver}というディレクトリができてしまうので、カレントディレクトリに移動
- 不要ファイルを削除
となっています。
前提として、
・system、fopen関数が使える
・カレントディレクトリにはindex.phpがない(上書きされます)
ということにご注意を。
自作CodeIgniterインストーラーでインストール
では、早速インストールしてみます。
CodeIgniterをインストールしたいディレクトリに、任意のファイル名(ci3-installer.phpなど)で下記のプログラムをアップロードします。
プログラム内の「任意のバージョン」のところは最新版を自分で記入してください。
<?php
$ziped_name = "ci3.zip";
$ver = "3.1.5"; //任意のバージョン
#
## 本体をダウンロード
#
if(!file_exists("./" . $ziped_name)){
echo "ダウンロードします。<br>";
$fp = fopen("https://github.com/bcit-ci/CodeIgniter/archive/" . $ver . ".zip", "r");
if ($fp !== FALSE) {
file_put_contents("./" . $ziped_name, "");
while(!feof($fp)) {
$buffer = fread($fp, 4096);
if ($buffer !== FALSE) {
file_put_contents("./" . $ziped_name, $buffer, FILE_APPEND);
}
}
fclose($fp);
}
}else{
echo "ダウンロード済みです。<br>";
}
#
## zipファイルを展開
#
echo "ファイルを展開します。<br>";
$zip = new ZipArchive;
if ($zip->open("./" . $ziped_name) === TRUE) {
$zip->extractTo('.');
$zip->close();
echo 'ファイルを展開しました。<br>';
} else {
echo 'ファイルの展開に失敗しました。<br>';
}
#
## move
#
echo '不要ファイルを削除します。<br>';
system('cp -Rp ./CodeIgniter-' . $ver . '/. ./');
system('rm -R ./CodeIgniter-' . $ver);
system('rm -R ./user_guide');
system('rm ./contributing.md');
system('rm ./composer.json');
system('rm ./readme.rst');
system('rm ./license.txt');
system('rm ./.editorconfig');
system('rm ./.gitignore');
system('rm ./' . $ziped_name);
echo '削除しました。<br>';
echo 'Codeigniter' . $ver . 'のインストールが完了しました。<br><br><a href="/">確認する</a>';
s
?>
あとは、example.com/ci3-installer.phpにアクセスすればインストール完了です。
ちなみに、このプログラムでは.htaccessに変更を加えてないためトップページしか動きません。適宜、.htaccessの編集もお忘れなく。
モダンな方法だとcomposerを使うんですが、レンタルサーバーだとcomposerが使えないシーンもあるかと思うので、そういった環境の方は使ってみてください。