C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2014年7月31日木曜日

[PHP]csvへエクスポートする際の注意点

0:47 Posted by Unknown , No comments
井口です。

phpにexportする際の注意点を備考録。

・各項目の中のダブルコーテーションはシングルコーテーションに変更もしくはエスケープ
・各項目はダブルコーテーションで囲む
・ゼロバインディング(ゼロ埋め)する項目は、ダブルコーテーションで囲ったあとにイコール(=)を頭につける

$zero_binding_text='=' . '"' . sprintf("%05d", $target_text) . '"';

以上です。


--------------------------------------
弊社では独自管理画面によるシステム開発、Web制作など幅広く対応しております。
お気軽に問い合わせ下さい。
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社

2014年7月1日火曜日

[CSS][sass]source mapsの導入

17:06 Posted by Unknown , No comments
sass,compassを使って作業してたら
chromeのDeveloper Toolsでcssの確認した際に
どのscssファイルに記載しのか知りたくなることがあります。
そういう時のメモ

参考サイト
google chrome - Chromium: missing sass support - Stack Overflow
Sass - Compassのsourcemap出力 - Qiita

「souce map sass」で検索すると
いろんなサイトが出てきますが、古い記事が多いです。

chrome側の設定の話が出てきた時は古い記事です。

chromeのv30以降では標準でsassに対応してるらしいです。

手順
1. sassのアップデート
source mapへの対応はsassのv3.3.0以降のみとなるので、
まずそれをインストール
gem install sass -v '>=3.3.0alpha' --pre
結構時間かかりますが辛抱強く待ちましょう

---compassを使わない場合はこれで終了
sass --watch --sourcemap sass/styles.scss:styles.css

compassを使う場合は
Compassは現時点ではsourcemapの出力に正式対応していないのでalpha版をインストールする
2.compassのアップデート
gem install compass --pre

3.compassのconfig.rbに一文追加
sourcemap = true

以上でchromeのDeveloper Toolsにsassのファイル名・行番号が 出力されるようになります。


--------------------------------------
弊社では独自管理画面によるシステム開発、Web制作など幅広く対応しております。
お気軽に問い合わせ下さい。
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社

2014年6月17日火曜日

[Postfix]バーチャルドメイン環境下でメール受信でコマンド実行

0:57 Posted by 匿名 No comments
まず、バーチャルドメインでの注意点として virtual_alias_mapsに記述できるのはメールアドレスだけでコマンドは指定できない。 virtual_mailbox_mapsに登録しているメールアドレスでコマンドを実行する場合は、transport_mapsでパイプ渡しを行う。 main.cf
local_transport = local
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport
test@sample.com       local
/etc/aliases
test: "| echo hohoho  >> /tmp/test.txt"
sudo postmap /etc/postfix/transport
sudo newaliases
sudo /etc/init.d/postfix reload
これでtest@sample.com宛にきたメールを受信することでtest.txtにhohohoと書き込む

2014年4月24日木曜日

[proFtpd]ubuntu13.10でproFtpdの設定を

20:45 Posted by 匿名 , No comments
FTP サーバに主にvsftpdを使ってるんですが、
ubuntuを13.10にしたら、vsftpdを3.0.2が立ち上がらなくなりました。

特定のカーネル・vsftpdのバージョンでvsftpdがバグってクラッシュする(らしい)


設定をいじっても何をやっても立ち上がらないと、
やけになりつつ、うとうとしながらsyslogみたら、

BUG: Bad page map in process vsftpd ......

とか出てました。

調べてみると、同じような感じで困ってる人居ました
vsftpd not starting on EC2
After having the same issue, I can confirm that with vsftpd 3.02 and kernel versions 3.11.0-17 and 3.11.0-18 (just updated this morning) the FTP server crash at start.
あ、コレはほんとにどうにもならんかも・・と思って、
vsftpdあきらめ、proFtpdに移行することにしました。

proFtpdに移行


[設定メモ]
参考サイト
FTPサーバ(ProFTPD)の構築|パソコンおやじ
ProFTPD: cannot start neither in standalone nor in inetd/xinetd mode|Ubuntu Linux Tips and Tricks
ProFTPDの設定で"DefaultRoot"は複数書ける|suz-lab - blog

手順
・proftpdをapt-getでインストール(スタンドアロンタイプ)
・設定(proftpd.conf)をいじってinetdタイプに変更
・proftpd.confのその他の設定:パッシブモード、セキュリティ関係、DocumentRoot変更
・inetdタイプを動かす為にインストールと設定
sudo apt-get install openbsd-inetd
・inetd再起動
sudo /etc/init.d/openbsd-inetd restart
・/etc/inetd.confの設定追記
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
・proFtpdをリロードして起動
sudo service proftpd reload
sudo service proftpd restart

急ぎですがだいたい以上になります。

proFtpdで注意する点


・DocumentRootの設定は上から順に評価される
・proFtpdはリスタートでは設定を読み込まない(inetdタイプ)reloadして設定を読む事

vsfptdよりクセがなくていいかもですね。

--------------------------------------
弊社では独自管理画面によるシステム開発、Web制作など幅広く対応しております。
お気軽に問い合わせ下さい。
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社

2014年3月24日月曜日

[apache]apache2.4系の挙動

20:56 Posted by 匿名 , No comments
井口です。

ubuntuでapacheを不用意にapache2.4にアップデートさせてしまって困った話。
困った点
  1. sites-availableの下のファイルの名称規則が厳しくなった
  2. sites-availableのサイト設定の記述が変更になっている


sites-availableの下のファイルの名称規則が厳しくなった



今まではファイル名は自由に決めてよかったと思うんですが、2.4系から、デフォルトの設定では、
test-server.com.conf
みたいに、拡張子が.confでないと、読み込んでくれなくなってます。

この設定はapache側の設定で切り替える事が出来るようですが、これがデフォルトになったなら、自分のファイル名の決め方の方を変えなきゃな、ということで、気をつけるようにします。



sites-availableのサイト設定の記述が変更になっている


おなじみのこの書き方↓ が出来なくなっています。
 AllowOverride All
 Order allow,deny
 Allow from all
この書き方だと、
AH01630: client denied by server configuration:
ってエラーがでます。
対処の仕方は
 AllowOverride All
 Require all granted
これやると普通に読み込めました。

apache2.4系、まだまだいろんな違いがありそうです・・・


弊社では独自管理画面によるシステム開発、Web制作など幅広く対応しております。
お気軽に問い合わせ下さい。
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


=============
追記:アクセスを拒否する場合
Require all denied
=============
さらに追記:
Options は必ず+ or - で始めなきゃいけなくなったみたいです。
今まで+を付けなくても通ってたのに・・・
めんどくさー

2014年3月20日木曜日

[Yii][WordPress]WordPressとYiiを共存させる

12:13 Posted by 匿名 , , No comments
井口です。

WordPressとYiiを共存させてみた話です。

WordPressのプラグインをYii Frameworkを使って作るという事ではなく、
別管理画面をYiiで作り、WordPressの関数・レイアウトを使いながら、
WordPressから吐き出されるheaderやらfooterやらを
Yiiのレイアウトとして読ませるといった感じで進めました。


WordPress自体は、

require('wp-blog-header.php');
このファイルさえ読み込めば、WordPress内の設定やコンテンツをWordPressの関数を使って読み込めるようになるらしいです。
[参考にしたサイト]
外部の php クラスや関数から WordPressの関数あるいはタグを含めた API を扱う方法 : Wordpressをインストールしてみた


しかし普通にやると、
require_once($yii);
した後では、YiiとWordpressは関数のautoload機能でぶつかってしまいます。

class_exists($foo, false)
とすると、yiiはclassを探すのを辞めてくれるらしいですが、
WordPress内の、機関部分をclass_exists($foo, false)として行ったらなにか問題も起きそうです。
[参考にしたサイト]
Undesireable behaviour of class_exists - Yii Framework Forum

なので、今回した対処は簡単に、
--------------------------------------
1) WordPressのbootstrapを先に読む
require('wp-blog-header.php');
してから
require_once($yii);
する。
2) 管理画面とフロント部のエントリスクリプトを別に読む
→ 管理画面用にフロント部用に別々のエントリスクリプト(index.php)を用意してあげる。
--------------------------------------

これでうまく行きました。

あとは、WordPress内の適用されたheader.phpや、footer.phpを、レイアウトのviewスクリプトで直接requireするだけです。

// テーマから直接読み込む
require_once('....../header.php');

以上です

[追記]
エントリスクリプトをわけるのに、フォルダ分けとか考えてましたが、
よく考えたらmod_rewriteで分岐させれますね。。
以下の例は、faq/regist/* と recruit/regist/* へのアクセスはフロント、それ以外を 管理画面へ分岐する設定です。
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . index.php

#表ページ用 rooting
RewriteRule ^(faq|recruit)/regist/(.*)$ index.php

#管理画面ページ用 rooting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . admin.php
弊社ではWordPressのカスタマイズ案件、独自管理画面によるシステム開発、Web制作など幅広く対応しております。
お気軽に問い合わせ下さい。
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2014年3月15日土曜日

[Yii]リダイレクトについて

22:33 Posted by 匿名 , No comments
井口です。

Yiiでリダイレクトの書き方、ちょっと特殊です。以下メモ。

モジュール名:shop
コントローラ名:csv
アクション名:upload
パラメータ:shop_id=10

にリダイレクトさせる場合、コントローラのアクション内で、

  $this->redirect(array('csv/upload', 'shop_id'=>10));

ポイントは、
・arrayで渡してる点
・はじめの値が、'shop/csv/upload'ではなく、'csv/upload'としている事

arrayで渡すと、controller名、action名を解析してくれるみたいです。
あと、module名は省略しても、自動で察してくれるみたいです。
module名を指定する場合は、'/shop/csv/upload'と、module名の前に/スラッシュを付けるか、
  $this->redirect(Yii::app()->createUrl('/shop/csv/upload', array('shop_id'=>10)))
Yii::app()->createUrl()しちゃってください。

以上です。