SierraにHomebrewでMySQL, Apache,PHPをインストール

Homebrew自体の準備

brew update
brew doctor

MySQL

brew install mysql
mysql_secure_installation
mysql.server start
//loginで開始するように設定
brew services start mysql

Apache

brew tap homebrew/dupes
brew tap homebrew/apache
//デフォルト8080で動作
brew install httpd24
//loginで開始するように設定
brew services start homebrew/apache/httpd24

PHP

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
//既存のPHPがあれば
brew unlink php55
//httpd.confに php7_module の行を追加
brew install php71 --with-httpd24

Apacheの設定
/usr/local/etc/apache2/2.4/httpd.conf

//設定済のはず
LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
//修正する
ServerName localhost:8080
//index.phpを書き加える
DirectoryIndex index.php index.html
//コメント解除
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
LoadModule rewrite_module libexec/mod_rewrite.so
//末尾に追加
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>

vhostの設定
/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

<VirtualHost *:8080>
    ServerName localhost
    DocumentRoot "/usr/local/var/www/htdocs"
    <Directory "/usr/local/var/www/htdocs">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/usr/local/var/log/apache2/localhost.access.log" common 
    ErrorLog "/usr/local/var/log/apache2/localhost.error.log"
</VirtualHost>
 
<VirtualHost *:8080>
    ServerName SSS.dev
    DocumentRoot "XXX/public"
    <Directory "XXX/public">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/usr/local/var/log/apache2/SSS.dev.access.log" common 
    ErrorLog "/usr/local/var/log/apache2/SSS.dev.error.log"
</VirtualHost>

PHPの設定
/usr/local/etc/php/7.1/php.ini

date.timezone = Asia/Tokyo
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

その他、PHP開発用

brew install php71-xdebug

Apache VirtualHost in Yosemite

  • Yosemite 10.10.3
  • Apache 2.4.10
  • laravel5

Include /private/etc/apache2/extra/httpd-vhosts.conf

/etc/apache2/extra/httpd-vhosts.conf を編集する。

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "XXX/Document"
    <Directory "XXX/Document">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/private/var/log/apache2/localhost.access.log" common 
    ErrorLog "/private/var/log/apache2/localhost.error.log" 
</VirtualHost>

<VirtualHost *:80>
    ServerName laraveltest.com
    DocumentRoot "XXX/laravel/public"
    <Directory "XXX/laravel/public">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/private/var/log/apache2/laraveltest.com.access.log" common 
    ErrorLog "/private/var/log/apache2/laraveltest.com.error.log" 
</VirtualHost>

/etc/hosts を編集

127.0.0.1 localhost
127.0.0.1 laraveltest.com

ここから、
httpd.apache.orgの記載より引用

メインホストはなくなります

既にあるウェブサーバにバーチャルホストを追加する場合、 既存のウェブサーバに対しても ブロックを作らなければなりません。このバーチャルホストの ServerName と DocumentRoot は、グローバルな ServerName と DocumentRoot と同じものにします。また、このバーチャルホストを設定ファイルの中で 先頭に置いて、デフォルトホストとして動作するようにします。

Install Apache & PHP on Yosemite

  • Yosemite 10.10.3

/etc は /private/etc にシンボリックリンクしているので、以下の記述で/private/etc とある部分は、/etc に読み替えても同じ

  1. Apache自体はYosemiteに付属しているので、バージョンに不満がなければ、これを用いる。
  2. /private/etc/apache2/httpd.cnfを編集
    • LoadModule php5_module libexec/apache2/libphp5.so のコメントを外す
    • LoadModule rewrite_module libexec/apache2/mod_rewrite.so のコメントを外す
    • DocumentRoot “/Users/ユーザー名/www”
      <Directory “/Users/ユーザー名/www”>
      AllowOverride All
      Options FollowSymLinks Multiviews Indexes
  3. /private/etc/php.ini.defaultを php.iniにコピーして編集
    • sudo cp php.ini.default php.ini
    • error_reporting = E_ALL
    • display_errors = On
    • date.timezone = “Asia/Tokyo”
    • mbstring.language = Japanese
    • mbstring.internal_encoding = UTF-8
    • mbstring.http_input = UTF-8
    • mbstring.detect_order = auto
  4. 以下をphp.iniに追加
    • zend_extension = “xdebug.so”
    • [xdebug]
    • xdebug.var_display_max_children = 999
    • xdebug.var_display_max_data = 999
    • xdebug.var_display_max_depth = 100
  5. 起動は、ターミナルから sudo apachectl start
  6. 設定のチェックは、sudo apachectl configtest
  7. 設定を変えてからの再起動は、ターミナルから sudo apachectl restart

Mountain Lion で Apache起動

システム環境設定の「共有」パネルで「Web共有」をオンにすれば良かったのは過去の話で、現行のMountain Lionでは、ターミナルからそれなりの設定が必要になります。各種の設定ファイルの置き場も変わったようなので、過去の資料を見るときは注意。

  1. Apacheをひとまず起動する
    sudo apachectl start
  2. Apacheを再起動する
    sudo apachectl restart
  3. Apacheを停止する
    sudo apachectl stop
  4. Apacheを自動で起動にする
    sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
  5. Apacheの自動起動をやめる
    sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
  6. 設定ファイルの位置
    /etc/apache2/httpd.conf
  7. ドキュメントルートの変更(httpd.conf を変更)
    DocumentRoot “/Library/WebServer/Documents”
  8. phpの使用(httpd.conf を変更)
    LoadModule php5_module libexec/apache2/libphp5.so
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

ApacheのRewriteLog

Rewriteが予期したように動かず、それをログで確認したいときの覚え書き。

ディレクティブ RewriteLogを.htaccessに書くと500エラー、で「RewriteLog not allowed here」というメッセージがerror.logに出ます。これは、httpd.confに書けば通ります。この場合、ログファイルはApacheインストールディレクトリ下に作られるので、filenameの指定はWindowsなら “logs\rewrite.log” とかになります。

なお、そもそも ディレクティブ AllowOverrideを最初に確認しておくべきです。

開発環境の再編成

故あって、公式版でない64bitではまずいということになったので、32bit版で再編成する。
主要環境

手順

  1. ApacheはC:\Apache2に
  2. phpはC:\PHPに
  3. xdebugはC:\PHP\extに
  4. httpd.confの修正
  5. mime.typesの修正
  6. php.iniの修正
  7. Apacheサービスのインストール
    c:\Apache2\bin で httpd -k install
    このとき、アクセサリ>コマンドプロンプト で右クリックして「管理者として実行」して、コマンドプロンプトを開くこと

Windows7 64bit にApache+PHPのインストール

Windows7 HomePremium 64bit
せっかくなので64bit版で統一してみます。

  1. バイナリファイルのダウンロード
    ApacheはApache Loungeより入手
    httpd-2.4.3-win64.zip

    PHPはanindya’sBlogより入手
    (VC9 x64 Thread Safe)
    php5.4.3-Win32-VC9-X64.zip

  2. どちらも解凍して、C:\Apach24 と C:\PHP に放り込む
  3. httpd.conf mime.types と php.ini の編集
  4. Apacheサービスのインストール
    c:\Apache24\bin で httpd -k install
    このとき、アクセサリ>コマンドプロンプト で右クリックして「管理者として実行」して、コマンドプロンプトを開くこと、

OnlineArmor導入でApache起動せず

Windows機の一つのFireWallを、Online Armor Free に変更しました。インストール自体は問題なく終了しましたが、その後にApacheのサービスが起動しなくなりました。

結局はhttpd.exeについて「Allow」だった扱いを「Trust」に変えると動き出しました。いろいろなソフトを自動判定して設定してくれるのですが、なぜかApacheはだめでした。環境による部分かもしれません。

Apache Lounge版(VC9版)のインストール

サーバー側に合わせてPHP5.3以降を使いたいと思いましたが、何と5.3.6以降ではWindowsバイナリはVC6版しか提供されません。ApacheがVC6版のままでも、phpのVC9版が動くという情報もありましたが(真偽は未確認)、ここはApacheそのものから、VC9版に差し替えることにしました。

今回使用したバージョン

インストール手順

  1. Visual C++ 2008 Redistributable Package(vcredist_x86.exe)をインストール
  2. Apache ZIPファイルを解凍し、Apache2フォルダをそのまま C:\Apache2へコピー
  3. Apacheをサービスとしてインストール
    c:\apache2\bin\httpd.exe -k install 
    
  4. PHPをインストーラでC:\PHPへ
  5. xdebugをC:\PHP下にコピー
  6. php.iniを修正
    include_path = ".;c:\php\PEAR"
    ...
    date.timezone = Asia/Tokyo
    ...
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_input = pass
    mbstring.http_output = pass
    mbstring.encoding_translation = Off
    mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
    mbstring.substitute_character = none
    ...
    [xdebug]
    zend_extension="C:/PHP/php_xdebug-2.1.1-5.3-vc9.dll"
    xdebug.remote_enable=on
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp 
    
  7. httpd.confに追加
    PHPIniDir "c:\php\"
    LoadModule php5_module "c:\php\php5apache2_2.dll"
    
  8. conf/mime.typesに追加
    application/x-httpd-php	php
    application/x-httpd-php-source	phps
    
  9. PEARの設定とPHPUnit
    c:\php\go-pear.bat  => 初期設定そのままでEnterするとpear.batが生成される
    pear channel-update pear.php.net
    pear upgrade-all
    pear channel-discover pear.phpunit.de
    pear channel-discover components.ez.no
    pear channel-discover pear.symfony-project.com
    pear install phpunit/PHPUnit