スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

mysqlで「Specified key was too long; max key length is 767 bytes」のエラーが出た時の対処法

mysqlで「Specified key was too long; max key length is 767 bytes」のエラーが出た時の対処法をメモ。
PrimaryKey や Unique Indexのサイズがデフォルトだと 767 bytesで、テーブルやカラムの文字コードを utf8mb4とかにすると発生する。

対処法はmy.cnfに下記を追加して、mysql再起動。
[mysqld]
innodb_file_per_table
innodb_file_format=barracuda
innodb_large_prefix = 1


参考サイト
Mysql2::Error: Specified key was too long; max key length is 767 bytes limit

unicornの起動スクリプトをメモ

unicornの起動スクリプトをメモ。
export PATHの部分は、bundleの実行パス。
gem environmentで出てくる一覧の「EXECUTABLE DIRECTORY」を指定する。
#!/bin/sh

# chkconfig: - 85 15
# description: start/stop unicorn script.
# processname: unicorn_app

export PATH=/home/vagrant/.rbenv/versions/2.3.1/bin

# move to project root directory
NAME="Unicorn"
APP_ROOT_DIR="/vagrant/rails_root"
PID="$APP_ROOT_DIR/tmp/pids/unicorn.pid"
CONF="$APP_ROOT_DIR/config/unicorn/development.rb"
ENVIROMENT="development"
USER="vagrant"

start()
{
if [ -e $PID ]; then
echo "$NAME already started";
exit 1;
fi
echo "start $NAME";
cd $APP_ROOT_DIR
su -c "bundle exec unicorn -E $ENVIROMENT -c $CONF -D" $USER
}

stop()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
exit 1;
fi
echo "stop $NAME";
su -c "kill -QUIT `cat ${PID}`" $USER
su -c "rm -f $PID" $USER
}

force_stop()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
exit 1;
fi
echo "stop $NAME";
su -c "kill -TERM `cat ${PID}`" $USER
su -c "rm -f $PID" $USER
}

reload()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
start
exit 0;
fi
echo "reload $NAME";
su -c "kill -HUP `cat ${PID}`" $USER
}

restart()
{
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
force-stop)
force_stop
;;
reload)
reload
;;
restart)
restart
;;
*)
echo "Syntax Error: release [start|stop|force-stop|reload|restart]"
;;
esac

exit


これを「/etc/init.d/unicorn_rails_app」とかって名前で保存して実行権限を付与する。
sudo chmod +x /etc/init.d/unicorn_rails_app

これで
$ sudo service unicorn_rails_app start
$ sudo service unicorn_rails_app stop
で実行出来る。

参考サイト
Unicorn プロセスを自動起動させる init.d スクリプト用の Chef Recipe
bundleコマンドのパスを通す方法
Unicorn - 起動スクリプト作成!

xcodeで違うバージョンをインストールして実機ビルドした時にエラー

xcodeで違うバージョンをインストールして実機ビルドした時にエラーが出たのでその時の対象方法をメモ。
xocdeを複数インストールする方法はコチラなどを参照。

A valid provisioning profile for this executable was not found.

参考サイトのように、確かにプロビジョニングプロファイルがインストールされていなかった。
iPhone構成ユーティリティも何故かクラッシュして動かなかった。。
プロビジョニングプロファイルをインストールをしようとしたが、既存のものでは動かなかったので、作り直して再度設定したら、動くようになった。


参考サイト
App installation failed / A valid provisioning profile for this executable was not found.
xcodeで実機インストールが失敗する

This device is no longer connected.

再起動して、もう一度macにつなぎ直したら直った。

参考サイト
Xcodeのエラー"This device is no longer connected"


Could not find Developer Disk Image

xcodeのバージョンを7.3.1に落として開発をしていて、iPhoneを10.1.1にしてしまっていたので、古いバージョン(7.3.1)ではiOS10は使えませんよって言うエラーのよう。

最新版のxcodeでアプリケーションのXcodeをパッケージ内容を表示で開いて、
Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
にある、10.1のディレクトリをコピーして、もう一つインストールしている7.3.1のXcodeをパッケージ内容を表示で開いて、同じ場所にコピペし、Xcode再起動で実機にインストール出来るようになった。

参考サイト
Could not find Developer Disk Imageの解消法
【iOS】端末をアップデート後、Xcodeで実機に書き込めなくなった場合

macでapacheを立ち上げようとした時にエラーが発生した時の対象法をメモ

macでapacheを立ち上げようとした時にエラーが発生した時の対象法をメモ。
エラーの内容は下記。
httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): image not found
確かに、/usr/local/php5/libphp5.so は無くなっていた。
OSをアップデートした時に、apacheがバージョンアップされて、それが影響でパスが変更になったっぽい。
sudo find / -name libphp5.so -print
で、libphp5.so を検索して、3つ程ヒットしたので、+php-osx.conf を書き換えて再起動してみたら、うまく起動出来たのがあった。

面倒くさがらずに、ちゃんとvagrantとかに一から作った方が早いねー。。

参考サイト
macでapacheを2.2から2.4にアップデートする(挫折したので2.2に戻した)
Mac OS X Mavericks 10.9.4 issue - Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _libiconv

WordPress Popular Postsのフックの中でget_template_partを使う時のメモ

WordPress Popular Postsプラグインで、wpp_postをフックすると、liの中身を書き換える事が出来る。
その中で、get_template_partを使って、他の一覧部分とソースを共通かするやり方のメモ
function my_custom_single_popular_post( $post_html, $p, $instance ){
ob_start();
global $post;
$tmp_post = $post;
$post = get_post($p->id);
get_template_part('partial/list_li');
$output = ob_get_clean();
$post = $tmp_post;
return $output;
}
add_filter( 'wpp_post', 'my_custom_single_popular_post', 10, 3 );
これで、list_liの中でthe_titleとかでタイトル取ってきたりと、アーカイブページのループの中と同じ形で表示が出来るようになる。

参考サイト
[WordPress] WordPress Popular Posts プラグインでの表示を自由にカスタマイズしたい時に便利なフックとその使い方
WordPress Popular Posts で人気記事を表示する方法
WordPressのショートコードで任意のテンプレートを呼び出す

プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。