アーカイブ

‘Programming’ カテゴリーのアーカイブ

hetemlのサイトデータ(ファイルとDB)のバックアップスクリプト

2014 年 8 月 14 日 コメントはありません

hetemlはちゃんとしたバックアップオプションがあるものの、ちょっと高い。
シェルスクリプトでファイルとMySQLのDBを丸っと保存しておけば、作業ミスの場合は復旧できる可能性が高まる。

ということで、シェルスクリプトを作ってみた。

まず、このコードを○○.shという拡張子で適当な場所(/apps 以下とか)に保存して、実行権限を与える。

#!/bin/sh

SITENAME=’MYSITE‘ # 保存するファイル名に付与するサイト名
WEBDIR=’/home/sites/heteml/users/○/○/○/○○○○○/web‘ # バックアップしたいファイルのあるディレクトリ

DBNAME=’_my_db_name‘ # My SQLのユーザー名およびDB名(hetemlは統一されている)
DBPASS=’DB_PASSWORD‘ # My SQLのパスワード
DBHOST=’HOST.heteml.jp‘ # My SQLのサーバー

SAVETO=’/home/sites/heteml/users/○/○/○/○○○○○/backup/‘ # バックアップファイルの保存先(非公開のディレクトリが望ましい。/webは危険)
PERIOD=14 # バックアップファイルの保存期限

TODAY=`date +%y%m%d`
EXPIRED=`date –date “${PERIOD} days ago” +%y%m%d`
DBFILE=”${SAVETO}/${TODAY}_${SITENAME}_db.tar.gz”
WEBFILE=”${SAVETO}/${TODAY}_${SITENAME}_web.tar.gz”

mysqldump –opt –host=${DBHOST} –user=${DBNAME} –password=${DBPASS} ${DBNAME} > db_backup.sql
tar zcvf ${DBFILE} ./db_backup.sql
tar zcvf ${WEBFILE} ${WEBDIR}

rm ./db_backup.sql
rm -f ${SAVETO}/${EXPIRED}_${SITENAME}_db.tar.gz
rm -f ${SAVETO}/${EXPIRED}_${SITENAME}_web.tar.gz

次に、hetemlの管理画面でcron設定を開き、日ごとにこのスクリプトが動くように指定する

各種設定はスクリプト内を参照されたし。

ただし、保存先が同じサーバーなので、ハードディスクがクラッシュするようなサーバーの障害時にはバックアップもろとも消える可能性があるので、定期的にダウンロードしたり、別サーバーに送るような仕組みが必要な点は注意が必要。

カテゴリー: Programming, TIPS

hetemlでownCloud 7をセットアップする

2014 年 8 月 12 日 コメントはありません

hetemlでownCloud使っている人がいるにはいるようです。
が、セットアップに関する情報がないのでメモ。

手順はシンプル。
普通に提供される方法(アーカイブのダウンロードやsetup-owncloud.php設置)だとURLやパスの指定でエラーがでるので以下の方法で設定。所要時間2分。

  1. SSHでhetemlにログインし、インストール対象のディレクトリに移動
  2. wget http://download.owncloud.org/community/owncloud-7.0.1.zip でアーカイブをダウンロード
  3. unzip owncloud-7.0.1.zip で解凍
  4. ブラウザでインストール対象のURLにアクセスすると設定画面になるので、管理者のアカウント設定、DB設定を行うだけ

ownCloudのDL用URLはhttps://- になっていて、hetemlだとうまくダウンロードできない。これはhetemlの仕様。setup-owncloud.phpによるインストールが失敗するのもこれが原因だが、httpに直してもzipの解凍で躓く。なのでsetup-owncloud.phpと同じことを若干置き換えてSSHで行うことですんなりインストールできる。

ただし、デフォルトのhetemlではhttpでの通信になり危険なので、httpsで運用するのがベスト。

カテゴリー: Gadget, Programming

Mac (OS X Mountain Lion) でApache & PHP を有効にし、Dropboxで同期する方法

2013 年 5 月 16 日 コメント 2 件

MacとWindowsを併用していて、それぞれデスク用とモバイル用に2台ずつある。
従来から、ApacheのDocument RootはDropbox内に入れておいて、WindowsでのみApacheを動かして開発していた。

最近、Adobe Museを使ったり、Coda2を試したりでMacでの開発環境も整えたいなと思い、Apache&PHPを使えるようにした。

続きを読む…

カテゴリー: Programming

hetemlのGitをMac(SourceTree)から使う & クライアントからpushで自動デプロイ

2013 年 5 月 14 日 コメントはありません

日頃の開発でバージョン管理を全くしておらず、ちまちまFTPでアップする作業も煩わしく、さらに複数端末(開発者は自分だけ)での開発をDropboxで同期している状態に不安を感じ、Git使ってみようかな、と思い立った。Githubにプライベートリポジトリ作れる$7/monthのアカウントを作ろうか、はたまたSqaleを契約しようか悩んでいたところ、何年も使ってきたhetemlがGitが使えるようになっていた。かなり前に。

そこで、hetemlGitでBare Repositoryをセットアップし、Mac用GitのUIを提供する SourceTree というアプリ(無料)で操作しつつ、クライアントからpushしたら自動的にhetemlのウェブサーバーにデプロイ(FTPでアップするのと同じ状態)する設定をしてみた。

初めての人には、ググっても理解が難しかったり、heteml&Mac&自動デプロイのケースが見つからなかったり、SourceTree使わずにGitインストールしてコマンド打てというものが多く取っつきにくいと思うけど、以下の流れで進めれば誰でもセットアップできると思う。

続きを読む…

カテゴリー: Programming

RSSから必要記事だけ抜き出してInstapaperやEvernoteに保存する collectopic

2012 年 11 月 6 日 コメントはありません

昔、RSSリーダーにキーワードハイライト機能付けて社内でのニュース配信に使っていたのですが、
そいつをゼロから作り直し、誰でも使えるようにしてみました。

http://collectopic.com/
collectopic動作イメージ

Facebookアカウントでログインして、設定画面でRSSの追加と、気になるキーワードを追加すると準備完了。
InstapaperEvernoteとの連携も設定画面でできます。

Instapaper使うと、クロスデバイスで既読管理ができるので、
移動中はiPhoneで、自宅ではiPadで、オフィスではPCで、といった使い方ができる。

というか、InstapaperやEvernoteと繋いでしまえば、collectopicにアクセスする必要はほぼ無い。

我ながらかなり便利。

英語のUIも作っているけど、もう半年放置…

 

PHP5とMySQLで作ってあって運用簡単で、
個人の興味を特定する情報になりえるので、面白いメディアに発展できる可能性あり。
これでサービス作りたい人にお譲りします。。。

カテゴリー: IT news, Programming

Evernote API に PHP から接続する全行程 (OAuth エクステンションを使わない)

2012 年 4 月 18 日 コメントはありません

EvernoteのAPIを使うには、OAuthとThriftという2つの技術を用いる必要がある。
PHPからEvernote APIに接続する際、自分が困ったのは OAuth エクステンションもThriftもインストールされていないサーバーでどうするかということ。

諸々調べた結果、うまく繋がるようになったのでメモ。
拾って来たコードを多用しているのだけど、どこで拾って来たか覚えていない…

とりあえず続きにコードを貼り付けておく。説明はインラインのコメントをご覧下さい。
ファイルのダウンロードはココをクリック。

赤いところだけ書き換えてください。

続きを読む…

カテゴリー: Programming