Ubuntu 14.04 LTSにApache2とMySQLとPHP5.5をインストールしてEC-CUBE2.13.5を動かした時のメモ

EC-CUBE2がUbuntu 16.04とPHP7.0ではinstallが真っ白になって動かなかったので、Ubuntu 14.04とPHP5.5で動かした時の設定やコマンドメモ書きです。
Ubuntu 16.04でもがんばればPHP5.6をインストールできるみたいなんですが、テストだった事といろいろ疲れていたのでダウングレードしてしまいました。
時代はDockerコンテナで、必要な環境を用意するんでしょうけどね。

さくらのVPS 512で、Ubuntu 14.04をカスタムインストール後、下記を実行しています。

# ホスト名を設定
sudo hostnamectl set-hostname yamahide.biz

# パッケージライブラリ更新とアップグレード
sudo apt-get update
sudo apt-get upgrade

# アップグレードの自動化
sudo apt-get -y install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# アップグレードの設定変更 コメントを削除
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
“${distro_id}:${distro_codename}-updates”;

# TeraTermで作成したid_rsa.pubをドラック&ドロップしてSCPで転送
# SSHを証明書のみで認証するようにする事前作業
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub

# SSHの設定変更、ポート変更とパスワード認証から変更
sudo vi /etc/ssh/sshd_config
Port 50022
LoginGraceTime 20
PermitRootLogin no
PasswordAuthentication no
# SSH再起動してポートが開いたか確認
sudo service ssh restart
sudo lsof -nPi:50022

# ファイヤーウォールとポート開放の設定
sudo apt-get -y install ufw
sudo ufw allow 50022
sudo ufw allow 80
sudo ufw allow 443
sudo ufw default deny
sudo ufw enable

# ファイヤーウォールの設定確認
sudo ufw status

# 日本語フォントのインストールとOS言語の設定
sudo apt-get -y install fonts-ipafont language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8

# Apache2とMySQLのインストール、MySQLはパスワード設定
sudo apt-get -y install libxml2-dev pkg-config libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev apache2 libfreetype6-dev libgmp3-dev libmcrypt-dev mysql-server libmysqlclient-dev libpspell-dev librecode-dev apache2-dev
# PHP5のインストール
sudo apt-get -y install php5 php5-fpm php5-dev php5-curl php5-mysql php5-mcrypt libapache2-mod-php5 php5-apcu php5-fpm php5-gd php5-gmp php5-snmp php-soap php5-sqlite

# mod_rewriteとssl有効化
sudo a2enmod rewrite
sudo a2enmod ssl
sudo service apache2 restart

# PHPのテスト
sudo vi /var/www/html/info.php
<?php
phpinfo();
?>

# MySQL文字化け対策にUTF-8へ変更する
sudo vi /etc/mysql/my.cnf
[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8
# MySQL再起動して反映
sudo /etc/init.d/mysql restart

# メール送信サーバ
sudo apt-get -y install postfix
⇒手順 http://qiita.com/mizuki_takahashi/items/1b33e1f679359827c17d

Windows 10にてイーサネット接続も従量制課金接続と認識させる

Windows 10にて、携帯3G,4Gでインターネット接続の場合は従量制課金接続として自動認識され、下記のような動作となります。
・Windows Updateで、低優先度の更新プログラムはダウンロードされない
・Windows Updateで、ドライバーがインストールされない
・Windows ストアで、アプリケーションのダウンロードが一時停止される
・スタート画面で、アプリ情報の更新通知が停止する
・同期センターで、オフラインファイルが同期されなくなる

従量制課金接続はWi-Fiでも設定可能です。Microsoftより下記のように設定手順が公開されています。
・Microsoft – Windows 10 での従量制課金接続
https://support.microsoft.com/ja-jp/instantanswers/633571e5-3591-437d-bf6a-071a243305a7/
⇒まず、[スタート]をクリックし、[設定]、[ネットワークとインターネット]、[Wi-Fi]、[既知のネットワークの管理]の順に選びます。
⇒[Wi-Fi ネットワーク]、[プロパティ]の順に選び、[従量制課金接続として設定する]をオンにします。

この設定を、Wi-Fiではなくイーサネット接続(LAN)でも設定してみました。
頻繁にWindows Updateにて再起動される場合も、この設定で重要なものしか更新されないため頻度が下がります。


まず[スタート]をクリックするかCortana(コルタナ)の入力ボックスに「regedit」と入力してレジストリエディターを起動します。
起動後、左側のツリーにて次の場所を開いていき、DefaultMediaCostを右クリックして「アクセス許可」を押します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost


アクセス許可では下にあるボタン「詳細設定」を開きます。


セキュリティの詳細設定が表示されるので、一番上の所有者 TrustedInstallerの右にある「変更」を押します。


ユーザーまたはグループの選択にて「Administrators」と入力してOKを押します。


セキュリティの詳細設定に戻るので、右下の「適用」を押した後に「OK」を押して閉じます。


アクセス許可に戻るので、上のグループ名またはユーザー名にてAdministratorsを選択して、下のボックスでフルコントロールの許可にチェックを入れて、右下の「適用」を押した後に「OK」を押して閉じます。


レジストリエディタにて右側の表示される「Ethenet」をダブルクリックにて開き、値のデータを「2」に変更してOKを押します。

これでLAN接続も従量課金のネットワークとして認識され、更新が抑制されるはずです。
ただし何時までたっても優先度の低い更新パッチが適用されなくなるので、その点は注意です。

DISMコマンドを使用してWindows 10イメージを修復する

Windows 10をアップグレードインストールなどしている場合に、ソフトウェアの行儀が悪いなどでOSが正常に動かなくなることがあります。
このような場合にWindowsのシステム修復機能というものがあり、システムファイルチェッカーツール(sfc.exe)を使用してWindowsのエラーを修復することができますが、その時にうまく実行できないときの対処です。


sfc /scannowはWindows 10が保存しているイメージファイルを元に、OSシステムファイルを修復・再インストールします。
sfcがうまく動かないということは、このイメージファイルを修復する必要があります。

まずWindows 10のDVDメディアを持っている場合はそれを読み込ませ、DVDを持っていない場合は下記より.isoファイルをダウンロードします。
・Windows 10 のディスク イメージ (ISO ファイル) のダウンロード

今回の場合はWin10_1607_Japanese_x64.isoというファイルで、これを選択して右クリック「マウント」を選択してください。

次にエクスプローラーでPCを開き、DVDのドライブ名を確認します。今回の場合はD:\ドライブとなります。


そして右下のWindowsマークを右クリックして「コマンドプロンプト(管理者)」を開き次のような文字列を入力してEnterキーを押します。赤字のD:\は先ほど確認したドライブ名なので、自分の環境に合わせて変更する必要があります。
DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:D:\Sources\Install.wim:1 /LimitAccess

しばらく待つとWindows 10イメージファイルの復元操作が完了するので、もう一度「sfc /scannow」を実行すれば完了です。

サクラエディタのメニューアイコンが表示されなくなったときの対処


起因はよくわかりませんが、いつの間にかメニューアイコンがすべて非表示となり保存ボタンなどもなくなってしまいました。

このような場合、[設定]=>[共通設定]から「ツールバー」を開きすべて元通りに再設定できます。
ただし設定が初期化されてもよい場合は、サクラエディタをすべて終了した上で、エクスプローラーから %UserProfile%\AppData\Roaming\sakura\ を開き、sakura.iniファイルを削除することでアイコンが表示されるようになります。

空き容量が少なくなったときの「ディスク容量不足」を表示しないようにする

少し古いネットブック(ノートパソコン)やタブレット端末でWindows 7を使用していると、C:\ドライブの空き容量不足などで下記がよく表示されます。
lack-of-disk-space
ディスク容量不足
ドライブ ローカル ディスク (C:\) のディスクの空き容量が少なくなっています。
ここをクリックして、このドライブの領域を開放できるかどうか確認してください。

通知に書いてあるとおりクリックして確認しても、実際には消せるファイルはほとんど無い場合もあります。
そんな場合でも、問答無用でこの通知は表示され続けるので、それを無効化する手順です。

まず[スタート]から[コントロールパネル]を開き”すべてのコントロールパネル項目”にある「通知領域アイコン」をクリックするか、または右下の上向き2重三角をクリックしてカスタマイズを押します。
表示されたアイコンと通知の選択に「エクスプローラー ディスク領域不足」があるので、ここを「アイコンと通知を非表示」にしてあげれば完了です。
lack-of-disk-space-explorer

根本的には、CドライブにあるファイルをUSBメモリやネットワークドライブに移してあげる必要がありますが、場当たり的な対処としてはこれでもOKかと思います。

Windows 10への無料アップグレード「Get Windows 10 App」の削除更新が開始されているようです

Windows 7とWindows 8.1を、無料でWindows 10にアップグレードしてくれる親切で余計なお世話の Get Windows 10 App ですが、ついに役目を終えて更新プログラムにて削除されるようです。
Remove software related to the Windows 10 free upgrade offer
gwx2
Windows Updateを実行してオプションから選択出来ます。
gwx3
更新プログラムをインストール後、コンピューターの再起動が求められます。
gwx4
再起動してログオン中に”個人用設定”が少し表示されるので、このタイミングで削除しているのかと思います。
gwx1
Get Windows 10 Appは「C:\Windows\System32\GWX」にインストールされており、このフォルダがなくなったことを確認すれば削除完了です。

RDP Wrapper Libraryを使用してWindows 10に複数RDPセッションで接続できるようにする

Windows 10も[システムのプロパティ]からリモートタブより設定することで、リモートデスクトップサービス(RDP)を利用して遠隔操作することが出来ます。ただしこれはクライアントOSでは1セッションのみの制限があり、2セッション目からは下記のような表示が出て最初のセッションを閉じるように促されます。
windows10_multiple_rdp_sessions_1
別のユーザーがサインインしています。続行すると、それらのユーザーは切断されます。サインインしますか?

この事象を回避できないか調べてみたところ、RDP Wrapper Libraryというソフトウェアを使うことで複数接続できるようになります。このラッパーライブラリはターミナルサービス(termsrv.dll)を変更することが無いのでWindows Updateなども普通に実施出来ます。
RDP Wrapper Library by Stas’M

現在最新のRDPWrap-v1.6.1.zipをダウンローとしたところ、下記ファイルが含まれていました。
windows10_multiple_rdp_sessions_2
RDPWInst.exe RDPラッパーライブラリのインストール/アンインストールプログラム
RDPCheck.exe RDPチェックユーティリティ(ローカル接続をして複数つなげるか確認するクライアント)
RDPConf.exe RDPラッパー構成ユーティリティ
install.bat/uninstall.bat/update.bat クイックインストール・アンインストール・アップデートバッチファイル

ラッパーライブラリをインストールするには、install.batを右クリックして「管理者として実行」にて自動的に完了しました。RDP接続中の場合は、一旦切断されて再接続されます。
windows10_multiple_rdp_sessions_3

インストール完了後、RDPConf.exeを実行してDiagnostics項目内が全部緑になっているかを確認します。緑になっていれば正常に動作中です。
windows10_multiple_rdp_sessions_4

あとはRDPCheck.exeを使用してローカルから確認するか、外部からリモートデスクトップ接続(mstsc.exe)を複数起動して対象PCにログオンしてみればOKです。
windows10_multiple_rdp_sessions_5

複数接続にはリモートデスクトップサービス クライアントアクセスライセンス(RDS-CAL)が必要になりそうなので、実運用というよりは評価版を使用して使ってみるという形になるかと思います。

Windowsのeventcreateコマンドにてソースパラメーターのエラーが出たときの対処

Windowsのコマンドプロンプトにて、イベントを記録するためにeventcreateコマンドを実行したときに、すでにあるイベントソースを指定すると次のようなエラーが表示されることがあります。

ERROR: Source parameter is used to identify custom applications/scripts only (not installed applications).
eventcreate /L Application /T Information /SO "hoge" /ID 1 /D "Information write."
エラー: インストールされているアプリケーションではなく、カスタム アプリケーションまたはスクリプトを識別するためだけに、ソース パラメーターが使用されます。

これは作成されているイベントソースへ、ソースを作成したプログラムからしかアクセスできないため起きるようです。今回の場合はPowerShellにて下記コマンドでソースを作成していました。
New-EventLog -LogName Application -Source hoge

修正するには、レジストリエディタより対象ソースにCustomSourceという名前で1の値を設定すればよいようです。今回はアプリケーションイベントのhogeというソースなので下記になります。
eventcreate_Source_error_2
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\hoge]
"CustomSource"=dword:00000001

その後、もう一度eventcreateコマンドを実行すると成功しました。
eventcreate_Source_error_3
eventcreate /L Application /T Information /SO "hoge" /ID 1 /D "Information write."
成功: 種類が 'Information' のイベントが、'Application' ログ内に、'hoge' をソースとして作成されました。