カテゴリー別アーカイブ: プログラム

cakePHP 最初の設定

とりあえずダウンロードしてきたファイルをサーバーにアップした後に最初にやること。

1./app/tmpフォルダのパーミッション変更

    ※配下のフォルダ全てに権限を与えるため、-Rをつけるのを忘れずに

sshでappフォルダに移動

chmod -R 707 tmp

 

2./app/Config/core.php 修正

Configure::write(‘Security.salt’, ‘DYhG93bi〜英数字’);

Configure::write(‘Security.cipherSeed’, ‘768593〜数字’); 

2箇所の値を適当な値に変更(英数字、数字の部分)

 

3.database.php 修正

database.php.defaultをコピーか名前変更して、database.phpにする。

public $default = array(

‘datasource’ => ‘Database/Mysql’,

‘persistent’ => false,

‘host’ => ‘localhost’,

‘login’ => ‘user’,

‘password’ => ‘password’,

‘database’ => ‘database_name’,

‘prefix’ => ”,

//’encoding’ => ‘utf8’,

);

 

host,login,password,databaseをそれぞれ修正

 

これで、http://cakephpを置いた場所 でエラーがなくなっているはず。

CakePHP the rapid development php framework Home

PhpStorm エディタカラー変更

ずっとデフォルト(白背景)のまま使っていたけど、最近やたらと目が疲れるので、黒背景に変更することに。

[Preferences] – [Editor] – [Colors&Fonts]

Preferences

希望のものを選択して、画面右下の「OK」クリック。

ここでは、選択した状態の雰囲気が見れないみたいでちょっとわかりづらい・・

選択してから確認するしかなさそう。

 

と思ったけど、

PHPとか、Fontとかの画面なら、状態を見ながら変更出来そう。

Preferences

さらに、細かい設定も変更出来る。

 

エディタ以外の部分を変更するには、

[Preferences] – [Appearance & Behavior] – [Appearance]

Preferences と ManifestsController php sfm360 mani Dropbox MAMP dropbox htdocs sfm360 mani

Themeを変更して、右下の「OK」クリック

白背景(Default)か、黒背景(Darcula)の選択肢しかない。

とりあえず、黒背景にしておこう。

  

細かい設定はおいおい・・

 

ぐーぐる先生:http://qiita.com/Vexus2/items/4b2d9900018f0f50eaac

EC-cube サーバー移行

KAGOYAサーバーから、XSERVERへ移行

 

1.サイトのファイルをFTPアップ

htmlフォルダ、dataフォルダの2箇所

2.htmlフォルダにある define.php変更

・HTML2DATA_DIR  相対パスが通るように変更

3.ファイルのパーミッションを707に変更

html/install/temp/
html/user_data/
html/upload/
data/cache/
data/class/
data/Smarty/
data/logs/
data/downloads/

 

4.dataフォルダ>configフォルダ config.php

サイトのパス、DB情報、メール情報などを書き換え

 

5.DB作成

今回はpostgreSQLから、MySQLに変更しなくてはいけないので、

とりあえず新規インストールに使われる、installフォルダにある

・create_table_mysql.sql

・insert_data.sql

を使って初期状態を作った。

 

DBいろいろいじってるので、どうしよう・・

 

とりあえずここまでで、エラー画面ながらも、表示が出来るように。

 

管理画面にログインしようとすると、

「このウェブページにはリダイレクトループが含まれています」が出てログイン出来ない。

XSERVERの方はとりあえずsslなしなので、HTTPS_URLを変更したのだけど、

それがまずいのか?

config.phpのADMIN_FORCE_SSLの値を TRUE から、FALSEに変更することで解決。

グーグル先生:http://blog.bgbgbg.net/archives/609

 

いざ、ログイン。

出来るわけない。 DBがデフォルトだった(笑)

dtb_memberのデータをcsvでダウンロードして、XSERVERにてインポート

ログイン成功!

 

さぁ、ここからだ。

管理画面のデータバックアップ→リストアを使えば、Postgres->MySQLが簡単に行える・・との情報が・・

KAGOYAにある状態でバックアップしておいたので、バックアップ一覧には、Postgresのバックアップデータがある。

とりあえず、現状をバックアップして(MySQLのバックアップ)、リストアという動きを試してみることに。

バックアップは正常に動いたが、

リストアで、どうしてもシステムエラーになる・・・

どうやら EC-CUBE2.12以前のバージョンは、PHP5.5以上だと正しく動かないものがあるらしい。

ここからファイルをダウンロードし、解凍してTar.phpをゲットし、

http://download.pear.php.net/package/Archive_Tar-1.3.11.tgz

dataフォルダのmodule>Archive>Tar.phpを差し替える。

もう一度動かして見る。

リストア動いた〜!

グーグル先生:http://nob-log.info/2013/07/17/php5-5-ec-cube/

 

普通のバックアップ→リストアは正常に動くことを確認出来たので、

いよいよPostgresのバックアップをリストアしてみる。

ちなみに、カラム変更等も反映させていないので、カラムも揃ってない状態。

 

「リストアに失敗しました」  orz。。

でも、「エラーを無視してリストアする」とのボタンを発見したので、クリックしてみる

やっぱりダメそう。。

 

カラムが揃ってないのは、やはり無謀だったか。。

とりあえず、手作業でカラムを揃えて、再度リストア。

 

なんかいい感じ♪と思ったら、システムエラー

 

でも、admin.logを確認すると、DBのリストア自体は終わってる気がする・・

画面表示させてみると、 きたぁ〜!!

error.logを見ると、dropSequence [dtb_best_products_best_id] とかでエラーになってるっぽい。。

とりあえず放置しとこう・・

 

グーグル先生:http://pentan.info/php/eccube/backup.html

 

 

 

 

 

 

 

MAMP MySqlが起動しなくなった時

前に使った時は問題なく動いていたのに、
突然MAMPを起動しても、MySqlが起動しなくなった。

エラーログにいろいろ出てるけど、この辺が問題?
InnoDB: Check that you do not already have another mysqld process

前回使用したときにうまく終了出来ていなかったのかも。

ターミナルにて、MySQLサーバの全てのプロセスを一旦終了させるコメンドを打つ

$ killall -9 mysqld
特にエラーメッセージは出ず。

もう一回同じコマンドを打つと、
No matching processes belonging to you were found
になった。

うまく終了出来たみたい。

MAMPを起動してみると、無事MySqlが立ち上がった。
よかった〜

参考ありがとう:http://www.locomoco-dou.jp/archives/1120

cakephp2 DBやlocaleの変更が反映されない場合

なんど画面をリフレッシュしても反映されない時、キャッシュファイルを削除すると
あっさり表示される。

1.多言語対応(locale)変更が反映されない場合
/app/tmp/cache/persistent/cake_core_default_ja 削除

2.DB変更が反映されない場合
/app/tmp/cache/models のファイル削除(全消しで問題ない)

それでもダメなら!!!
/app/tmp/cache/persistent/myapp_cake_core_method_cache 削除

これでめでたしめでたし〜

参考ありがとう:http://culdesac.verse.jp/?p=119

MAMP MySQLのクエリログ出力設定

MySQLのクエリログを取りたい。

MySQLの起動用シェルスクリプト を修正。
/Applications/MAMP/bin/startMysql.sh

# /bin/sh
/Applications/MAMP/Library/bin/mysqld_safe –port=3306 –socket=/Applications/MAMP/tmp/mysql/mysql.sock –pid-file=/Applications/MAMP/tmp/mysql/mysql.pid –log-error=/Applications/MAMP/logs/mysql_error_log –log=/Users/user/Desktop/mysql_query.log &

最後の&の前に
–log=/Users/user/Desktop/mysql_query.log
↑ハイフン2つ
を追加する

ログファイルの場所、名前は任意。

MAMP再起動。
起動時に存在しなければログファイルが作成される。

すごい量になるので、必要ないときは消しておいた方がいいかも。

参考ありがとう:http://mawatari.jp/archives/logging-mysql-queries-on-mamp

POSTデータが欠ける!?

今まで順調に動いていた環境で、「保存が出来ない」と言われることが出てきた。
テストデータだと問題ないので、データにより動きが違う。

とりあえずデバックして、POSTデータの中身を見てみると、
なんと、途中までしか入ってない!!
なんで!?

問題なく動くテストデータだと、すべてのPOSTデータが送られてくる。

ここは、Google先生に聞いてみるしかなさそう。

参考:
http://blog.livedoor.jp/erscape/archives/6825951.html
http://blog.livedoor.jp/erscape/archives/7361161.html

どうやら、PHP 5.3.9から「max_input_vars」が導入されたみたい。
デフォルトは、1000

確かに、データ数がそのくらい以降が切れてる・・

php.iniを確認するが、max_input_varsの記述がなかったので、
追加してみた。

max_input_vars = 2000

動いた〜♪

ちなみに、php_error.logを見てみると、
PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

というのがあった。

Titanium 環境セットアップ

http://www.appcelerator.com/titanium/
iphoneアプリもAndroidアプリもJavaScriptでかけちゃう素敵な環境を構築することに。

無料だけど、ユーザー登録
が必要。

Sign_Up_for_an_Appcelerator_Developer_Account

登録したメールアドレスに認証メールが来るので、URLをクリックしてactivate
ログインすると、情報を追加で聞かれるので、登録

Resources
Get Started with Titanium > 1. Download Titanium Studio
のところで、対象を選んでダウンロード。(macを選んだ)

ダウンロードされた「Titanium_Studio.dmg」をクリック、applicationフォルダにドラッグする。

Titanium_Studio_

インストールされた Titanium Studioを起動
アプリ
workspaceの場所を指定
Workspace_Launcher_と_Titanium_StudioTitanium_Studio
ログイン情報を入力してログイン

Arc_と_Studio_-_Titanium_Studio_Dashboard_-_Titanium_Studio_-__Users_Maki_Dropbox_MAMP_dropbox_Titanium

立ち上げると、Titanium Update が出てくるので、インストール
プラットフォームを選択して、設定
Studio_-_Titanium_Studio_Dashboard_-_Titanium_Studio_-__Users_Maki_Dropbox_MAMP_dropbox_Titanium
スクリーンショット_2014_05_27_11_14

参考ありがとう:
http://akiyoko.hatenablog.jp/entry/2013/03/07/040122

正規表現 -ハイフン 判定

メールアドレスのチェックを正規表現で行っていたが、ハイフンが入らない。

ソースを見ても、ハイフンちゃんと入っているのに・・

[a-zA-Z0-9\._-¥+]

エスケープしたら、許可されるようになった。

[a-zA-Z0-9\._\-¥+]

でも、違う場所で
[a-zA-Z0-9_-]
と判定している時は、ハイフンがちゃんと許可される?

なんで? 納得いかん。。。

グーグル先生にきいてみる。

なんと!!!
正規表現で[ ]を利用した時のハイフンは、
最初か、最後におかないといけないらしい。

たしかに、0-9とかでハイフン使うし・・

ということで、
[a-zA-Z0-9\._¥+-]
これでOK!
納得!スッキリ!

参考ありがとう:http://www.4web8.com/3195.html

MySQL 外部キー 制約削除

いきおい余って作ってしまった外部キーが都合が悪いので削除する。

まず、外部キーIDを確認
SHOW CREATE TABLE [テーブル名];

すると、結果の最後の方に下記の記述があるので、そこから外部キーIDを取得


CONSTRAINT `[外部キーID]` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`),

削除
ALTER TABLE [テーブル名] DROP FOREIGN KEY [外部キーID];

参考ありがとう:http://d.hatena.ne.jp/Climber/20060407/1144401983