C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2016年12月8日木曜日

[Ansible] Ansible2でのwith_itemsの使い方

16:18 Posted by Unknown No comments
お久しぶりです。エンジニアの井口です。

Ansible2からwith_itemsの使い方が
ちょっと変わったみたいです。

公式サイトでちょこっと説明されてます
Loops — Ansible Documentation

- name: Install System Packages
  sudo: yes
  apt: pkg={{ item }} state=latest
  with_items:
    - curl
    - wget
    - python-software-properties
これは使えますが、

- name: Install System Packages
  sudo: yes
  apt: pkg={{ item }} state=latest
  with_items: server.packages
これは使えません。
1系は使えてました。

2からは
- name: Install System Packages
  sudo: yes
  apt: pkg={{ item }} state=latest
  with_items: "{{ server.packages }}"
こんな風に

"{{ _______ }}"
でくくりましょう。


以上です(^^)


↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年4月25日月曜日

[Lambda][Elactic Transcoder]動画サービスの構築

17:59 Posted by Unknown , No comments
こんにちは!

エンジニアの井口です。

動画のニーズが高まってきている昨今です。
動画を動画ホスティングサービスではなく、自身のサービスとして保持したいというご要望も増えてきています。

動画のホスティングにyoutubeを利用するにしても、
ユーザに動画をアップしてもらうタイプのwebサービスにはその方法も使えません。

動画サービスを自社で管理する多大なコスト

動画を自社サービスとして保持する場合、必要になることが
・デスクトップ、モバイルデバイス、タブレット、およびテレビでの再生に最適化された、出力フォーマットにエンコード
・そのためにそれぞれのエンコード用のインフラ群構築
などになるのですが、
サービスを徐々に軌道に乗せながら、それらを維持、構築していくには、大きな予算が必要となります。

Elastic Transcoderの活用で開発・運用コストを削減

そんなときにコストを押さえつつ、非常に有効な手段となるのが、
AWSのElastic Transcoderです。


Amazon Elastic Transcoderのサービス概要
Elastic Transcoderは他のAWSサービスのように必要なときに必要なときだけ、
各動画エンコードへの変換などを
使った分だけ利用可能なサービスです。

このサービスは他のAwsのサービスである、Lambda(ラムダ)と非常に相性がよく、
今までの方法とはまったく別次元のハンドリングの良い開発が可能となりました。


AWSのストレージ機能である、S3にアップされた動画を自動的にLambdaが検知。
Lambdaが勝手にTranscoderを起動し、Transcoderのパイプラインに乗って
指定したデバイス用に変換された動画を、自動で指定されたS3に自動保存という芸当を
やってのけてくれます。

いままでは動画のアップロード、複数のエンコード、保存と、
複雑なシステム・インフラを構築せざるをえなかったものが、
クラウド側で自動でイベントが立ち、そのイベントが他のサービスに伝播し、それトリガーとして
やってくれるという画期的なサービスです。

プログラマーは各サービスを繋ぎ、
トリガー毎に発行されるにイベントに仕掛けを仕込むだけでよくなりました。


エンジニアにとって、プログラミングのスキルも当然大事ですが、
このようなクラウドのサービスの特性を理解し、
サービス同士の連携や、設定をこなせることもより重要になってきていると感じています。


動画サービスをご検討の方、ご相談下さい

動画を自社で管理されたい方や、
動画サービスを構築・運用されたい方など、
ご相談ありましたら、お気軽にお問い合わせ下さい。



↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年4月15日金曜日

[shibboleth]シボレスのSPを設定する

15:04 Posted by Unknown , No comments
こんにちは!

エンジニアの井口です。

学校でwebシステムを作る時など、
既存のID,パスワードでログインできないか??

そのようなご要望を多く頂きます。
その時よく聞くソフトウェアの名前はshibboleth(シボレス)。
一つのアカウントで複数のサービスへのログインを可能にする、
SSO(シングルサインオン)を実現するオープンソースのソフトウェアです。
Shibboleth


シボレスにはIdPとSPの認証する側、される側とあるのですが、
大体、shibbolethを導入しようとする大きな組織はIdPを自身で持っているか、
大きなIdPサービスに登録して利用しています。

ですので、案件で求められるのは、SPの設定というふうになります。


SPの設定方法

英語だけど公式サイトを見る

日本語のサイトもありますが、情報が古かったり、特殊な例だったりしますので・・・
NativeSPLinuxInstall - Shibboleth 2 - Confluence

SELinuxがOnだとインストールに失敗します。(インストール時のみ)
$ getenforce
Enforcing
$ sudo setenforce 0
$ getenforce
Permissive
PermissiveになっていればOK


インストール前の設定

NTPをインストール(インストールされていればOK)


CentOSが32bitか64bitか調べる。

$ uname -a
Linux hogehoge_host ____________.x86_64 #1 ____________ x86_64 x86_64 x86_64 GNU/Linux
今回は64bitです。
(yumでインストールする場合、分岐するので必ず調べる)


yumする前にリポジトリ追加

http://download.opensuse.org/repositories/security://shibboleth/
↑上記サイトで、該当OSを選択し、security:shibboleth.repoをwgetする
$ wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/security:shibboleth.repo
$ ls
security:shibboleth.repo
$ sudo cp security\:shibboleth.repo /etc/yum.repos.d/shibboleth.repo

mod_sslをインストール

$ sudo yum install mod_ssl

Install via RPM(yum)

注意点

32bitか64bitか調べた上でyumすること
これについては日本語サイトには書いていない
$ sudo yum install shibboleth.x86_64
いろいろインストール・設定してくれている(以下本家サイトから抜粋)
- Shibboleth configuration files will be placed at /etc/shibboleth/ and the necessary Apache configuration in /etc/httpd/conf.d/shib.conf
- shibd will be installed to /usr/sbin and may be managed using /sbin/service and /sbin/chkconfig
- An appropriate version of mod_shib and other pluggable modules will be installed to /usr/lib/shibboleth/
- Logs will be located in /var/log/httpd/native.log and /var/log/shibboleth


公式サイトに沿って設定

◯In httpd.conf:
UseCanonicalName On
Ensure that the ServerName directive is properly set, and that Apache is being started with SSL enabled.
◯Restart Apache.
◯/usr/sbin/shibd must be independently started and run in order to handle requests. The daemon should be loaded and monitored along with all other major services.
◯Restart shibboleth
/sbin/service shibd start
◯By default, the Shibboleth module is configured to log information on behalf of Apache to /var/log/httpd/native.log
◯shibd creates its own separate logs at /var/log/shibboleth
$ cd /etc/httpd/conf
$ sudo vi httpd.conf
+# 追記
+UseCanonicalName On

$ cd /etc/httpd/conf.d
$ sudo vi ssl.conf
-ServerName www.example.com:443
+ServerName ____your.domain____:443

$ sudo service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

$ sudo /sbin/service shibd start
Redirecting to /bin/systemctl start  shibd.service


shibbolethのログを確認するには

ここが詳しいです。
SPセッティング - GakuNinShibInstall - meatwiki
/var/log/shibboleth/{shibd.log, shibd_warn.log}
  SPに関する、SAML関連、Metadata関連、セキュリティ関連のログです。通常は、こちらのログを参照ください。

/var/log/shibboleth-www/{native.log, native_warn.log}
  Apacheモジュールmod_shibのログです。shidb.logでは情報が足りない場合は、こちらのログを参照ください。
  (SP 2.5.3およびそれ以前からアップデートして使っている場合は/var/log/httpd/以下に出力されている場合、もしくは出力に失敗している場合があります。最新版にアップデート後 /etc/shibboleth/native.logger.dist を参考にして出力先を上記に変更してください。)

/var/log/shibboleth/transaction.log
  SPのトランザクションに関するログです。セッションの開始や終了、属性等が含まれます。
なお、これらログファイルに関する設定は、/etc/shibboleth/{shibd.logger , native.logger} にあります。



Shibboleth SPの設定(xmlの設定)

xmlの設定については接続するIdPにより癖が随分違う(と思う)

ポイントと思うのは

---------------
☆example-shibboleth2.xmlというファイルがイントール後に/etc/shibbolethの中にある。
これをコピーして作成すること。
そうしないと、
「SAML 2.0 ACS endpointのエラーどーちゃらこーちゃら」がでて全く進めなくなる。
上記エラーは、
系の設定の記述が無いということらしいので、
example-shibboleth2.xmlから作成という流れ
---------------
shibboleth2.xmlを変更したら、shibdとapacheの両方をリスタート!
---------------



ログイン後にエラーがでたら・・・

2016-03-30 15:05:23 WARN Shibboleth.SSO.SAML2 [25]: found encrypted assertions, but no CredentialResolver was available
2016-03-30 15:05:23 ERROR Shibboleth.SSO.SAML2 [25]: failed to decrypt assertion: No CredentialResolver supplied to provide decryption keys.
SSLのキーは暗号化してあると読み込めない!
形式を変更すればOK。
$ sudo openssl rsa -text -in キーファイル名
これをshibboleth2.xmlに記載してapache, shibboleth再起動




↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年4月8日金曜日

[Yii2]GridViewのfilter機能であれこれやりたい

12:55 Posted by Unknown , No comments
こんにちは エンジニアの井口です
Yii2のGridViewのお話。

一覧ページを作成するのに非常に強力なGridViewですが、
これまた強力なfilter機能を備えています。

各カラムで設定したmodelのattributeなどで勝手にfilterリングしてくれます。
↓GridViewのUI


GridViewのドキュメント
GridView, yii\grid\GridView - Yii Framework 2.0 API Documentation

今日はそのfilterで色々なことをやりたい時のメモです。

■セレクトボックスで検索させたい!


このようにセレクトボックスでフィルタリングさせたいことは多々あると思います。

コードは
[
    'attribute' => 'machine_id',
    'filter' => \yii\helpers\ArrayHelper::map(Machine::find()->asArray()->all(), 'id', 'name'),
    'value' => function($data) {
        return Html::a($data->machine_name, ['/machine/view', 'id' => $data->machine_id]);
    },
    'format' => 'html',
],
こういうふうにします。

ポイントは、
  1. filterパラメータで配列を指定する!
  2. どの検索項目に当たるか?はattributeパラメータで指定
  3. \yii\helpers\ArrayHelperを使ってその場で設定用配列をカジュアルに作成
  4. formatをhtmlまたはrawにしてリンクを表示できるようにする
以上となります。

これでFilter部分にセレクトボックスが出現します。
選択の配列が入り組む場合は、filterで渡す配列をmodelの方にstaticなmethodとして書いちゃってもいいですね。

ArrayHelperのドキュメント
ArrayHelper, yii\helpers\ArrayHelper - Yii Framework 2.0 API Documentation

■datePickerで検索させたい!!


このようにフィルター部分にでDatePickerを表示させたいこともあるかと思います。

コードは
[
    'label' => '利用日',
    'attribute' => 'use_day',
    'value' => 'ymd_date',
    'format' => 'raw',
    'filter' => \yii\jui\DatePicker::widget([
        'model' => $searchModel,
        'attribute' => 'use_day',
        'language' => 'ja',
        'dateFormat' => 'yyyy-MM-dd',
        'options' => [
            'class' => 'form-control'
        ]
    ]),
],
こうなります。

ポイントは、
  1. filterパラメータで\yii\jui\DatePickerを指定する!
  2. どの検索項目に当たるか?はattributeパラメータで指定
  3. filterパラメータの中のmodelとattributeも忘れず指定! ←重要
  4. filterパラメータの中の、modelで、$searchModelを指定!(今ループさせてるmodelを指定する)
  5. labelはおこのみで指定(attributeの自動取得に任せても良い)
以上となります。


これで簡単にフィルター部分にDatePickerが出現します。

filterにdatepickerを表示させたりということを扱っているサイトが少なかったので、
メモしておきます。

DatePickerについてはGithubにも他にいろいろあるようですが、
公式のjuiでもうまくできたので、
いまのところ他のDatePickerを使う必要ないかなって思ってます。

DatePickerのドキュメント
DatePicker, yii\jui\DatePicker - Yii Framework 2.0 API Documentation


この記事がだれかの助けになれば幸いです。




↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年4月4日月曜日

[Yii2]backendをサブドメイン使わずに簡単に設置する方法

17:31 Posted by Unknown , No comments
こんにちは エンジニアの井口です
今日もYii2のお話です。

backendとfrontendにわかれたapp構造で、
・サブドメインを使わずに
・構造を保ったままで
簡単に設定・設置する方法です。

まぁ、やり方はすべてここに書いてあります。
yii2-app-advanced on single domain (Apache, Nginx) | Wiki | Yii PHP Framework

ln で シンボリック・リンク を作る。以上です!


$ cd /path/to/project/frontend/web
$ ln -s ../../backend/web backend

以上で完了です。

上記の例では、
ドメイン/backendで backendにアクセスできるようになります。

こういう構造に柔軟に対応できうように、
URLの指定は、
URLクラスを通して設定しましょうね。

Urlクラスの作り方は公式ドキュメントを参考に・・
Url, yii\helpers\Url - Yii Framework 2.0 API Documentation
Routing and URL Creation - Handling Requests - The Definitive Guide to Yii 2.0


以上です。




↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年3月26日土曜日

[Composer]なんかまたエラーがでて進めない

13:31 Posted by Unknown , No comments
こんにちは、エンジニアの井口です。

composerのfxp/composer-asset-pluginはめんどくさい

便利なcomposerですが、
ちょっと前にcomposerでエラーがでて、
composer global require "fxp/composer-asset-plugin:~1.0.3"
なんかしたりして対処してめんどくせってなってましたが、
最近やるとまたなんかエラーが出ると・・

fxp/composer-asset-pluginに関しては、ちょこちょこと推奨バージョンが変更になっているようです。
めんどくさいので、対処法メモしておきます。

参考:solr - yii2 composer update fatal error - Stack Overflow

-------------

1) Composer Asset Pluginを削除

composer global remove "fxp/composer-asset-plugin"

2) fxp/composer-asset-pluginの推奨バージョンをインストール

推奨バージョンはココで確認
composer global require "fxp/composer-asset-plugin:*"

3) composer installして、エラーでるならvendorフォルダ内とcomposer.logを消去して再度試す



以上メモでした。



↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年3月22日火曜日

JAWS 2016に参加してきました

11:55 Posted by Unknown , No comments
エンジニアの井口です。

先日東京でJAWS 2016 という、日本最大のAWSユーザグループのイベントに参加してきましたので、
感想などまとめておきたいと思います。

[JAWS 2016 総まとめ]
[JAWS 2016のタイムテーブル]

せっかく行ったので、一番Deepなのを聞いてきましたw

1500人規模のイベントで同時に5つのセッションが行われ、
私は「AWS Technical Deep Dive」という
技術寄りのセッションをずっと聞いてました。

セッションは前半後半に分かれ、
前半がユーザセッション、後半がAWS内部の人が補足説明という進行でした。
この進行の仕方はわかりやすいですね。
前半でヘビーユーザのリアルなユースケースが聞けて、
それをふまえて、後半、AWSのエンジニアの方から補足+アルファの
「こういう使い方もある」とか「一般的にはこういう使い方」という
かゆい部分に届く説明があるといった感じで、
AWSの各サービスをより深く知ることができました。

以下 私がきいたセッション内容題目

[Deep Dive]AWS Mobile Services
Cognitoでお手軽クラウドソーシング
足立陽一[有限会社 来栖川電算]
[スライドはこちら]
-----------
Amazon Cognito Deep Dive
塚田 朗弘[AWSJ SA]
[スライドはこちら]
[Deep Dive]AWS Big Data
スマートニュースにおけるストリーム処理の過去・現在・未来
坂本卓巳[スマートニュース株式会社]
[スライドはこちら]
-----------
Big DataとContainerとStreaming – AWSでのクラスタ構成とストリーミング処理
岩永 亮介[AWSJ SA]
[スライドはこちら]
[Deep Dive]AWS IoT
AWS IoTで家庭内IoTをやってみた
土持昌志[JAWS-UG 大阪]
[スライドはこちら]
-----------
AWS IoT デザインパターン
福井 厚[AWSJ SA] / 下佐粉 昭[AWSJ SA]
[スライドはこちら]
[Deep Dive]Amazon API Gateway & Lambda
オペ担当がAPI Gateway + Lambdaでチケット処理を自動化した話。
植木 和樹[JAWS-UG 上越妙高支部]
スはこちら]ライド
-----------
Amazon API Gateaway / AWS Lambda Deep Dive(の触りだけ)
西谷 圭介[AWSJ SA]
[スライドはこちら]
[Deep Dive]Amazon Aurora
「クラウドソーシングLancers」を支えるAurora
金澤 裕毅
[ランサーズ株式会社]
[スライドはこちら]
-----------
Amazon Aurora最新update – Amazon Aurora GAのその後
星野 豊[AWSJ SA]
[スライドはこちら]


EC2を極力立てない

従来のEC2を立てて、負荷分散して〜・・・という方法では
開発が追いつかなくなる時代が来てるのかなという事。

・Cognito(コグニート)の認証
・Kinesis(キネシス)データストリーム
・Lambda(ラムダ)のコンテナ
・API GatewayのURLハンドリング
・DinamoDB(ダイナモDB)NoSQL

とEC2と持たずに、負荷分散などほとんど考えずに
コストを抑えて大規模サービスを展開できる時代になったのだ、という
事を思いました。

ロックインしちゃってみる

こういった構造のアプリケーションを
2-Tier Architecture(ツーティア アーキテクチャ)
というらしいのですが、
このようなクラウドを利用するだけでなく、
その特性を踏まえた、というか
それを前提としたサービスづくり
これから重要度を増してくるように思いました。

クラウドの特性に依存しすぎて、
他のサービス(クラウド)に移行できない状況を
「ロックイン」というらしいですが、
AWSのここまでの機能を見せつけられ、
それに、他の大規模サービスが当然のように活用している状況を見ると、
逆に、AWSで作られたサービスに対抗するように
他のクラウドサービスが何らかの同等サービスを展開しないと
そもそもクラウドサービスで生き残れないような時代になるのではと
思います。

先日のFacebookのParseの終了の発表もそういう部分で、
AWSや他クラウドサービスに追いつけないと感じたことが原因かもしれないなと思いました。


体験してみなきゃわからない

弊社も早く、
2-Tier Architectureで何か作成しないと
時代に乗り遅れるな、、、とかあせりつつ、
地道に今現役のサービスや技術を磨く必要もあると
なかなか大変なワクワクする状況だなと思っております。

このワクワクをずっと感じていけるよう、新しい波に乗り遅れることなく
乗りこなしていきたいと思いました。

そんな未来の開発手法や開発の方向性を感じることができる
有意義なイベントでした。
また来年も参加したいです。


↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2016年3月19日土曜日

[Yii2]サーバ側でドキュメントルートを変更できない場合のYii側の設定方法

3:06 Posted by Unknown No comments
日々お疲れ様です。
クライマーの井口です。

日々充実しすぎて大変です 笑

ところで、
レンタルサーバなどにYii2を設置する場合、
ドキュメントルートの設定変更ができず困ることがあります。
ちょうどさっき困ってました。

対処法の備考録です。
※この対処法が効かないサーバもあります。
(そもそもmod_rewriteの機能を制限しているようなへんてこサーバも有りますので要注意です)

実際のドキュメントルート: wwwディレクトリとした場合

www/app/以下にyii2を配置する想定のお話です。
yii2はbasic templateを使用した場合を想定しています。
(frontendとbackendがわかれないやつ)

www/app/config/web.php(メインの設定ファイル)に追記する内容
use \yii\web\Request;
$baseUrl = str_replace('/app/web', '', (new Request)->getBaseUrl());

return [
    'basePath' => dirname(__DIR__),
    'components' => [

        'request' => [
            'baseUrl' => $baseUrl,
        ],
        'urlManager' => [
            'baseUrl' => $baseUrl,
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/page'
            ],
        ],
    ],
];

www直下に.htaccess
RewriteEngine on
RewriteRule ^(.*)$ app/web/$1 [L]


app/web/直下のhtaccess
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php


このように設定した場合、トップページへのリンク方法は
Yii::$app->request->baseUrl を使わず、
Url::to(['/']);

を使いましょう。


以上、備考録でした。

-----------------------------------------------
弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 ・Iot開発 C-limber(クライマー)株式会社


2016年2月24日水曜日

[Yii1] IndexControllerをデフォルトにしない

11:35 Posted by Unknown No comments
こんにちは!
エンジニアの井口です。

Yii2の事を書くと言っていましたが、
Yii1で新たな罠(?)がありましたので、共有します。


Yii1はデフォルトコントローラを config/main.phpで指定できます。

'defaultController'=>'index',

このように設定すると、当然デフォルトがIndexControllerとなり、
ドメイン直アクセスで表示されるページは
IndexControllerになります。


自社でサーバ設定を変更出来る場合はいいのですが、
自社でサーバ設定が変更できない場合、
特にWordpressや他のCMSなどがすでに存在しているサーバで、
サブディレクトリにYiiを設置しないといけない場合など、
制約が厳しい時、非常に困ったことになる可能性があります。


上の階層で、mod_rewriteのRedirectBaseなどが設定してあると、
Yiiが設置してあるサブドメインへ直アクセス(IndexControllerへのアクセス)した場合、
mod_rewriteの設定が下階層まで効いてしまい
ページが表示されない可能性があります。


この対処法ですが
単純に
PageControllerなど、IndexController以外の名前であればアクセスが可能です。


デフォルトコントローラはIndexControllerにしない事!


クライアントのサーバにYiiを設置する場合などはお気をつけ下さい。



ちなみにYiiのコントローラ、アクションのルーティングのデフォルトはそれぞれ、

-------
Controller => default (DefaultController)
Action => index (actionIndex)
-------

となります(^^)



デフォルトアクションを設定する場合は、クラスのプロパティで
class TestController extends CController
{

  public $defaultAction = 'test';

  public function actionTest()
  {

  }

}

と設定します。




-----------------------------------------------
弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 ・Iot開発 C-limber(クライマー)株式会社


2016年2月22日月曜日

[Yii2]Yii2への移行だよ

17:11 Posted by Unknown No comments
超久しぶりです。
エンジニアの井口です。

ウチの会社では
YiiFrameworkという世界でシェアは高いのですが、
日本ではとてもとても珍しい部類のフレームワークを
メインフレームワークとして使っているわけですが、
YiiFrameworkにもめでたいことに メジャーバージョンアップがあり、
大幅な仕様変更がありました。

このバージョンアップでYiiがより良くなったのですが、
とりあえずどう良くなったのか、
また、実装方法など、社内の備考録も兼ねてこれからちょこちょこと
書いていきたいと思います。

よろしくお願いします。


-----------------------------------------------
弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社