MacPortsで環境構築を行う

2015/10/21 アップデート

About MacPorts

コマンドプロンプトからプログラムをパッケージ単位で簡単にインストールすることができるパッケージ管理システムです。

Current environment

  • Macports 2.3.3
  • MySQL5.6
  • PHP5.4
  • Apache2.2.26

MacPortsでインストールしたものは全て/opt/local/以下に入ります。

Prepare

  1. Macportsをインストールします。
  2. XcodeをAppStoreからインストールします。
  3. ターミナルで% xcode-select --installを叩きます。
  4. portが使えるようパスを追記します。
% vi ~/.profile (or % vi ~/.bash_profleなどシェルに合わせた環境設定ファイル)

ファイルに下記を追加します。

export PATH=/opt/local/apache2/bin:/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH

macports自身とリストを最新状態に更新しておきます。

% sudo port selfupdate
% sudo port upgrade outdated

.profileを読み込み ( パスを反映させ ) ます。

% source ~/.profile
オプション
// portのPATH確認
% which port (php, mysql, pear...)

// 設定PATHの表示
% echo $PATH

// 利用可能なパッケージの確認
% sudo port list | grep mysql (php, apache, pear...)

// Macのデフォルトのパス設定へ、MacPortsのパスを入れ込みます(オプション)。
% sudo vi /etc/paths

==
/opt/local/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
==

// MacデフォルトのApacheの停止
% sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Install Command line tools

% xcode-select --install
xcode-select: note: install requested for command line developer tools


Install each Software

% sudo port install subversion mysql56 mysql56-server ImageMagic php55 +pear php55-curl php55-gd php55-imagick php55-mbstring php55-mcrypt php55-mysql php55-openssl apache2 php55-apache2handler

pearのインストール

MySQL

// mysqlと打ち込んだらmysql56を読み込むよう
% sudo port select mysql mysql56

MySQLの初期化

ログに書かれている初期化コマンドを実行する

$ sudo -u _mysql /opt/local/lib/mysql56/bin/mysql_install_db

// 新しいパスワードのみ設定
/opt/local/lib/mysql56/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql56/bin/mysqladmin -u root -h Mac.local password 'new-password'

// もしくはセキュアインストール(推奨)
Alternatively you can run:
/opt/local/lib/mysql56/bin/mysql_secure_installation

hrt0kmt.hatenablog.com

MySQLの設定ファイル

MySQLの設定ファイルを以下のように編集します。

$ sudo vi /opt/local/etc/mysql55/my.cnf

# Use default MacPorts settings
# !include /opt/local/etc/mysql56/macports-default.cnf

[mysqld]
port=3306
key_buffer_size=16M
max_allowed_packet=16M
socket = /opt/local/var/run/mysql56/mysqld.sock

[client]
port=3306
socket = /opt/local/var/run/mysql56/mysqld.sock

PHP

ログを見ながらphp.iniファイルを編集します。

  • Data_timezoneの設定
  • Socketの設定
% cp /opt/local/etc/php56/php.ini-development /opt/local/etc/php56/php.ini
% vi /opt/local/etc/php56/php.ini
[Date]
date.timezone = Asia/Tokyo

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8

mysql.default_socket = /opt/local/var/run/mysql56/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql56/mysqld.sock
pdo_mysql.default_socket=/opt/local/var/run/mysql56/mysqld.sock

Activate PHP on Apache

If this is your first install, you need to enable php56-apache2handler in your web server.

To enable php56-apache2handler, run:

    cd /opt/local/apache2/modules
    sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php55.so

% sudo vi /opt/local/apache2/conf/httpd.conf

Include /opt/local/apache2/conf/extra/mod_php.conf

<IfModule mime_module>

AddType application/x-httpd-php .php

</IfModule>

LoadModule php5_module modules/libphp5.so
Include conf/extra/mod_php.conf
NameVirtualHost *:80

AddDefaultCharset utf-8
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
ServerName broadcasthost
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /opt/local/apache2/htdocs
    <Directory /opt/local/apache2/htdocs>
        Options FollowSymLinks
        AllowOverride ALL // .htaccessによる設定上書きを許可
        Order allow,deny
        Allow from All
    </Directory>
</Virtualhost>

<VirtualHost *:80>
    ServerName phpmyadmin
    DocumentRoot /opt/local/www/phpmyadmin
    <Directory "/opt/local/www/phpmyadmin">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Start MySQL

% sudo port load mysql.server
% mysql

接続できない場合はこちら

Setting hosts

% sudo vi /etc/hosts

127.0.1 test.local

Start Apache

% sudo /opt/local/apache2/bin/apachectl -k start

※ スタート時、エラーmodule php5_module is already loaded, skippingの場合は、LoadModuleにphp5_moduleの重複した記述があるのでひとつ削除します。





参照

how to set up MAMP