-
会社の主たるサービスがCakePHPの2系で動いている。 私が所属するSREチームではCakePHPのバージョンアップも担当しており、しばらく新規サービスのインフラ周りをやっていたとはいえ、そろそろ最低限のことは覚えようとCakePHPのチュートリアルをやることにした。 私がやったのはこちら。 CakePHPブログチュートリアル ブログなので、記事を投稿、表示、編集、削除までの極々簡単な内容が学べる。 CakePHPの公式サイトは日本語化されており、基本的なことを学ぶ事ができるのでとても有り難い。 各CakePHPのバージョンに応じてチュートリアルの内容も異なっている。 昔準備はじめて放置していたリポジトリに手を付け、先週頭くらいに環境をセットアップしはじめて、今日一通り終えた。 と言っても先述の通り、とても簡単な内容なので、まだCakePHPの触りも触りと言った所。 これから他のチュートリアルもやって自分で簡単なアプリ作るまでやっていきたい。 とりあえず、大したものではないけど下記にやったことを公開している。 https://github.com/inamuu/cakephp_practice/ こうやってDockerで作っておくと、他の環境でも使い回せるなと思うし、こういったナレッジコードを貯めておくと良さそうに思った。 CakePHP 超入門 <p style='padding: 5px;'>cakephp Created
15 Apr 2019 -
概要 mainwpというWordPressがあり、そのディレクトリ配下に /subwp という階層に別のWordPressが存在したとする。 WordPressはデフォルトではDocumentRoot直下の階層、またはDocumentRootの一つ上の階層のwp-config.phpを読むようになっており、wp-config.phpをDocumentRoot配下に保存したくない場合は、通常は一つ上の階層にwp-config.phpを移動させるだけでWordPressが読みこんでくれる。 しかし、上記の環境のように、mainwp/subwp という階層だと、一つ上にはすでに別のWordPressが存在してしまい、それぞれ一つ上においても、DocumentRoot直下のwp-config.phpを先に読み込んでしまい、おかしなことになる。 解決方法 subwpのwp-configを保存したいディレクトリ(2階層上とか)にコピーする [root@test.inamuu.com subwp]# ll /home/hogeuser/mainwp/subwp_config/ 合計 16 -r--r----- 1 hogeuser www 4342 8月 30 23:46 wp-config.php 2.wp-load.phpを編集する [root@test.inamuu.com subwp]# diff -u wp-load.php{.bak,} --- wp-load.php.bak 2018-08-31 00:02:08.147884691 +0900 +++ wp-load.php 2018-08-31 00:03:07.828911588 +0900 @@ -31,10 +31,13 @@ * * If neither set of conditions is true, initiate loading the setup process. */ -if ( file_exists( ABSPATH . 'wp-config.php') ) { +if ( file_exists( '/home/hogeuser/mainwp/subwp_config/wp-config.Created
30 Aug 2018 -
経緯 ECCUBEを利用しているサーバーでペイジェントモジュールを利用していたところ、ペイジェントより、12月からモジュールサーバーのSHA2対応をするという通知が送られてきました。 素のCentOS6系でyumでPHPやらOpenSSLをインストールしている場合は、ペイジェントモジュールの証明書ファイルの差し替えのみでOKのようですが、CentOS5系でOpenSSLやPHPをyumでインストールした場合はソースからコンパイルが必要になります。 理由としては、CentOS5系のPHPにはすでにOpenSSLのモジュールが組み込まれており、yumでインストールされたOpenSSLをいくらアップデートしても、PHPの方には影響が無いという理由があります。 また、OpenSSLはCentOS5系の標準だと、openssl-0.9.8eまでしかアップデートできません。 なお、openssl-0.9.8e-18で下記のような記述がありますが、 * Thu Mar 10 2011 Tomas Mraz <tmraz@redhat.com> 0.9.8e-18 <pre> - add SHA-2 hashes in SSL_library_init() (#676384)</pre> デフォルトでは有効ではないようで、sha2がデフォルトで使用できるようになっているのはopenssl-0.9.8o以降からのようです。 なので、OpenSSLを0.9.8o以降でコンパイルし、それを指定する形でPHPもコンパイルが必要です。 その手順を下記に記載しますので、参考になると嬉しいです。 ※慣れていない場合はVagrantなどを活用して、何度か手順を確認しつつ、ご自身のサーバーに合った方法に書き換えていただけると良いかと思います。 バックアップ # cd /etc/ # cp -p php.ini php.ini.`date +%Y%m%d` # cp -rp php.d php.d.`date +%Y%m%d` # cp -rp /usr /usr.`date +%Y%m%d` 事前にインストール # yum install bzip2* libcurl* curl-devel pcre* db4-devel libjpeg* libpng* freetype* gmp* libc-client-devel openldap-devel mysql-devel ncurses-devel unixODBC-devel postgresql-devel sqlite-devel aspell-devel libxslt libxslt-devel net-snmp net-snmp-devel flex krb5-devel httpd-devel
-
はじめてのプログラミングと言えば、イメージ的にはお問い合わせフォームかと勝手に思い、早速作ってみることにしました。 入力をformで作り、submitでメールを送信させるPHPファイルに渡すという極シンプルなものでしたが、一つ問題が。 完了画面&メール送信PHPファイルにアクセスした段階で、ブラウザを更新すると更新しただけメールが送られてしまいます。 対応方法はいろんな方法があるようですが、最も簡単なPHPのheader関数で処理することにしました。 要はリダイレクトさせる処理なのですが、処理が正常にいったら、完了ページHTMLへリダイレクトさせるというもの。 以下のようにしてあげれば、勝手にリダイレクトしてくれます。 if ($mailsend) { header(“Location:./complete.html”); exit(); } 最後にexit()でエラーが発生した場合にPHPの処理を停止させるのがポイントのようです。 こうゆうとこインフラエンジニアとしてはちゃんと抑えていきたい所ですね。 とりあえず公開する予定の無いお問い合わせフォームはこの程度で良いとして、処理を実行するPHPファイルを攻撃されたら一緒やん?と思っているのですが、どうなんでしょうか。 その辺はセッションを持ったりするとかしないとかっていう話なんかと思うので、またいずれ。 今日はここまで。 おしまい。
-
PHPをいざさわり始めると、あれやりたりけど、どうしたらいんだろう? なんていう疑問がたくさん生まれてきます。 つい最近だと入力フォームの日付入力欄で、HTML5から?かdate入力ができるようになりました。 そしてデフォルト値を「value=””」というオプションで指定することが可能です。 例えば、 <p style="padding-left: 30px;"> <input type="date" name="mondate" value="2015-05-20" title="日付を入力をしてください。" required> </p> こんな感じにで値が決められます。 しかし、日付入力なんか、今日とか近い日付入力したい(させたい)だろうに、決め打ちの場合の用途では困る状況があります。 そんな時みんなどうしているのかなぁとネットで調べてみましたが、基本的すぎるからなのかJavaScriptでやる方法しか見つからず、困りました。 なぜならJavaScriptこそもっと触ったことがなかったからです。 勉強にJavaScriptでやっても良いのですが、日付入力なんかPHPでできるんじゃないかなぁ?と思い、思いつくままに書いてみたら、うまくいったので残しておきます。 <p style="padding-left: 30px;"> <input type="date" name="mondate" value="<?php echo date('Y-m-j');?>" title="日付を入力をしてください。" required> </p> たったこれだけでOKです。 要はvalueにPHPの関数を埋め込んだだけ。 一昔まえはJavaScriptでクライアント側で処理させるのが当たり前だったのかと思いますが、今となってはPHP使えないレンタルサーバーなんて殆どありませんから、PHPでデフォルト値を決められるのはありがたいですね。 以上です。おしまい。 よくわかるPHPの教科書 【PHP7対応版】PHP Created
20 May 2015