Microsoft AzureにWindows2008を入れてWordPressが動作する環境を構築する その4
1 Comment wordpressAzure,phpMyAdmin,windowsその3はこちら
phpMyAdminのインストール
phpMyAdminはPHPで作られたWEB管理ツール。
MySQLをGUIで操作できるので、Wordpressの移行などにも便利。
ファイルをサーバにアップロードして設定ファイルを編集するだけで使用可能。
解凍したものをC:\inetpub\wwwrootに設置。
悪意を持ってサーバにアクセスしてくるものの中には
http://domain.com/phpMyAdmin/
http://domain.com/pma/
など、フォルダ名を指定して探りを入れてくるものが多いので、
フォルダ名をユニークな名前(phpMyAdmin-q24fawrgawfgawef など)に変更しておいたほうが良いかも。
ファイルをアップロードしたのち、ブラウザから
http://IPアドレス/phpMyAdminを入れたフォルダ名/
にアクセス。
mysqli 拡張がありません。と怒られてしまう。
php.iniを開いて
extension=php_mysqli.dll extension_dir = "C:\php-7.1.12\ext" extension=php_mbstring.dll mbstring.language = Japanese
上記を検索、コメントアウトする。
( extension_dir = "C:\phpのフォルダ\ext" に置き換え)
また、
mbstring.internal_encoding = UTF-8
内部エンコーディングをUTF-8にする。
再度アクセスすると、
ログイン画面が表示されるので、MySQLのユーザ名(初期ID = root)、パスワードを入力して実行。
ログインできた。
設定
・PHP の mbstring 拡張が見つかりませんでした。
phpMyAdminのフォルダにある「config.sample.inc.php」ファイルを「config.inc.php」という名前でコピー&リネーム。
この「config.inc.php」をテキストエディタで開く。
※改行コードが「LF」なのでWindowsのメモ帳では改行が表示されない。対応したテキストエディタを使うなり、Dreamweaverなどでリモートから編集するなどして対応。
17行目↓
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
ここに32文字以上の文字列を入力する。
後でどこかで使用する、といったものではないので、ランダムでユニークなフレーズを入れて保存。
一度phpMyAdminをログアウトすると怖めのエラーがずらりとログイン画面に出るが、かまわず再ログイン。
エラーメッセージは消える。
・mbstringの設定
「PHP の mbstring 拡張が見つかりませんでした。」
と出る場合は、
extension=php_mbstring.dll
がコメントアウトされていない。
また、UTF-8の日本語環境に対応するために
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
も変更。
・phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。
こちらを参考に
phpMyAdminのフォルダ/sql/create_tables.sql
をクライアントPCにコピペして、phpMyAdminのメニュー「インポート」をクリック。
インポート画面のアップロードファイル「参照」でcreate_tables.sqlを選択し、
そのまま下部の実行ボタンを押す。
・その他
下部の
「You are using an incomplete translation, please help to make it better by contributing.(翻訳が不完全なので協力して下さい。)」
は気にしないでOK。
データベースを作る
phpMyAdminで新しいデータベースを作成する。(例はtest-dbというデータベース名を作成)
Wordpressをインストールする場合はutf8-general-ciで作成。
Microsoft AzureにWindows2008を入れてWordPressが動作する環境を構築する その3
1 Comment wordpressAzure,mySQL,phpMyAdmin,windowsその2はこちら。
MySQLのインストール
公式サイトからインストーラを選択
インストーラはWEBインストーラでもどちらでもOK。
サインアップなどしなくてもNo thanks...を選択することでDL可能。
DownloadしたものをWindowsサーバにコピペして実行。
同意してNext。
Server onlyでmySQLサーバのみを選択。
ここでまたRuntimeがないと怒られるので、Visual Studio 2013 の Visual C++をインストール。
こちらから
ダウンロードをクリックし、
vcredist_x64.exeを選択してダウンロードし、Windowsサーバにインストール。
MySQLの画面に戻って再度Check Requirementsのページを表示すると、
要件を満たしている。
あとはそのまま
初期状態のままNextを押していく。
MySQLのパスワードを入力。
ユーザーの追加もするならここで。
そのままNext。
設定を適用して
Finish。
WindowsのスタートにMySQL 5.7 Command Line Clientが追加されているので、起動、パスワードを入れてshow databases;と打ち込むと
テーブル一覧が表示される。
その1はこちら。
引き続きPHPのインストール。
IISのFastCGIを有効化する。
・PHPをFastCGIで動かすため、Web Manager(IIS)を右クリック「Add Role Services」でCGIをインストール。
PHPのインストール
Windowsが64bit版なので64bit版のVC14 x64 Non Thread Safeを選択。
(スレッドセーフ版とノンスレッドセーフ版の違いはこちら参照。)
Windowsリモートデスクトップへはファイルのコピペが可能(Ctrl+C→Ctrl+V)なので、サーバ側のC:\にコピペ後展開。
フォルダ名を分かりやすく(php-7.1.12など適宜)変更。
フォルダ内のphp.ini-developmentをphp.iniにリネームしてメモ帳で開き、
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0
extension=php_gd2.dll
上記項目のコメントアウト;を外し、数値をそれぞれ書き換えて保存。
IIS内のConnectionsツリーにて該当サーバを選択、Handler Mappingsから「Add Module Mapping」を開く。
ダイヤログに
Request path: *.php
Module: FastCgiModule
Executable: C:\PHP をインストールしたパス\php-cgi.exe
Name: PHP_via_FastCGI
と入力する。
Request Restrictions" ボタンをクリックし、 リクエストがファイルあるいはフォルダにマップされたときだけハンドラが起動するように設定する。
(この辺の設定はPHP公式参照)
Visual C++ 2015 Runtimeをインストール
このままではphpは動作しないので、Visual C++ 2015をMicrosoftからダウンロードしてインストールする。
ダウンロードをクリックし、
64bit版をダウンロード。
Windowsサーバのデスクトップにでもコピペして実行。
同意にチェックを入れて、Installを押す。
その後、ルートにindex.phpを作成して
<!doctype html> <html> <head> <meta charset="utf-8"> <title>phpinfo</title> </head> <body> <?php phpinfo();> </body> </html>
などすると、
ブラウザ上でphpが動作する。
index.phpをデフォルトドキュメントにする
初期状態ではURLでディレクトリを指定した時に500エラーが出てしまうため、index.phpをデフォルトドキュメントに指定する。
サーバマネージャの当該Web Site(ここではDefault Web Site)をクリック、「Default Document」をWクリックして右側のActionからadd「index.php」を追加。これでブラウザからフォルダを指定したらindex.phpも読み込まれるようになる。
Microsoft AzureにWindows2008を入れてWordPressが動作する環境を構築する その1
No Comment wordpressAzure,windows,wordpressWordPressでサーバがWindows2008 RC2 SP1指定という案件があったので、折角なのでWindowsのクラウドサービスAzureを使って仮想テスト環境を構築。
非常に手間だったのでメモを残す。
※不具合・ご指摘大歓迎です。
で、結論から言うと、
・Windows環境でWordpressを動かすのはやめておいたほうがいい…
・Azure扱いやすい、UIが分かりやすい、けどとにかく高い
です。
特にhtaccessで簡単に設定できてたリダイレクト・Basic認証などがweb.configで書かないといけないところ、キャッシュ系プラグインがほぼ対応していない事、権限周りの煩わしさ、日本語URLのバグなどで泣きそうになる。
Azureのアカウントを作る。
クレジットカードがあれば20,000円分無料で1か月試用が可能なので、早速申し込む。
Azureダッシュボード。
綺麗で見やすく、カスタマイズしやすい。
Virtual Machineの作成
メニューのVirtual Machinesを選択し、「Virtual Machineの作成」をクリック。
お勧めに出る「Windows Server → Windows2008 R2 SP1」を選択。
「デプロイモデルの選択」はそのまま「作成」を押す。
基本設定を適当に埋め、仮想マシンのサイズ選択。
最初からお勧め環境が出てくるが、「すべてを表示」を選択すると月額57万円のサーバとか出てきて笑う。
もちろん価格は変動するが、僕が見た時点で一番安い環境が1vCPU,1GBメモリ,SSD2GB,iops800で1,500円。
※IOPS = (I/O per Second)。ディスクが1秒当たりに処理できるI/Oアクセスの数
※データディスク = 接続可能なデータディスクの最大数
まぁ試用なのでお勧めから適当なものを選択。
次のオプション機能の設定も触らずOKを押す。
検証が終了したらそのまま「作成」。デプロイにしばらく時間がかかる。
デプロイ終了後、デスクトップから仮想環境にアクセスできる。
「接続」を押してWindowsサーバへリモートアクセス。
資格情報には基本設定で入力したユーザー名とパスワードを入力。
Windowsにアクセス出来た。
IISのインストール
Microsoft Internet Information Services(WEBサーバ)をインストールする。
Startボタン右側のServer Managerを起動し、Rolesを右クリックして「Add Roles」を選択。
IISにチェックを入れてNext。
Select Role ServicesもそのままNext。
インストール完了後、IIS Managerに「Default Web Site」が作られている。
Default Web Siteを右クリック→Exploreでルートフォルダの位置(C:\inetpub\wwwroot)がわかる。
※ファイルの拡張子表示はエクスプローラーでaltキーでメニュー表示→Tools → Folder Options→ Viewタブの
「Hide extentions for known filetypes」のチェックを外す。
※右側Actionの「Browse *:80(http)」をクリックで、ローカルからブラウザ確認が可能。
Azure Network Security Groupでポートを開放
もちろんこのままではリモートからサイトが見れない、FTP接続もできないので、Webサーバの80番ポートと21番FTPのポートを開放。
AzureポータルからリソースのNetwork Security Group(盾のアイコン、名前は入力したID-nsg)をクリックし、ネットワークセキリュティグループを表示、「受信セキリュティ規則」に
ソース : IP Address
発信元IPアドレス範囲 : 自分のIP/32
発信元ポート範囲 : 任意。(webサーバは80,FTPは21。テスト環境なので今回は全ポート*を入力。)
を追加することで、自分だけがアクセス可能。
優先度、名前などは適宜変更。
設定が完了すると、リモートのブラウザから
初期ページが表示される。
静的IPの割り当て
Azureのリソースを停止したときにIPが変わってしまうのを防ぐため、IPを静的に変更する。
「パブリックIPアドレス→構成」
を選択し、「割り当て」を動的→静的に変更。
タイムゾーンの変更
タスクバー右側の時間を右クリック→Change date and time settingsをクリック。
Change time zone → (UTC+9:00) Osaka,Sapporo,Tokyoを選択。
FTPサーバのインストール、設定
・Web Manager(IIS)を右クリック「Add Role Services」でFTPをインストール。
・Defalut Web Siteの「FTP Authentication」で「Basic Authentication」を「Enable」に設定。
・Defalut Web SiteのFTP SSL Settingsで「SSL Policy」を「Allow SSL connections」に設定。
(※SSLを使用しない設定だと、デフォルトのファイアーウォールがブロックする仕様、との事)
・FTPソフトではActive接続を選択。
Windows Firewallの設定
AzureのNSGを使用するので、今回は特に設定しない。
HTMLの表示
Default Web Siteのルート(C:\inetpub\wwwroot)に適当にメモ帳でindex.htmlを作成&UTF8で保存すると、ブラウザで
表示される。
こんにちは、やっちんです。
友人からLINEで
WEB広告の素材に自分そっくりの人がいる!と送られてきました。
本人としても、そっくりすぎて怖いです。
それだけです。












































