MacPorts で MySQL5 と Apach2 と PHP5 を入れたメモ。

インストール完了まで意外と時間をくってしまった。

MySQL5

ややこしいことに mysql5 と mysql5-server の2つが対象としてあるので要注意。

mysql5 を選ぶと mysql_install_db5 で一手間必要だったり、 plistを自前で書く必要がでてくるので、mysql5-server を選ぶ。

$ sudo port install mysql5-server
--->  Computing dependencies for mysql5-server
--->  Fetching mysql5
--->  Verifying checksum(s) for mysql5
--->  Extracting mysql5
--->  Applying patches to mysql5
--->  Configuring mysql5
--->  Building mysql5
--->  Staging mysql5 into destroot
--->  Installing mysql5 @5.1.46_0
The MySQL client has been installed.
If you also want a MySQL server, install the mysql5-server port.
--->  Activating mysql5 @5.1.46_0
--->  Cleaning mysql5
--->  Fetching mysql5-server
--->  Verifying checksum(s) for mysql5-server
--->  Extracting mysql5-server
--->  Configuring mysql5-server
--->  Building mysql5-server
--->  Staging mysql5-server into destroot
--->  Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting mysql5-server with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
###########################################################
--->  Installing mysql5-server @5.1.46_0
******************************************************
* In order to setup the database, you might want to run
* sudo -u _mysql mysql_install_db5
* if this is a new install
******************************************************
--->  Activating mysql5-server @5.1.46_0
--->  Cleaning mysql5-server

無事インストールが終わったら、mysql_install_db5 を実行する。

$ sudo -u _mysql mysql_install_db5
Installing MySQL system tables...
...略
Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!

ログイン時、MySQLが自動で起動するように設定。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

これで、mysqld が勝手に立ち上がる。
最後にログイン出来るか確認して、インストール完了。

$ mysql5 -u root
...略
mysql>

Apach2 と PHP5

Apach2 と PHP5 をいっぺんにインストール。

$ sudo port install php5 +apache2 +mysql5 +pear
Password:
--->  Computing dependencies for php5
...略
--->  Building apache2
--->  Staging apache2 into destroot
--->  Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting apache2 with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
###########################################################
Note: apache2 installs files outside the common directory structure.
--->  Installing apache2 @2.2.15_1+darwin+preforkmpm
--->  Activating apache2 @2.2.15_1+darwin+preforkmpm
--->  Cleaning apache2
...略
--->  Configuring php5
The +mysql5 variant is obsolete. Please install the php5-mysql port instead.
--->  Building php5
--->  Staging php5 into destroot
Note: php5 installs files outside the common directory structure.
--->  Installing php5 @5.3.2_0+apache2+darwin_10+macosx+mysql5+pear
--->  Activating php5 @5.3.2_0+apache2+darwin_10+macosx+mysql5+pear
To customize php, copy
/opt/local/etc/php5/php.ini-development (if this is a development server) or
/opt/local/etc/php5/php.ini-production (if this is a production server) to
/opt/local/etc/php5/php.ini and then make changes.
 
If this is your first install, you need to activate PHP in your web server.
 
To enable PHP in Apache, run
  cd /opt/local/apache2/modules
  /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
--->  Cleaning php5

ログイン時、Apache2 が自動で起動するように設定。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

php.ini をコピー。

$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini

php5 単体では、MySQLインターフェースがインストールされない。
なので、別途インストールする必要がある。

$ sudo port install php5-mysql
...略
--->  Staging php5-mysql into destroot
--->  Installing php5-mysql @5.3.2_0+mysqlnd
To use mysqlnd with a local MySQL server, edit /opt/local/etc/php5/php.ini and set
mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket
to /opt/local/var/run/mysql5/mysqld.sock
--->  Activating php5-mysql @5.3.2_0+mysqlnd
--->  Cleaning php5-mysql

MySQLに関わる設定をする為、php.ini を修正する。

$ sudo vi /opt/local/etc/php5/php.ini
pdo_mysql.default_socket =/opt/local/var/run/mysql5/mysqld.sock
mysql.default_socket =/opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket =/opt/local/var/run/mysql5/mysqld.sock

mbstring も分離されているので、別途インストールする。

$ sudo port install php5-mbstring
...略
--->  Installing php5-mbstring @5.3.2_0
--->  Activating php5-mbstring @5.3.2_0
--->  Cleaning php5-mbstring

以上で、port を使ったインストール作業は完了。
続いて、httpd.conf の設定を行う。

httpd.conf に php5 モジュールを追加。

$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so 
[activating module `php5' in /opt/local/apache2/conf/httpd.conf]

httpd.conf に php の設定を追加。

$ sudo vi /opt/local/apache2/conf/httpd.conf
...
<IfModule php5_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
 
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

httpd を再起動。

$ sudo /opt/local/apache2/bin/apachectl restart

最後に、php ファイルを用意しブラウザからアクセス出来ることを確認して、インストール完了。

なんか・・・

意外と手間取った。

 

以前、Social Bookmarking JP が便利といったエントリを書いたけど、少し気になる点をみつけてしまった。

Twitter へのツイートボタンがあるのだが、通常だと短縮URLが使われず、URLに日本語が混じっていると非常に長いURLになってしまい、ツイッターの140文字制限を軽くオーバーしてしまう・・・。

たとえば、こんな感じ。

WordPress ソーシャルブックマーク系プラグイン : http://www.ninxit.com/blog/2010/05/05/wordpress-%E3%82%BD%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%AB%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E7%B3%BB%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/

92文字ほどオーバーしてる。

これを対策するには、プラグインを弄るしかないのだけど、短縮URLサービスのAPIを叩くように変更するのは、かなりめんどくさい。

そこで、ブログ1年生でも設置できる超シンプルTwitter「つぶやきボタン」を使うことにしてみた。
このサービスを使えば、URLを自動で短縮してくれるっぽい。

変更内容は、以下のとおり。

social-bookmarking-jp.php

    // Twitter
/*
    'twitter' => array(
	'label' => __('Twitter', 'social-bookmarking-jp'),
	'entry' => array(
	    'link' => 'http://twitter.com/home?status=@URLENCODED_TITLE@%20@URLENCODED_LINK@',
	    'icon' => WP_PLUGIN_URL . '/social-bookmarking-jp/twitter.gif',
	    'width' => 16,
	    'height' => 16,
	    'alt' => __('Post to Twitter', 'social-bookmarking-jp')
	),
	// http://tweetbuzz.jp/static/imgcounter
	'users' => array(
	    'link' => 'http://tweetbuzz.jp/redirect?url=@LINK@',
	    'icon' => 'http://tools.tweetbuzz.jp/imgcount?url=@LINK@',
	    'alt' => __('Tweets for this web page', 'social-bookmarking-jp')
	)
    ),
 */
    'twitter' => array(
	'label' => __('Twitter', 'social-bookmarking-jp'),
	'entry' => array(
	    'link' => 'http://2bu.in/j',
	    'icon' => 'http://2bu.in/tw',
	    'alt' => __('Post to Twitter', 'social-bookmarking-jp')
	),
	// http://tweetbuzz.jp/static/imgcounter
	'users' => array(
	    'link' => 'http://2bu.in/d/http://www.ninxit.com/blog/',
	    'icon' => 'http://2bu.in/i/http://www.ninxit.com/blog/',
	    'alt' => __('Tweets for this web page', 'social-bookmarking-jp')
	)
    ),

時間があれば、自分用にプラグインを作ってみたいところだけど、とりあえずしばらくこのままで行こうかな。

 

エントリーの最初 or 最後に自動でソーシャルブックマーク用のボタンを追加してくれる超便利なプラグイン。

Social Bookmarking JP の導入メモ。

インストールは簡単。zipファイルをダウンロード&解凍して、plugin ディレクトリに置くだけ。

しかし、見た目がなんか気になる。
その画像がこちら。

ボタンの周りが灰色になっていてカコワルイよ。

ブックマーク数を表示する部分なんて小さな灰色の四角となって申し訳なさそうにたたずんでいるじゃないか。

原因は、テーマで設定されている CSS の img 項目。
おもいきり干渉してる。

とりあえず解決策として、「プラグインのソースコードを弄って、オプションから CSS の設定をできるようにする」ことを考えた。

けど、めんどくさい。

興味本位からソースコードをサッと眺めてみた感じ、かなり分かり易くて修正は容易っぽかったけど、
後々プラグインがアップデートされたときとか考えるとやっぱ面倒。

結局テーマの CSS を弄くることにした。

使用中の Atahualpa 3.4.6 テーマは CSS の拡張が自由にできて地味に便利。

以下、修正コード。

.bookmark_entry img{
background: #ffffff;
padding: 3px 0;
}
.bookmark_users img{
background: #ffffff;
padding: 3px 0 3px 2px;
}

bookmark_entry は、ブックマークボタン用のクラス。
バックグラウンドを白くして、上下に 3px 幅を持たせた。

bookmark_users は、ブックマークとかリツイートされた数用のクラス。
こちらもバックグラウンドを白くして、上下に 3px 幅を持たせた。さらに左に 2px 調整値をいれてみた。

修正後の見た目がこちら。

ずいぶんシュッとしてよい感じになったである。