Macとかの雑記帳

XAMPPやMAMPを使えばMacでも簡単にLAMP環境を導入することができますが、それらを使わずに構築する方法です。LAMP構築には[Apache] [MySQL] [PHP/Perl/Python] が必要ですが、MacはデフォルトでApacheとPHP/Perlが導入されているので、MySQLとデータベース管理用にphpMyAdminを入れてLAMP環境を構築します。ついでにバーチャルホストの設定をしてサイトごとに専用のドメインを割り当てます。

MySQLをインストール


下記サイトよりMySQLをダウンロードします。
clam.png
Download MySQL Community Server

:MacPortsからもMySQLをインストールできますが、時間がかかる上に、後述するシステム環境設定の項目が追加されないので手動でインストールします。



ダウンロードし、展開orマウントして開くとインストーラー2つと環境設定ファイルがあるので、すべてインストールします。
clam.png



インストールすると、システム環境設定内に「MySQL」という項目が追加されます。
clam.png
clam.png
ここでMySQLの起動/停止と、自動で起動させる設定ができます。



インストール後、下のpassの部分に設定したいパスワードを入れて実行し、MySQLのrootパスワードを設定します。
  • rootパスワード設定
  • $ /usr/local/mysql/bin/mysqladmin -u root password 'pass'




    phpMyAdminの導入と設定


    こちらはMacPortsでインストールします。MySQLのように手動でインストールするとmcryptという拡張機能が導入されず面倒なのでMacPortsで入れます。
  • phpMyAdmin
  • phpMyAdminをインストール
    $ sudo port install phpmyadmin

    シンボリックリンク(エイリアス)作成
    $ sudo ln -s /opt/local/www/phpmyadmin /Library/WebServer/Documents




    phpMyAdminの設定:config.inc.phpを編集


    インストール終了後、phpmyadminの設定ファイル「config.inc.php」を編集します。
  • config.inc.php
  • ※:config.inc.phpが無かったら下記を実行して作成
    $ cd /Library/WebServer/Documents/phpmyadmin/
    $ cp config.sample.inc.php config.inc.php


    config.inc.phpを編集
    $ sudo nano /Library/WebServer/Documents/phpmyadmin/config.inc.php

    17行目付近、下記赤字部に適当な文字列を記入
    $cfg['blowfish_secret'] = 'jgioerfd45634gjerldgj';
    ※半角の英数字なら何でも良いです。パスワードではないので覚えておく必要もありません。

    この設定をしておかないと、「設定ファイルが秘密のパスフレーズ(blowfish_secret)を必要とするようになりました」と表示されます。

    clam.png


    47~57行目付近、下記赤字部のコメントアウトを外す
    /* Storage database and tables */
    // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
    // $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
    // $cfg['Servers'][$i]['relation'] = 'pma_relation';
    // $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
    // $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
    // $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
    // $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
    // $cfg['Servers'][$i]['history'] = 'pma_history';
    // $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
    // $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
    // $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';

    この設定と、後述する「create_tables.sql」のインポートをしないと拡張機能が無効になっている旨の警告が表示されます。
    clam.png





    PHPの設定:php.iniを編集


    次に、mysqlのソケットファイルの場所を調べ、そのパスを「php.ini」というphpの設定ファイルに記入します。この設定ファイルは、既存のサンプルファイルをリネームして作成/編集します。
  • php.ini
  • mysqlにログイン
    $ /usr/local/mysql/bin/mysql -u root -p

    下記赤字部を実行し、ソケットファイルの場所を調べる
    mysql> status
    --------------
    /usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.5.12, for osx10.6 (i386) using readline 5.1

    Connection id: 4
    Current database:
    Current user: root@localhost
    SSL: Not in use
    Current pager: stdout
    Using outfile: ''
    Using delimiter: ;
    Server version: 5.5.12 MySQL Community Server (GPL)
    Protocol version: 10
    Connection: Localhost via UNIX socket
    Server characterset: latin1
    Db characterset: latin1
    Client  characterset: utf8
    Conn.  characterset: utf8
    UNIX  socket: /tmp/mysql.sock  これがソケットのパス
    Uptime: 1 hour 19 min 22 sec

    Threads: 1 Questions: 17 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.3
    --------------
    調べたら下記赤字部を実行し、ログアウトする
    mysql> quit



    php.iniを作成
    $ sudo cp /etc/php.ini.default /etc/php.ini

    アクセス権を設定
    $ sudo chmod 644 /etc/php.ini


    php.iniを編集
    $ sudo nano /etc/php.ini

    1213行目付近、赤字部に調べたmysqlのソケットファイルのパスを記入
    mysql.default_socket = /tmp/mysql.sock

    ソケットの場所を記入しないと、「#2002 MySQL サーバーにログインできません」と表示されphpMyAdminにログインできません。

    clam.png


    一番下の空いている箇所に下記を追加し、mcrypt拡張を有効にする
    extension = /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so

    上の書き方でダメな場合は下記を追加
    extension_dir = "/opt/local/lib/php/extensions/no-debug-non-zts-20090626" extension = mcrypt.so

    ※:青字の数字部分は環境によって違うかもしれませんので確認してください。

    mcryptを有効にしないと、「mcrypt拡張がありません」と表示されます。
    clam.png
    mcryptを有効にしてもエラーが表示される場合は、config.inc.phpに下記を追加してエラーを非表示にすることもできます。

    config.inc.phpを編集
    $ sudo nano /Library/WebServer/Documents/phpmyadmin/config.inc.php

    下記を追加
    $cfg['McryptDisableWarning'] = true;





    Apacheの設定:httpd.confの編集とアクセス制限


    Apacheの設定ファイル「httpd.conf」を変更し、phpを有効にします。
  • httpd.conf
  • httpd.confを編集
    $ sudo nano /etc/apache2/httpd.conf

    116行目付近、下記赤字部のコメントアウトを外してphpを有効にする
    #LoadModule php5_module        libexec/apache2/libphp5.so



    「/etc/apache2/other」フォルダ内に「phpmyadmin.conf」というファイルを作成し、phpmyadminへのアクセスを制限します。

    例として、phpmyadminが入っているMacと、同じLAN内にある別PC(IPアドレス:192.168.1.5)のみアクセス出来るようにします。

    :アクセス制限をしない場合や、後述するバーチャルホストで制限するならこの設定は不要です。
  • phpmyadmin.conf
  • phpmyadmin.confの作成と編集
    $ sudo nano /etc/apache2/other/phpmyadmin.conf

    下記を記入
     
     Order deny,allow
     Deny from all
     Allow from localhost
     Allow from 192.168.1.5
     



    ここまで終わったら下記コマンドを実行し、ApacheとMySQLを再起動して設定を反映させます。
  • ApacheとMySQLを再起動
  • $ sudo apachectl restart;sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart




    phpMyAdminに設定用のデータベースをインポート


    設定反映後、http://localhost/phpmyadmin/からphpMyAdminにアクセスし、MySQLのユーザー名(root)と設定したパスワードを入力してログインします。
    clam.png



    ログインしたら、「インポート」タブを選択し、「現在のサーバへのインポート」ページを開きます。
    clam.png
    clam.png



    ページを開いたら、下記パスにあるフォルダのphpMyAdminの設定用データベース「create_tables.sql」をインポートします。
    /Library/WebServer/Documents/phpmyadmin/scripts
    clam.png



    インポートに成功すると、下の様に左カラムにphpmyadminというデータベースが追加されます。
    clam.png




    バーチャルホストの設定


    一つのサーバー上で複数のサイトを運営したい時等に、それぞれのサイトに専用のドメインを割当てる場合に設定します。

    現在phpmyadminにアクセスするにはhttp://localhost/phpmyadmin/というアドレスでしかアクセスできませんが、この設定をすることで好きなアドレスを割当てることができ、そのアドレス(例えばhttp://phpmyadmin.osx.comとか)でアクセスできるようになります。



    httpd.confを編集


    デフォルトでは「/etc/apache2/extra/httpd-vhosts.conf」ファイルに全てのサイトの設定を記述するようになっているのですが、サイトごとにファイルを用意した方が管理しやすいので、サイトごとにファイルを用意する方法で説明します。

    例として、phpMyAdminに「http://phpmyadmin.osx.local」を。
    既存のWordpress製のサイトに「http://wordpress.osx.local」を割り当てます。


    httpd.confを編集してバーチャルホストを有効にし、設定ファイル用のフォルダを作成します。
  • Virtual host
  • バーチャルホスト用フォルダを作成
    $ sudo mkdir /etc/apache2/vhosts


    htpd.confを編集してバーチャルホストを有効にする
    $ sudo nano /etc/apache2/httpd.conf

    一番下の空いている箇所に下記を追加
    # Virtual hosts
    Include /etc/apache2/vhosts/*.conf


    既存のvhosts.confをコピー
    $ sudo cp /etc/apache2/extra/httpd-vhosts.conf /etc/apache2/vhosts/httpd-vhosts.conf
    デフォルトで「It works!」ページが置いてある/Library/WebServer/Documentsに関するバーチャルホストの設定が書いてあります。必要なければコピーする必要はありません。


    phpmyadmin用のバーチャルホストファイルを作成
    $ sudo nano /etc/apache2/vhosts/phpmyadmin-vhosts.conf
    ファイル名の最後に「.conf」がついていればファイル名は何でもいいです。

    ファイルに下記を記入
    # phpmyadmin

     DocumentRoot "/opt/local/www/phpmyadmin"
     #↑phpmyadminのフォルダを指定
     ServerName phpmyadmin.osx.local
     #↑割り当てたいアドレスを指定
     
     order deny,allow
     deny from all
     allow from 127.0.0.1
     #↑deny from allで全アクセスを拒否した後、サーバーの入っているMac(127.0.0.1)のみ
     アクセスできるようにしています。
     



    Wordpress用のバーチャルホストファイルを作成
    $ sudo nano /etc/apache2/vhosts/wordpress-vhosts.conf

    ファイルに下記を記入
    # wordpress

     DocumentRoot "/Users/system47/Sites/wordpress"
     ServerName wordpress.osx.local
     
     order deny,allow
     allow from all
     #↑アクセス制限をしないのでallow from allとしています。
     



    バーチャルホストの設定が終わったら、「/etc/hosts」ファイルを編集して、指定したアドレスでアクセスできるようにします。
  • hosts
  • hostsファイル編集
    $ sudo nano /etc/hosts

    空いている箇所に下記を追加
    127.0.0.1 phpmyadmin.osx.local
    127.0.0.1 wordpress.osx.local
    または下記でも可
    127.0.0.1 phpmyadmin.osx.local wordpress.osx.local



    全ての設定が終わったら、Apacheを再起動して設定を反映させます。
  • Apacheを再起動
  • $ sudo apachectl restart


    設定反映後、指定したアドレスでアクセスできるかどうか確認します。
    clam.png
    clam.png



    参考Link:
    Mac に MacPorts を使って MySQL と PHPMyAdmin をインストールする方法

    Mac にphpMyAdmin を入れる手順


    スポンサード リンク