2014年10月13日月曜日

Windows 7 apache MariaDB PHP phpMyAdmin 個別にインストール mysqlからmariadbに移行した。 (後述:このやり方ではdrupalは今のところ正常に動いていない。自分の見解は最後に書いた。)

Windows7   

apacheのインストール。

http://www.apachelounge.com/download/win64/
httpd-2.4.10-win64.zip

ダウンロードしたファイルを解凍してapache24フォルダを適当な場所に適当な名前(自分はそのままapache24)で設置。
C:\www\apache24

次にhttpd.confファイルの編集
C:\www\apache24\conf\httpd.conf

--------------------------------------ここから
# apacheの場所
ServerRoot "C:\www\apache24"

# ポート
Listen 127.0.0.1:80

# 一応、適当にメールアドレスを入れとく。
ServerAdmin admin@example.com

ServerName localhost:80

DocumentRoot "C:\www\apache24\htdocs"

#webディレクトリの設定
<Directory "C:\www\apache24\htdocs">

 AllowOverride All

</Directory>

#mod_rewriteを有効にする。(drupalのモジュールのリダイレクトを効かせるため。)
LoadModule rewrite_module modules/mod_rewrite.so

# 必要ならCGI として実行する拡張子など(自分は必要じゃないから入れなかった。)
# AddHandler cgi-script .cgi .pl .py .rb

# ファイルではなくディレクトリにアクセスされた場合に表示するファイル。(自分はcgiは入れていない。)
<IfModule dir_module>
    DirectoryIndex index.html index.php index.cgi
</IfModule>

#ここからPHP用の設定。最後に付け足した。
#php.iniの場所指定
PHPIniDir "C:/www/php"
#PHPモジュールの場所指定
LoadModule php5_module C:/www/php/php5apache2_4.dll
#PHPをPHPとして認識させる。
AddType application/x-httpd-php .php

-------------------------------------ここまで

ここで、試しにapacheの本体
httpd.exe
をダブルクリックして立ち上げてみる。

うまくPHPなどが動かないときは(今回、apacheはhtmlを表示させることができたが、PHPが動かなかった)。
Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)
(Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ)
vcredist_x64.exe
を入れる。

apacheをサービスに登録する(サービスを登録するのは、MariaDB、PHPなどがちゃんと動いたのを確認した後。それまでは単独でexeファイルをダブルクリックをして起動。)。
コマンドプロンプトで登録。
コマンドプロンプトを立ち上げるときに、右クリックから"管理者として実行"から実行するのを忘れないように。
C:\www\apache24\bin\httpd -k install

C:\www\apache24\bin\httpd -k install -n "Apache2.4"
その後起動
C:\www\apache24\bin\httpd -k start
アンインストールするには
C:\www\apache24\bin\httpd -k uninstall

スカイプが起動しているときはポートがかぶるので注意。だそうだ。先にapacheを立ち上げてその後でスカイプを立ち上げればスカイプがポート80以外を使って立ち上がるらしい。

次にMariaDBのインストール
https://mariadb.org/
mariadb-10.0.14-winx64.zip
をダウンロード。
展開した
mariadb-10.0.14-winx64

C:/www/
にコピー。その後適当な名前mariadbに名前変更。
C:/www/mariadb

my.iniを作る。
my-small.ini

my.ini
に変更。

my.iniの中のsocketの位置を
[client]と[mysqld]、共に
socket = c:\www\maria\mysql.sock
へ変更。

mysqld.exeをダブルクリックでMariaDBが立ち上がる。
サービスへ登録したければ、
Windowsコマンドプロンプトで、
C:\www\mariadb\bin\mysqld --install MariaDB10.0
登録解除は
C:\www\mariadb\bin\mysqld --remove MariaDB10.0
ただ、登録してもうまく立ち上がらない。
手動なら立ち上がるのだけど・・・。

次にPHPのインストール

http://windows.php.net/download/
ここからダウンロード。
php-5.6.2-Win32-VC11-x64.zip

64bit版が2種類あって、
VC11 x64 Non Thread Safe
VC11 x64 Thread Safe

IIS版がNon Thread Safe
Apache版がThread Safe
と言う事みたいだ。

インストール場所は
C:\www\php
にした。

自分の場合、何でもいいのだけど、一応php.ini-developmentからphp.iniを作った。

php.iniの編集
date.timezone = Asia/Tokyo

extension_dir = "./ext"
log_errors = On
error_log =  "C:\www\php_error.log"

次のextensionのコメントアウトを外す。
# 何故かphpMyAdminを動かすためにphp_mbstring.dllが必要(入れないとエラーが出る。どの道日本語を使うときには必要。)。
php_mbstring.dll

php_mysqli.dll
php_mysql.dll

下の二つはdrupalに必要。
php_gd2.dll
php_pdo_mysql.dll

引き続き、php.iniの設定。
PHPからメールを送れるように設定をする。(drupalなどを使うとき、何らかの方法でメールを送る手段が必要なため。)
;SMTP = localhost
;smtp_port = 25
上の2行をコメントアウト。
sendmail_path = "\"\www\sendmail\sendmail.exe\" -t -i"
fake sendmailを使うために上の行を追加。

fake sendmailのインストール。
メールクライアントのように働きメールを送信するソフト。
sendmailと言ってもサーバーではなくて、簡単なメール送信ソフト。
sslを使わなくていいのならfake sendmailを使わなくてよくて
php.ini

[mail function]
へ使いたいメールサーバーとポートを設定すればいいだけなのだろう。

http://glob.com.au/sendmail/
ここからダウンロード

C:\www\sendmail
ここに置いて、

sendmail.iniの編集
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
error_logfile=error.log

auth_username=hoge@gmail.com
auth_password=hogenopassword

force_sender=hoge@gmail.com

編集後
sendmail.exe
をダブルクリックして立ち上げ。
その後で、送信されたかどうかのテスト。
utf-8で書くのを忘れずに。

<?php
if (mb_send_mail('auction654321@gmail.com', 'TEST SUBJECT', 'TEST BODY')) {
    echo 'Seikou成功';
} else {
    echo 'Shippai失敗';
}
(これはhttp://log.noiretaya.com/139を丸写しさせてもらった。)

このPHPをドキュメントルートへ置いて、アクセスする。

phpMyAdminのインストール
http://www.phpmyadmin.net/home_page/index.php
ここからダウンロードしてAphacheのドキュメントルートへ置く。
これだけで動く。
(以前はconfigファイルを設定しないと動かなかったよなぁ。)

rootからパスワードなしてログインできるように設定する。
config.sample.inc.php

config.inc.php
へ置き換えて、
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
へ書き換える。


ここまでやったが、drupalがちゃんと動かない。
Chromeブラウザからだとログインできない。
IEだと最初は動くけど、だんだん動きがおかしくなる。
WAMPを後から入れてみたらChromeからログインできるから、たぶん、ブラウザが悪いわけでもないみたいだ。
何かが足りないんだろう。
Apacheの全モジュールとPHPの全エクステンションをロードしてみたけど、うまくいかなかった。
ソースからビルドしたときのオプションに問題があるのかなぁ。(自分でビルドしたわけじゃないけれど。PHPはてんこ盛りオプション付ビルド版とかがあったから、それを入れれば動くかなぁ。)
それとも、PHPのバージョンに問題があるのかなぁ。(WAMPは5.5、自分で入れたのは5.6)

とにかく、今、新しいバージョンのWAMPを入れたら、これが調子いいから、ここは後回しにする。
新しいバージョンのWAMP
wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b.exe
を入れたら、以前のバージョンで動きの悪かったphpMyAdminがスムーズに動いているから、
とりあえずまたWAMPを使うことにした。





0 件のコメント:

コメントを投稿