さくらレンタルサーバでcakephp3を動かす

すでにさくらサーバでgitが使えるようになっています。たしかデフォルトだと使えなかった気がする。マルチドメインで使います。
さくらサーバの管理画面の設定は抜かします。

composer installしたらエラーになりました。

デフォルトではintlがないらしい。

この参考記事のようにするとできるらしいけど、別のサーバ使うことにした。
参考:さくらのレンタルサーバでCakePHP3を使うためにintl extensionを導入する方法

さくらレンタルサーバのSIN SSL利用してると、Facebook APIがエラーになる

エラーは下記です。

恐らくさくらのレンタルサーバのSSL使うと、httpsアクセスだと認識されないことが原因なのではないかと思った。facebookのSDKみたらやはり、$_SERVER[‘HTTPS’]を見てたので、下記のようにしたらできた。

ちなみに、このプログラムはcakePHP2を使っているのですが、twitterやfacebookなどのコールバックURLをRouter::url()を使って動的に取得させていて、これまたhttpsアクセスしてるのにhttpsと勘違いされて、http://***というアドレスにされてしまっていた。これについては、core.phpのConfigure::write(‘App.fullBaseUrl’, ‘http://example.com’);に、httpsアドレスをベタ打ちしたら大丈夫になった。

さくらサーバでhttpsアクセスしてもhttpsアクセスしたことにならない

お客さんがさくらサーバでSSL設定されたのですが、httpsアクセスしてもhttpsアクセスしたことにならない。httpsアクセスすると$_SERVER[‘HTTPS’]がセットされるはずですがない。これがセットされてない場合、httpsのURLにリダイレクトするような設定をしてたのでリダイレクトループになりました。

参考:サクラのレンタルサーバーで共有SSLを使うとHTTPSを認識しない問題

$_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’]がセットされてなければhttpsじゃないと判断できるらしい。

下記のような感じでやったらできた。

さくらVPS CentOS6.5の設定

さくらVPSの標準のOSは、CentOS6.5です。これにPHP、MySQL、Apacheとかを入れて使えるようにします。

CentOS6.5
PHP5.3.3
Apache 2.2.15
MySQL 5.6.21

yum update -y
yum groupinstall -y “Web Server” “MySQL Database” “PHP Support”
service httpd start
sudo chkconfig httpd on
yum remove mysql*
yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum install mysql mysql-devel mysql-server mysql-utilities
yum install -y php-mysql
service mysqld start
mysql_secure_installation
sudo chkconfig mysqld on
yum –enablerepo=epel install -y phpMyAdmin php-mysql php-mcrypt

さくらVPSがssh接続できない

久しぶりにさくらVPSを借りて仮登録完了したからssh接続しようとしたらエラーになって接続できない。
Connection refusedになるので、サーバを再起動してみたけど、今度はOperation timed outになる。

まだ何の設定もしてないまっさらな状態のはずなんだけど、さくらの管理画面についているHTML5のターミナルのようなものを見てみると、下記のようにカーネルパニックとか書いてある。また再起動しても同じになる。

スクリーンショット 2014-10-20 4.12.07

さくらVPS SSH接続できないときにVNCコンソールで頑張って復帰するといった記事もあって、やってみたけどどうもダメなので、OS再インストールしてみた。時間かかる。。。AWSなら一瞬なのになー。。

20分くらいかかった気がするが再起動終わったら普通通りログインできた。

dead-letter

なんとも忌まわしい存在を知ってしまいました。dead-letterです。
いつも使っているサクラサーバにデプロイしたらお問い合わせのフォームで送信しようとしたらエラーになってしまっている状態です。そして、サーバのエラーログに下記のようなものが出てきました。

malformed header from script. Bad header=/home/hoge/dead.letter… S: index.php, referer:フォームのURL

スクリプトからのメールフォームのヘッダーが行けてないよ。といったことでしょうか?意味不明です。いつもと同じプログラムだったと思ったのですが。何とも忌まわしいです。

あ、もしかして、ドメイン登録してるけど、メアドはgoogleで登録してるから、そんなメアド登録してないじゃん!みたいなことをずうずうしくもサクラサーバはいっているのかもしれない。それくらいしか変化がない。

やはりそうっぽい。
WordPressのマルチサイトでユーザー追加時に500エラー
PHPMailerでGmailのメール送信

なにこれすごいめんどくさい。でもgoogle apps使ってる理由ってなんだっけ?サクラでいい気がする。google apps解除して、さくらに移すかな。

さくらサーバにメールアドレスを追加してみる

今例えばinfo@hoge.comというメアドがgoogle appsで登録されているにも関わらず、hoge.comをサクラで運用しているとしましょう。その場合、info@hoge.comというメアドでスクリプトからメール送信しようとするとエラーになるわけです。さくらにとってinfo@hoge.comは知らないからであります。であるならば、さくらに知らせてあげようということです。登録してみました。いざ確認してみます。にしても2つのサーバで1つのメアドを登録するとどうなるんでしょうか??怖いです。

おお!さくらのプログラムはエラーがなくなりました。サクラちゃんは上記メアドを認知したからです。しかし一方でこのメアドが使えなくなるような不具合は困ります。

テスト送信してみましたが、今のところ問題なくメール送受信できてます。まあ恐らく大丈夫だろう。取得ドメインのメールのネームサーバ?とかいうやつはgoogleで全部設定したし、ということはgoogleにいくということじゃ。確かにそうだ。お手軽な解決策があってよかった。

さくらサーバにgitをインストールする

https://code.google.com/p/git-core/downloads/list

ここから最新版をローカルに落として、サクラサーバにSCPでコピーします。

ここに書いてある通りにインストルします。

インストールまで出来たら、パスをとおします。

/home/hogehoge/.cshrcを編集します。
下記のset pathというところの最後に、$HOME/local/binを追加します。

そして、下記をやるとcshrcの再読み込みになるようです。

これでgitと打つとgitがでてきます。

さくらVPS CentOS6.5でSSLをつかってみる

さくらサーバでSSLつかってみましょう。環境は下記になります。

・FreeBSD 9.1-RELEASE-p7 amd64
・さくらのレンタルサーバ スタンダード
・Apache/2.2.25

あら独自SSLを使えるのは、ビジネスプロ以降らしい。http://www.sakura.ne.jp/
では、VPSを使ってやってみよう。環境は下記になります。

・CentOS release 6.5 (Final)
・Apache/2.2.15 (Unix)
・OpenSSL 1.0.1e-fips 11 Feb 2013

mod_sslをインストールする

mod_ssl.x86_64 1:2.2.15-29.el6.centosというのがインストールされた。

CA用秘密鍵(ca.key)の作成

CA用証明書(ca.crt)の作成

サーバ用秘密鍵(server.key)の作成

署名要求書(server.csr)の作成

サーバ用秘密鍵(server.key)からのパスフレーズ削除

オリジナルをバックアップしてから、server.keyからのパスフレーズ削除

サーバ用証明書(server.crt)の作成

ssl設定ファイル(ssl.conf)の変更

Apache再起動

これでhttpsでアクセスすると反映されてた。

参考:はじめての自宅サーバ構築 – Fedora/CentOS –

XserverにcakePHP置くのが難しかった

4時間くらいかかってしまった。
久しぶりにブログ書く。でも細かくかきたくない。

public_htmlの.htaccessの中身がよろしくなかった。
PHPのバージョンは5.4にしているのだが、

AddHandler x-httpd-php5.4 .php .phps
これの.4が抜けていて、真っ白状態が続いていた。
.4つけたら、すっかり問題なく動いた。