ラベル cakephp の投稿を表示しています。 すべての投稿を表示
ラベル cakephp の投稿を表示しています。 すべての投稿を表示

2019年10月30日水曜日

コアサーバーにcakephp3をインストール

コアサーバーにcakephp3をインストール.md

sshでログインします。

ssh ユーザー名@サーバー名.valueserver.jp
ユーザー名@サーバー名.valueserver.jp's password:サーバーパスワードを入力する

コンポーザーのインストール

curl -s http://getcomposer.org/installer | php71cli

バリューサーバーではコマンドラインを使う時は php71cli を使わないといけない。
php73cli も用意されているのだが、xmlreader が無いのでcomposerやbakeの時にワーニングやエラーが出てしまいます。

これで composer.phar が ~/にできた訳だ。

composer を使うたびに php71cli ~/composer.phar とするのが面倒だとお思いなら、次のように .bashrc にでもエイリアスを仕込んでやれば良いだろう。

alias composer='php71cli ~/composer.phar'

.bash_profileが無い場合はこれも作ります。

エイリアスは.bashrcに書いただけでは設定が反映されません。

なので設定を反映させるために、.bash_profile.bashrcを読んでもらう必要があります。

.bash_profileターミナルが起動すると読み込まれるので、そのタイミングで.bashrcも読んでもらいます。

ターミナルからvi ~/.bash_profileと打って、.bash_profileをvimで開き、ファイルの一番下に以下のコマンドを記述しましょう。

source ~/.bashrc

cakephp用のフォルダーを作る

mkdir ~/cakephp
cd ~/cakephp

cakephpのインストール

composer create-project --prefer-dist cakephp/app:^3.8.1 app

追加プラグインのインストール

cd app
composer require phpoffice/phpspreadsheet
composer require friendsofcake/search
composer require friendsofcake/bootstrap-ui ^2.0.0-RC

追加プラグインのロード

php71cli ./bin/cake.php plugin load Search
php71cli ./bin/cake.php plugin load BootstrapUI

bootstrap shell を使用して必要な変更を加えます。

php71cli ./bin/cake.php bootstrap modify_view

これにより、[README]のAppViewセットアップで説明されているように、src / View / AppViewが書き換えられます。

php71cli ./bin/cake.php bootstrap copy_layouts

これにより、cover.ctp、dashboard.ctp、signin.ctpの3つのサンプルレイアウトがアプリのsrc / Template / Layout / TwitterBootstrapにコピーされます。

データベースの設定

~/cakephp/app/config/app.phpを開く256行目あたりに

    'Datasources' => [
        'default' => [
            'className' => Connection::class,
            'driver' => Mysql::class,
            'persistent' => false,
            'host' => 'ホスト名', // mysql638.db.sakura.ne.jp
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => '<ユーザー名>',
            'password' => '<パスワード>',
            'database' => '<データベース名>',
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => 'UTC',
            // 'timezone' => 'Asia/Tokyo',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

ウェブフォルダーにシンボリックリンクを作る

cd ~/public_html
ln -s ~/cakephp/app/webroot web_site_url

2019年9月4日水曜日

バリューサーバーにcakephp3をインストール

バリューサーバーにcakephp3をインストール

sshでログインします。

ssh ユーザー名@サーバー名.valueserver.jp
ユーザー名@サーバー名.valueserver.jp's password:サーバーパスワードを入力する

コンポーザーのインストール

curl -s http://getcomposer.org/installer | php56cli

バリューサーバーではコマンドラインを使う時は php56cli を使わないといけない。
php73cli も用意されているのだが、xmlreader が無いのでcomposerやbakeの時にワーニングやエラーが出てしまいます。

これで composer.phar が ~/にできた訳だ。

composer を使うたびに php56cli ~/composer.phar とするのが面倒だとお思いなら、次のように .bashrc にでもエイリアスを仕込んでやれば良いだろう。

alias composer='php56cli ~/composer.phar'

cakephp用のフォルダーを作る

mkdir ~/cakephp
cd ~/cakephp

cakephpのインストール

composer create-project --prefer-dist cakephp/app:^3.8.1 app

データベースの設定

~/cakephp/app/config/app.phpを開く256行目あたりに

    'Datasources' => [
        'default' => [
            'className' => Connection::class,
            'driver' => Mysql::class,
            'persistent' => false,
            'host' => 'ホスト名', // mysql638.db.sakura.ne.jp
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => '<ユーザー名>',
            'password' => '<パスワード>',
            'database' => '<データベース名>',
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => 'UTC',
            // 'timezone' => 'Asia/Tokyo',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

ウェブフォルダーにシンボリックリンクを作る

cd ~/public_html
ln -s ~/cakephp/app/webroot web_site_url

さくらインターネットにcakephp3をインストール

さくらインターネットにcakephp3をインストール

sshでログインします。

ssh ユーザー名@ユーザー名.sakura.ne.jp
ユーザー名@ユーザー名.sakura.ne.jp's password:サーバーパスワードを入力する

コンポーザーのインストール

curl -s http://getcomposer.org/installer | php
php composer.phar self-update
mkdir ~/bin
mv composer.phar ~/bin/composer

cakephp用のフォルダーを作る

mkdir ~/cakephp
cd ~/cakephp

cakephpのインストール

~/bin/composer create-project --prefer-dist cakephp/app:^3.8.1 app

追加プラグインのインストール

cd app
composer require phpoffice/phpspreadsheet
composer require friendsofcake/search
composer require friendsofcake/bootstrap-ui ^2.0.0-RC

追加プラグインのロード

bin/cake.php plugin load Search
bin/cake.php plugin load BootstrapUI

bootstrap shell を使用して必要な変更を加えます。

bin/cake.php bootstrap modify_view

これにより、[README]のAppViewセットアップで説明されているように、src / View / AppViewが書き換えられます。

bin/cake.php bootstrap copy_layouts

これにより、cover.ctp、dashboard.ctp、signin.ctpの3つのサンプルレイアウトがアプリのsrc/Template/Layout/TwitterBootstrapにコピーされます。

データベースの設定

~/cakephp/app/config/app.phpを開く256行目あたりに

    'Datasources' => [
        'default' => [
            'className' => Connection::class,
            'driver' => Mysql::class,
            'persistent' => false,
            'host' => 'ホスト名', // mysql638.db.sakura.ne.jp
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => '<ユーザー名>',
            'password' => '<パスワード>',
            'database' => '<データベース名>',
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => 'UTC',
            // 'timezone' => 'Asia/Tokyo',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

ウェブフォルダーにシンボリックリンクを作る

cd ~/www
ln -s ~/cakephp/app/webroot web_site_url

2018年2月16日金曜日

cakephp 2.x 日付でログローテーション

Config/bootstrap.phpの「Configures default file logging options」を以下のようにすると良い

2017年9月29日金曜日

cahephp2 FormHelperの日時オプション 最大値、最小値、降順、昇順の設定

【FormHelper】
date(), datetime(), year(), input(typeがdate, datetime)
日時オプション
    $options['minYear'], $options['maxYear'] date/datetime と組み合わせて 使います。年の select フィールドで表示される値の最小値および/または 最大値を定義します。

    $options['orderYear'] date/datetime と組み合わせて、年の値を表示する 順序を定義します。有効な値は ‘asc’, ‘desc’ で、デフォルトは ‘desc’ です。

cakephp2のliタグで囲まれたlinkメソッドをtagメソッドに書き替える

①を②に変換 [Find] [Replace]

2017年6月22日木曜日

[cakephp 2.x]スタイルシートをViewに置く方法

Config/routers.phpに次の1行を加える コントローラーを追加する Controller/CssController.php ビューファイルはView/Css/css以下に置く View/Css/css/svg/background.ctp cakephpをサブディレクトリcakephpにインストールした場合以下のようにみえる。 //example.com/cakephp/css/svg/background.css

2016年8月24日水曜日

[cakehp2] view.ctpの変数をLayouts/default.ctpで参照したい。

cakephpのテーマシステムを使ったサイトを作る場合
できるだけスタイルシートだけでテーマを表現して欲しい
しかし、viewファイルも使わなくては表現できない、
でも、レイアウトファイルまではさわって欲しくない時、
フラグだけで,表示、非表示を切り換えたり等、色々使える。

view.ctp の適当なところに置く default.ctp の適当なところに置く

2016年8月5日金曜日

cakephp 2.x のテーマ名

テーマを変更するにはコントローラーで
pubulic $theme = 'example';
もしくは
各アクション内で
$this->theme = 'example';
とやれば良いのだが、
テーマ名が小文字の場合でもView/Themed以下に置くディレクトリ名は、
キャメルケースの先頭大文字、example は Exampleになる。

app/webroot/theme以下にテーマ名のディレクトリの下に css js img
ディレクトリを置けるがこの場合のテーマ名は$this->themeの値そのものになる。
小文字なら小文字、キャメルケースならキャメルケース、
example は example、Example は Exampleになる。


2016年7月29日金曜日

[cakephp] 一部のinputに付加されるhiddenフィールドを無効にする

一部の input タイプ(チェックボックス、ラジオボタン)では hidden フィールドが生成されるため、 $this->request->data の中のキーは値を伴わない形式でも 存在する。 これは $options['hiddenField'] = false とすることで無効にできる。 echo $this->Form->checkbox('published', array('hiddenField' => false));

2016年3月22日火曜日

php 5.6にしたcakephp 2.7.10で出たエラーメッセージ


対応

php.iniのalways_populate_raw_post_dataをアンコメントにする

Apacheを再起動する。

2016年3月14日月曜日

Windows+Apache+Mssql+Php


SQL ServerにApacheとPHPをインストールしてSFTPで編集ができるようにする。

OpenSSHのインストール


最新のOpenSSH-Win64.zipをダウンロードして"C:\opt\OpenSSH"に解凍する
パワーシェルを管理者権限で起動する
SSHキーを設定します sshdで利用するキーファイルを作成します。 もしくは ファイアウォールの設定 22番ポートを開放します。 sshdのセットアップ sshdセットアップ用のcmdを実行します。 リブート OSの再起動を行います。 sshdサービスへの登録 サービスで起動するようにsshdをサービスに登録します。 sshdサービスを起動 sshdをサービスから起動します。 windows起動時に自動でsshdを起動させたい場合は、こちらを実行 Macからwindowsにsshで接続 ForkLiftで接続してみる 繋がらない sftpサーバーの設定を忘れていた。 sshd_configを編集する。 これを 下記のようにする

sshd再起動する

Apacheとphp


phpとApacheのVCバージョンは合わせる必要があります。phpがVC11ならApacheもVC11に、phpがVC14だとApacheもVC14とVCが同じでないと正しく動作しない場合があります。
Microsoft Visual C++ 2012 再頒布可能パッケージ (x64)
Apache 2.4.18 Win64とPHP 5.6 VC11 x64 Thread Safeをダウンロードする
httpd-2.4.18-win64-VC11.zipを解凍する。 できたApache24をC:\opt\Apache24に移動
php-5.6.19-Win32-VC11-x64.zipを解凍する。
php-5.6.19-Win32-VC11-x64をC:\opt\phpに変名する。
WindowsのPathにC:\opt\OpenSSH;c:\opt\php;を登録。
php.ini-productionからphp.iniを作製
php.iniを編集
に変更 以下の行のセミコロンを外す 以下の行を追加 以下の行のセミコロンを外し値'Asia/Tokyo'を設定
マイクロソフトのサイトから
SQLSRV32.EXEをダウンロード
もしくは"Microsoft Drivers for PHP for SQL Server"を検索
SQLSRV32.EXEを解凍して
の2つのファイルをc:\opt\php\extに保存します。

Apache httpd.confの編集

ServerRoot、DocumentRoot等を設定します。 以下のコメントを外す 以下の行を追加します
そしてIPアドレスとホスト名を指定します。
ローカルサーバーならこんな感じ。

次にApacheをWindowsのサービスとして登録します。コマンドプロンプトを管理者権限で起動してから、C:\opt\Apache24\binフォルダに移動します。そして httpd -k install と入力すると登録完了です。
ファイアーウォールにWebの設定が無ければ下記を実行
C:\var\www\cakephpにcakephp-2.7.x を解凍
webrootのジャンクションをhtdocsに作る

htdocsに上記をphpinfo.phpで保存する。

2016年2月4日木曜日

[cakephp 2.x] CakePHPのセッション管理をDBに変更する

まず、"cake_sessions"というテーブルを作るのだが shellが使える環境であれば app/Config/Schema/sessions.php にスクリプトがあるので とやればテーブルができる。 shellが使えないならばクリエイト文で作る。mysqlならば以下のようになる。 テーブルができたならば次はcare.phpの に変更する。 cakephp-2.7 だと200行目くらいにある。

2014年7月29日火曜日

[cakephp 2.x][TwigView] readme.mdの通りにするとElementsが使えない。

{% element 'hoge' %}
とするとhtmlのタグとかは展開されるが変数やヘルパー関数が一切展開されない。 ではどうすればいいのか
{% include 'Elements/fuga.tpl' %}
こうすればいいらしい。 ちなみに 込み入った事をするのはやはりctpの方が得意なのでこんな事ができればいいなと思ってやってみたら
{% include 'Elements/fuga.ctp' %}
こうするのはやっぱりダメらしい。

2014年3月17日月曜日

[cakephp] Plugin TwitterBootstrapを使ったときのgetCrumbList

以下のようにするとTwitterBootstrap.BootstrapHtmlクラスのメソッドbreadcrumb()の出力と同様になる。
なお、'startText'は2.4から'text'に変わっているので注意する
<?php
  echo $this->Html->getCrumbList(
    array(
      'separator' => '&nbsp;<span class="divider">/</span>',
      'class' => 'breadcrumb'),
    array('text' => 'ホーム', )
  );
?>

2014年3月11日火曜日

さくらのレンタルサーバーでcakephpのBASIC認証が使えない訳

やらない方がいいと思うんだけど条件つきで
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /sandbox
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
# CGI版PHP用 BASIC認証の為
# CGI版PHPでは$_SERVER[’PHP_AUTH_USER’]と$_SERVER[’PHP_AUTH_PW’]が参照できない。
# でも下記の3行を追加すると使えるようになる
 RewriteEngine On
 RewriteCond %{HTTP:Authorization} ^(.*)
 RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule> 

参考:
PHP による HTTP 認証

Basic認証でのログアウトの仕方

2014年2月5日水曜日

[cakephp] jQueryのスクロールアップを使っているとdebug_kitがうまく動かない時の対策

以下のように、Configure::read('debug') == 0 の時以外は禁止にしておく

2014年1月22日水曜日

[cakephp 2.4] Htmlヘルパーのパンくずリスト

HtmlHelper::getCrumbList($options, $startText);
スタートテキストのリンク先がルートの時は
で良いのだが、リンク先がルートではなく違うURLにしたい時以下のようにする。

2013年10月15日火曜日

[cakephp] ファイルをダウンロードする

file_get_contentsを使う場合 cakephp 1.3 MediaView を使う場合 cakephp 2.X MediaView を使う場合 viewがviewClassとなる しかし2.3で撤廃となっているので2.4以降は次のCakeResponse::downloadを使う cakephp 2.4 以降であれば

2013年10月1日火曜日

[cakephp] PaginatorHelper::conter()の$options['format']の和訳

以下の文をapp/locale/jpn/LC_MESSAGES/default.poに記述する 1.3の場合 2.xの場合