#author("2016-09-11T15:14:29+09:00","default:nowsky","nowsky")
#author("2016-09-17T00:08:06+09:00","default:nowsky","nowsky")
*Joomla [#qeeb8c19]
-[[Joomla! The CMS Trusted:+https://www.joomla.org/]]
-[[Jommla! JAPAN:+http://www.joomla.jp/]]
-[[Joomla! JAPAN:+http://www.joomla.jp/]]

大規模システム向けのCMSツール。設定次第でWebページ、ブログ、Wiki等を構築する事が出来る。
カスタマイズ性を求めるならばJommlaの方がWordPressより楽にカスタマイズする事が出来る。
特長の一つとして、OSSのCMSなのに利用可能データベースの一つとして、&font(b){MS SQL Serverをサポートしている事。};
また、WebサーバにIISを用いても動作するので、IISとMSSQL連携時の技術検証用としても重宝する。
 
特長の一つとして、OSS形式のCMSなのにデータベースとして、&font(b){MS SQL Serverをサポートしている事。};
また、WebサーバにIISを用いても動作するので、IIS+MSSQLの技術検証用としても重宝する。
 
上記の様に、クロスプラットフォーム対応がfont(b){無料の範疇で進んでいる};為、
上記の様に、クロスプラットフォーム対応が&font(b){無料の範疇で進んでいる};為、
WebサーバはApache・DBサーバはMSSQL等の変則的な構成も作る事が出来る。
~
*インストール [#e8782cba]
&size(16){&font(b){0. 前提条件};};
-構築環境
 [VM]:  Hyper-V ver6.3.9600
 [OS]:  WindowsServer2012R2 64bit
 [MEM]: 4GB
 [HDD]: C:50GB / D:50GB
 [SQL]: SQL Server 2016 Express
 [IIS]: IIS 8.5.9600
 [CMS]: Joomla! ver3.6.2
 [DIR]: C:\inetpub\wwwroot\joomla

~
&size(16){&font(b){1. インストール作業};};
事前に、[[IIS:+http://www.ns-lab.org/wiki/?Windows/Binary/IIS]]と[[MSSQL:+http://www.ns-lab.org/wiki/?Windows/Binary/MSSQL]]の設定を済ませておく。
自環境だと、日本語版をインストールしても日本語が反映されなかったので、
オフィシャル版をインストールした後に日本語ライブラリを追加する事で、Joomlaのローカライズを行う。
日本語版についてはJoomla Japanで配布しているが、インストールしても日本語が反映されなかったので、
オフィシャル版をインストールした後に日本語ライブラリを追加する事で、日本語ローカライズを行う。
 
#region(Joomla インストール手順)
>&ref(joomla_inst_01.png,left,nowrap,60%);
Joomlaのパッケージを &font(b){"C:\inetpub\wwwroot\joomla"}; に展開したら、
インストール時限定で &font(b){"IIS_IUSRS"}; に &font(b){"フルコントロール権限"}; を設定する。
インストール時限定で「IIS_IUSRS」に「フルコントロール権限」を付与する。
 
>&ref(joomla_inst_02.png,left,nowrap,50%);
Webブラウザで &font(b){"http://{WebサーバIPアドレス}/joomla/"}; にアクセスする
そうすると、インストール画面にリダイレクトされるので、必要事項を画面に入力する。
すると、インストール画面にリダイレクトされるので設定事項を画面に入力する。
この時、サイトオフラインは必要に応じてON/OFFを切り替える。
 
>&ref(joomla_inst_03.png,left,nowrap,50%);
データベース種類に "Microsoft SQL Server" を選択した上で、データベースの接続情報を入力する。
データベース種類に「Microsoft SQL Server」を選択した上で、データベースの接続情報を入力する。
この画面でSQL Serverが選択出来ない場合、PHPエクステンションの読込みに失敗しているので、
[[MSSQLの設定方法:+http://www.ns-lab.org/wiki/?Windows/Binary/MSSQL]]を参考に修正を行う。
 
>&ref(joomla_inst_04.png,left,nowrap,50%);
FTPモードは今回使わないので、設定をdisableにする。
FTPモードは今回使わないので、FTPモードを停止させる。
ちなみに、Windows ServerでFTPモードを使う場合、IISの設定変更が必要になる。
 
>&ref(joomla_inst_05.png,left,nowrap,50%);
今回はグローバル言語でインストールした後に、日本語へローカライズする為、
サンプルデータのインストールで「サイト 英語(GB)」を選択する。
 
>&ref(joomla_inst_06.png,left,nowrap,50%);
インストーラが走り出すので暫く放置する。
完了したら、画面に従って「installationディレクトリを削除」のボタンを押してインストールを完了する。
管理画面には &font(b){"http://{WebサーバIPアドレス}/joomla/administrator/"}; でログイン出来る。
#endregion

~
&size(16){&font(b){2. ローカライズ};};
現状では言語設定が英語になっているので、日本語にローカライズを行う。
普通ならばエラー出ずに作業が完了する筈なのだが、
ローカライズファイルをインストールする時にDBエラーが出てしまう為、
現状では言語設定が英語になっているので日本語にローカライズを行う。
普通ならばエラー出ずに作業が完了する筈なのだが、言語データをインストールする時にDBエラーが出てしまう為、
&font(b){手動でDBの設定変更};をする事でエラーを回避し日本語化を完了させる。
なお、DBの操作は全てSSMSで行う為、事前にSSMSのインストールを完了させておく。
DBの操作は全てSSMSで行う為、事前にSSMSのインストールを完了させておく。
 
>&ref(joomla_sql_01.png,left,nowrap,60%);
-[ツール] -> [オプション] -> [デザイナ] -> [テーブル デザイナおよびデータベース デザイナ] ->
#region(Joomlaの日本語化)
-SQL Serverのテーブル設計変更制限を一時的に解除する
[ツール] -> [オプション] -> [デザイナ] -> [テーブル デザイナおよびデータベース デザイナ] ->
[テーブルの再生成を必要とする変更を保存できないようにする] の&font(b){チェックを外す};
-[JommlaDB] -> [dbo.***_extensions] -> [列:custom_data] ->

 
>&ref(joomla_sql_01.png,left,nowrap,40%);
[JoomlaDB] -> [dbo.***_extensions] -> [列:custom_data] ->
[列名:custom_data / データ型:nvarchar(MAX)] の&font(b){NULLを許容にチェックを入れる};

 
>&ref(joomla_sql_02.png,left,nowrap,60%);
Joomlaの管理者画面を開き、 下記要領でローカライズデータをインストールする。
-Joomlaの管理者画面を開き、 下記要領でローカライズデータをインストールする。
[Extensions] -> [Languages] -> [Installed] -> [Install Languages] -> [Japanese] -> [Install]

 
>&ref(joomla_sql_03.png,left,nowrap,60%);
Joomlaの管理者画面を開き、既存のコンテンツローカライズ設定を変更する
[Extensions] -> [Languages] -> [Content Languages] -> [New]
>&ref(joomla_sql_02.png,left,nowrap,60%);
|Title            |English (UK)|
|Title Native     |English (UK)|
|Language Tag     |en-GB       |
|URL Language Code|en          |
|Image Prefix     |en          |
|Status           |Published   |
|Access           |Registered  |
Joomlaの管理者画面を開き、既存のコンテンツローカライズ設定を変更する
[Extensions] -> [Languages] -> [Content Languages] -> [New]
 
>&ref(joomla_sql_04.png,left,nowrap,60%);
Joomlaの管理者画面を開き、 下記要領でコンテンツのローカライズ設定を行う
[Extensions] -> [Languages] -> [Content Languages] -> [New]
>&ref(joomla_sql_03.png,left,nowrap,60%);
|Title            |日本語 (JP)|
|Title Native     |日本語 (JP)|
|Language Tag     |ja-JP      |
|URL Language Code|ja         |
|Image Prefix     |ja         |
|Status           |Published  |
|Access           |Public     |
Joomlaの管理者画面を開き、 上記の通りにコンテンツのローカライズ設定を行う
[Extensions] -> [Languages] -> [Content Languages] -> [New]
 
>&ref(joomla_sql_05.png,left,nowrap,60%);
Joomlaのデータベースを直接編集し、
adminとsiteのデフォルト言語を &font(b){"en-GB"}; から &font(b){"ja-JP"}; に書き換える
>&ref(joomla_sql_04.png,left,nowrap,60%);
Joomlaのデータベースを直接編集し、デフォルト言語を &font(b){"en-GB"}; から &font(b){"ja-JP"}; に書き換える。
[JoomlaDB] -> [dbo.***_extensions] -> [name:com_languages] ->
[params:{"administrator":"ja-JP","site":"ja-JP"}] に&font(b){書き換える};

 
-一時的に変更した「テーブル設計変更制限」と「custom_dataのNULL許容」を元に戻す。
[テーブル デザイナおよびデータベース デザイナ] -> [テーブルの再生成を...] に&font(b){チェックを入れる};
[dbo.***_extensions] -> [列名:custom_data / データ型:nvarchar(MAX)] の&font(b){NULLを許容のチェックを図ス};
#endregion

~
&size(16){&font(b){3. 参照権限の修正};};
-参考サイト:[[COMPNET - Joomla! を弄ってみた [準備編]:+https://www.compnet.jp/archives/1231]]

インストール時の処置としてIISにフルコントロール権限を付与しているので、参照権限を本来の値に修正する。
パーミッションについては、Joomlaのシステム情報から参照出来るので、確認しながら書き込み権限の付与を行う。
 
#region(パーミッション変更手順)
-フルコントロール権限の削除
Joomlaのインストール先ディレクトリ &font(b){"C:\inetpub\wwwroot\joomla"}; に設定している、
「IIS_IUSRS」の「フルコントロール権限」を&font(b){全て削除};する

 
>&ref(joomla_perm_01.png,left,nowrap,40%);
Joomlaの管理画面を開きパーミッション情報を確認してリストを控えておく。
[システム] -> [システム情報] -> [フォルダ パーミッション] -> リストを全てコピー
 
>&ref(joomla_perm_02.png,left,nowrap,45%); &ref(joomla_perm_03.png,left,nowrap,45%);
ファイルとディレクトリのパーミッションを、設定例の様に変更する。
コマンドで一括変更する場合、管理者権限のコマンドプロンプトに下記を流し込む。
 icacls C:\inetpub\wwwroot\joomla\administrator/components /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/language /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/language/en-GB /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/language/ja-JP /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/language/overrides /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/manifests/files /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/manifests/libraries /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/manifests/packages /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/modules /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/templates /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\components /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\images /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\images/banners /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\images/headers /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\images/sampledata /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\language /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\language/en-GB /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\language/ja-JP /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\language/overrides /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\libraries /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\media /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\modules /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/authentication /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/captcha /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/content /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/editors /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/editors-xtd /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/extension /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/finder /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/installer /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/quickicon /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/search /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/system /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/twofactorauth /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\plugins/user /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\templates /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\configuration.php /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\cache /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/cache /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\administrator/logs /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 icacls C:\inetpub\wwwroot\joomla\tmp /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
#endregion

~
&size(16){&font(b){4. PHPキャッシュの追加};};
環境によっては、PHPキャッシュディレクトリを追加指定しないと、
Joomlaのテンプレートインストール機能が動かない場合がある。
構築した環境が該当するか調べるには、 [エクステンション] -> [管理] -> [警告] を確認する。
PHPキャッシュを &font(b){"C:\inetpub\temp\php"}; に作成する場合の例を参考までにメモしておく。
 
#region(PHPキャッシュ設定例)
 コマンドプロンプトで実行
 ---
 mkdir C:\inetpub\temp\php
 icacls C:\inetpub\temp\php /grant:r IIS_IUSRS:(RX,W) IIS_IUSRS:(OI)(CI)(IO)(M)
 
 php.iniを編集
 ---
 file_uploads   = On
 memory_limit   = 32M
 post_max_size  = 32M
 upload_tmp_dir = "C:\inetpub\temp\php"
 upload_max_filesize = 16M
#endregion