「server-sakura」カテゴリーアーカイブ

cake2を使って動かしているシステムを別サーバに移動させた時の手順


cake2で作ったシステムを別サーバに移動するのは少々面倒

さくらインターネットのプレミアムプランでcake2を使って動かしていたサービスをスタンダードプランに移動させた時のメモ書きです。

PHPのフレームワークは、

cake/kohana/Zend/Symfony/Laravel/CodeIgniter…etc

といった具合に色々な種類があります。

世界中の人が次々開発しています。

私は、いつも同じフレームワークばかり使っているわけではありません。

トレンドに合わせて乗り換えたりもしています。

FWは、ずっと使っていないと使い勝手とかどうしても忘れてしまうんですよね。

そこで一度習得したコツとかを備忘録としてメモっておきます。

この記事は、私が忘れた時に見返してすぐ分かる様にメモっています。

参考にされる方は、その点をご理解ください。

 

久しぶりにcakeを触ったという事もありますが、幾つかはまりポイントがあったのでメモっておきます。

①プレミアムプラン

②スタンダードプラン

①で動いているシステムを②に移動させたのですが、①と②とでcakeの設定が異なる状態でした。

最初は、①のスクリプト一式を②にコピーすれば動くだろう、と軽く考えていたのですが、cakeの設定が異なっている為になかなかスムーズに動きませんでした。

そこでcake自体は②の環境を使う事にしました。

具体的には②でcakeが動いているプロジェクトをコピーします。そこに①で動かしていたスクリプトを順番に貼り付けていきます。

つまり、cakeが動く状態にしてからプログラムを少しずつ移行していく流れです。

基本的な流れは以上ですが、実際に作業をしていく中ではまったポイントをメモっておきます。

/home/{user_name}/apps/{application_name}/Config/core.php

core.phpの中にセキュリティソルトを設定する箇所があります。

この部分を適宜修正する必要があります。修正しないとAuth認証(ログイン認証システム)で失敗してしまいます。

Security.salt

/**
* A random string used in security hashing methods.
*/

Configure::write(‘Security.salt’, ‘XXX’);

Security.cipherSeed

/**
* A random numeric string (digits only) used to encrypt/decrypt strings.
*/

Configure::write(‘Security.cipherSeed’, ‘XXX’);

「Security.salt」と「Security.cipherSeed」は、CakePHP がパスワードや Cookieとして利用する情報をハッシュ化したり暗号化する際に使用されています。

/home/{user_name}/apps/{application_name}/View

cake2で必ず使うViewファイルの上書きが必要です。

また、Cake2の場合、

View/{コントローラー名}/{ファンクション名}

というルールになっています。

慣れるまで違和感があります。

また、Viewファイルの拡張子は、ctpです。

ControlerでのAjax処理でパスのべた書き

PHPのコード内にサーバ固有情報(ユーザ名)をべた書きしており、Ajax処理で失敗していました。

サーバ固有の情報はコーディング時には面倒でもconfigファイルなどに外で定義しておいた方がいいと実感しました。

public function download()
{
if( $this->request->is( ‘ajax’ ) )

$basic_path = “/home/{user_name}/xxx/xxx”;

{user_name}部分に利用中のサーバのユーザ名をべた書きしてい為に失敗していました。

apps/{application_name}/Config/const.php

定数定義ファイルに記述した定数を読み取る

まず、

Config/bootstrap.phpの中に読み取り対象の定義ファイルを指定します。

この時に引数にはphpは拡張子として付けません。

Configure::load(“const”);

実際に定数を定義していくファイルは

Config/const.phpです。

const.phpの中での定数の記述例

</php

$config[“app_info”] = array(
“happy_date” => “2017/03/03 12:15”,     // コメント
);

?>

最後の「,」は、あっても無くてもPHPの文法上はエラーになりません。

コントローラーの中で定義済の定数の呼び出し

$my_happy_day  = Configure::read(“app_info.happy_date“);

と記述します。すると$my_happy_dayには、 ”2017/03/03 12:15″が格納されます。

シェルが動かない場合

移動元サーバでcakeシェルの実行が出来ていたのに、新サーバに同じプログラムを全部移動して実行しても動きませんでした。

まず、やった事。

php -v

とTeraTermからサーバに接続して発行します。

このコマンドを発行した時に

PHP 5.2.17(cli)(built: Nov 10 2016 10:45:11)

Copyright(C) 1997-2010 The PHP Group

Zend Engine v2.2.0 Copyright(c) 1998-2010 Zend Technologiesと表示されれば、TeraTerm上からPHPコマンドが認識されている事になります。

phpのパス通しには問題ありません。

 

今回シェル実行がうまく行かなかった理由ですが、新サーバーでは、cake.phpが複数の階層にあり、誤ったパスのcake.phpを指定していた事が原因でした。

i) 正しいcake.phpのパス

/home/{user_name}/cake/Cake/Console/cake.php

j) 誤ったcake.phpのパス

/home/{user_name}/cake/Console/cake.php

最初  j) を指定してシェルを実行しようとしていた為にコマンド事項をしてもTeraTerm上にエラーも何も表示されませんでした。

その後、正しい i) を指定したところ正常にシェルが実行されました。

私は、cakeの環境構築時にcakeのパスとかいろいろとカスタマイズしていました。

そのせいでcake.phpが複数パスに存在していたのかもしれません。

いずれにせよ正しく指定すればシェルは動きます。

cakeの機能を使ったメールを送信する設定

Config/email.php

の中にメール送信情報を記述します。

Gmailを使ってメールを送信する場合の基本設定の例はこちらです。

//Gmailを利用してcakeでメールを送る設定
public $gmail = array(
‘host’ => ‘ssl://smtp.gmail.com’,
‘port’ => 465,
‘username’ =>{user_name},
‘password’ =>{pass_word}
);

 


WordPressのプラグインwp social bookmarking lightをアップデートしたらエラー発生~対処方法~ 


2017年7月17日にWordpressのプラグイン(wp social bookmarking light)をアップデートしたところ

Parse error: syntax error, unexpected T_STRING in /home/~略~/wp-content/plugins/wp-social-bookmarking-light/wp-social-bookmarking-light.php on line 44

というエラーが出ました。

しかし、バグのあるプラグインを作者がリリースするとも思えず色々と調べてみたら、この原因はレンタルサーバーで使用しているPHPのバージョンが古い事が原因でした。

またPHPのバージョンが古いと wp social bookmarking lightだけではなく、wordpress relational postsも同様のエラーが出てしまいます。

現行で既に古いPHPで動いているWEBサービスがあった為、PHPのバージョンを上げるのは正直迷いましたが、上げてみたところ今のところ問題はありませんでした。

さくらインターネットでPHPのバージョンを変更する

使っているレンタルサーバーがさくらインターネットの場合、簡単にPHPのバージョンを変更する事が出来ます。

サーバコントロールにログインします。

画面左にあるPHPのバージョン選択をクリックします。

PHPのバージョン選択
PHP言語の設定変更はすべて【上級者向け】です。
言語に関する仕組みが理解できない場合は、利用をご遠慮ください。
PHPのバージョンを選択できます。
PHPに関して詳しくわからない、細かなバージョン指定を必要とされない方は、 「推奨」のまま利用し、変更を行わないでください。

という画面が右側に表示されます。

新しいバージョンのプルダウンより標準のPHP[PHP5](推奨)を選択し変更をクリックします。

2017年7月17日時点で、PHP 7.1もありますが、何等かのバグがありそうで怖いのであえてこれは選択しませんでした。

標準のPHP[PHP5](推奨)を選択すると

PHPのバージョンがPHP5.2→ PHP5.6[標準のPHP」(CGI版)に変わります。

以上、こんな感じでPHPのバージョンをアップデートしたところ正常にwp social bookmarking lightwordpress relational postsのプラグインがエラーが出る事も無く最新版になりました。

WordPressでプラグインをアップデートした時に今回の様なエラーは他のプラグインでも十分に起こりえます。

その他のWEBサービスを運用している場合、DB/スクリプトなどのバックアップをきっちり取った上でプラグインの更新をする様にしましょう。

こういったトラブルシューティング方法がネットで検索してもヒットしないのでメモっておきました。

ええなぁ~と思ったら「いいね!」ボタンホンマよろしくな!

 

 

 

 

 

 

 


【さくらインターネット】さくらのブログで記事にコメントを投稿出来る様にする方法


【さくらインターネット】さくらのブログで記事にコメントを投稿出来る様にする方法

さくらインターネットには、WordPressをインストールしなくても最初からブログを作成する事が出来ます。Amebaブログなどとは違って余計な広告が入らないので、見る人にとっても見やすいです。

そんな便利なさくらのブログですが、標準ではどうやら記事にコメント投稿をする事が出来なくなっています。

さくらインターネットの公式サイトにはざっくりした説明しかされていなかったので、ここで分かり易くまとめておきたいと思います。

コメントを投稿出来る様にする

記事を投稿する時に下方向に画面をスライドすると

 

詳細設定という項目があります。

 

使用しているデザインテンプレートによっては、デフォルトで受付しない/表示しないになっています。この状態ではコメントを投稿する事が出来ません。

そこで、受付/承認後表示にチェックを入れます。

そして保存を押せばコメントの投稿フォームが表示されます。

受付/承認後表示にすると、コメントの投稿は受け付けるけれども投稿内容を管理者が確認し、問題が無い(荒らし投稿ではない)と判断した場合、管理画面で許可をして初めて記事ページに表示される様になります。

コメントスパマー対策としてこの設定は抜かりなくしておくと良いでしょう。

 

 

 

 


さくらインターネットに他社で取得したドメインのサブドメインを割り当てて運用する方法


サブドメインをさくらインターネットで使用する。

お名前.comでドメインを既に取得しており今回サブドメインをさくらインターネット共有サーバで使用する手順のメモ書きです。

サーバコントロールにログインする

ドメイン設定

新しいドメインの追加


5. 他社で取得したドメインを移管せずに使う

他社で取得した独自ドメインと、その独自ドメインのサブドメインを追加することができます。
• 他社で取得したドメインを移管せずに使う
>> ドメインの追加へ進む  をクリック

sakura-sub-domain_1

他社で取得された独自ドメインのサブドメインを追加

サブドメイン名ドメイン名を入力し送信するを押します。

sakura-sub-domain_2

サブドメインとして test  を使う事にします。実際にアクセスする場合のURLは  http://test.hoge123123.com   を想定しています。ここでは、 hoge  hoge123123.com  を入力しました。

 

サブドメインが認識される様になるまで2~3時間程度かかる事があります。

私の環境では夜サブドメインの設定をした直後は、ブラウザから認識されませんでした。そして翌朝アクセスしてみると正常にサブドメインでアクセス出来る様になりました。

ブラウザからサブドメインでアクセスしても、サイトにアクセス出来ない場合には時間をずらして試してみてください。

 


さくらインターネットで作成したメールをWindows Liveメールにアサインする場合の注意事項


ちょっとした設定ミスが原因

前回、この手順でさくらインターネットでメールを作成しました。

さくらインターネットでメールアドレスを作成する方法

そして作成したメールをWindows Live Mailで読み込める様に設定をしようと思ったのですが、なぜかうまく行きません。これまでスムーズに設定が出来ていたのでなぜ?と思ってましたがちょっとした落とし穴がありました。

基本的に私のメモ書きなので悪しからず。

はまったところだけ纏めておきます。

 

全般タブ

ユーザ情報

名前(N) : hogehoge@testtest.com     …(A)

電子メールアドレス(M):  hogehoge@testtest.com 

 

サーバタブ

受信メールサーバー

ユーザ名(A): hogehoge@testtest.com 

 

この3つの場所には同じメールアドレスを指定する必要があります。

今回(A)の場所に日本語で名前を設定していましたがこれが原因でした。

 


さくらインターネットで割り当てられたドメイン以外からのアクセスを遮断するには?


さくらインターネットのサブドメイン指定のアクセスをできなくする。

さくらインターネットでサーバをレンタルするとデフォルトではさくらインターネットのサブドメインが自動で割り当てられます。

例えば、割り当てられたドメインをここでは sakura-user-name とします。

www配下に dummy-site というディレクトリを作成し、想定するアクセスを

http://dummy-site.com     ・・・①

とします。

しかし、さくらで契約をしてApachの制御コードを .htaccess に書いておかないと

http://sakura-user-name.sakura.ne.jp/dummy-site.com   ・・・②

この様にサクラインターネットのサブドメイン経由でのアクセスも出来てしまいます。かっこ悪いですよね。あとセキュリティ的にもあまりよろしくありません。そんな場合には

/home/sakura-user-name/www

の中に .htaccess を作成して

/home/sakura-user-name/www/.htaccess

SetEnvIf Host “^www\.dummy-site\.com$” hos_ok
SetEnvIf Host “^dummy-site\.com$” hos_ok
order deny,allow
deny from all
allow from env=hos_ok

こんな感じで命令文を書きます。

こうすることによって②でアクセスをされたとしてもそれを禁止することができます。①でアクセスされた場合にサイトを表示させることができるようになります。

 


Eclipseでリモートシステムエクスプローラーで接続する場合の注意事項


Eclipseでさくらインターネットで契約しているサーバにリモート接続をしようとしたところ、ユーザ名(ID)とパスワード(オプション)の組み合わせが間違っているとエラーになってしまいました。

eclipse-name

 

さくらインターネットでkomaneti.sakura.ne.jpという名前で契約をしている場合には、

ホスト名 → komaneti.sakura.ne.jp

ユーザID(名) → komaneti

パスワード → {設定したパスワード}

になります。今回私がうまく接続できなかった原因はユーザID(名)に komaneti.sakura.ne.jpと設定していた為です。正しく、komanetiと設定したところエラーは解消されました。

 

リモートシステムエクスプローラーはeclipseにおいて代表的な便利な機能の一つです。10年位前のPHPでの開発では、ローカル環境を構築してPHPが正常に動く様になって初めてWEBサーバに転送していましたが、これは二度手間です。

 

展開先のサーバに直結してPHPコードを直接書いてしまった方がスマートです。ローカル(Widows)とサーバとの環境が違う以上、展開先のサーバで開発をしてしまった方が本番リリースした後になって環境差異によるトラブルを未然に防ぐことが出来るからです。まだリモートシステムエクスプローラーを使ったことが無いという人はこの機会に使ってみてはいかがでしょうか。

 


WordPressをインストールした際にパーミッションのエラーでアクセスできない場合


さくらインターネットでWordPressをインストールした際に
「Forbidden You don’t permission to access/….」
WPerror_4
というエラーが表示されてしまう場合の対処法をご紹介します。

1.

先ずさくらインターネットのサーバーコントロールパネルにログインしてください。ログインできたら、「ファイルマネージャー」をクリックしてください。
WPerror_1

2.

対象のフォルダに「チェック」を入れて、「表示アドレスの操作」「アクセス設定」をクリックします。
WPerror_2

3.

「indexファイル」タブを選択し、「追加」ボタンを押して「index.php」と記入し「OK」ボタンを選択。
WPerror_3

以上で、ページを正常に閲覧できるようになっているはずです。


さくらインターネットでメールアドレスを作成する方法


さくらインターネットでメールアドレスを作成する方法を纏めます。

1.サーバコントロールにログインします。

https://secure.sakura.ad.jp/rscontrol/

ID・PASSを入れます。

2.画面左 > メールに関する設定 > メールアドレスの管理

3.「全メールアドレスのウィルスチェックを有効」にチェックを入れる。

4.メールアドレス、パスワードを設定します。

メールアドレス: tarou@test-domaincom

赤字の部分になります。

パスワード:セキュリティ対策の為に30文字程度が良いでしょう。

c-image

5.メール容量を増やします。

デフォルトでは、さくらインターネットでは200MBになっているので

2,000 MB = 2GB に増やします。

変更 > 容量制限 > 2000MB と入力 > 変更

2GBにしてもなぜかさくらインターネットでは1.95GBになります。

これは気にしなくても大丈夫です。ここまででメールアドレスの作成は完了です。

 

WEBベースでメールを確認する場合

 

さくらのレンタルサーバ・さくらのメールボックス ウェブメールログイン

https://secure.sakura.ad.jp/rscontrol/?webmail=1

に作成したメールアドレス、パスワードを入力しログインします。

あとは、WEBベースでメールの送受信ができます。WEBベースだとアカウントさへ知っていれば、MACでもWindowsでもメールが出来てよいです。ただ、操作性を考えるとWindows Live Mailとかにメール設定を行いアプリベースでメール送受信が出来る様になった方が便利です。

 

作成したメールをWindows Live Mailに割り当てる場合の注意事項もこちらに纏めています。参考にしてみてください。

さくらインターネットで作成したメールをWINDOWS LIVEメールにアサインする場合の注意事項


さくらインターネットでクイックインストールしたWordPressをアンインストールするには?


さくらインターネットでWordPressをクイックインストールした場合に、それをアンインストールする手順です。インストール時にDB名を間違えて作ってしまった場合などには、アンインストールして作り直した方が早いです。

なお、さくらインターネットは簡単にWordPressをインストール出来る様になっていますが本来はもっと面倒です。

 

1.サーバコントロール画面にログインする。

2.運用に便利なツール > クイックインストール > インストール済一覧

3.インストール先設置URL管理画面URLを十分確認しアンインストールをクリックします。

server-control-uninstall

これでWordPressのアンインストール作業が開始されます。