デフォルトのシェルを変更
macのrootユーザになった際のshellがどうも気に入らなかったのでデフォルトのシェルを変更
やり方は
sh-3.2# chsh -s /bin/bash root
でok.
一度ログアウトしてから再びrootになると
bash-3.2#
となってて変更できた。
シェルはパスをしっかりと指定しないといけないっぽい。
macのrootユーザになった際のshellがどうも気に入らなかったのでデフォルトのシェルを変更
やり方は
sh-3.2# chsh -s /bin/bash root
でok.
一度ログアウトしてから再びrootになると
bash-3.2#
となってて変更できた。
シェルはパスをしっかりと指定しないといけないっぽい。
sudo port install php5 +apache2 +mysql5
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
vi /opt/local/apache2/conf/httpd.conf
で、
Include conf/extras-conf/mod_php.conf
の最後の方に、
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
を追加。
/opt/local/apache2/bin/apachectl restart
apacheを再起動
macportを使ってapache2のインストールを行う
beck:~ katsuya$ sudo port install apache2
けれど、以下のようなエラーが発生してうまくいかない。
Error: The following dependencies failed to build: apr-util sqlite3 gawk gettext ncurses ncursesw readline pcre
Error: Status 1 encountered during processing.
その場合、sqllite3をアンインストールしてあげれば大丈夫。
beck:~ katsuya$ sudo port clean --all sqlite3
beck:~ katsuya$ sudo port install apache2
最後に自動起動のデーモンに追加しておわり
beck:~ katsuya$ sudo lauchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
Leopardでは、デフォルトでrootユーザが無効になっている。
そのため、
> sudo passwd root
とやってrootのパスワードを設定してあげればいい。
[root@fedora ~]# mysql -u root ← MySQLサーバーへrootユーザでログイン
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.21
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認
+------+----------------------+----------+
| user | host | password |
+------+----------------------+----------+
| root | localhost | | ← ホスト名がlocalhostのrootユーザにパスワードが設定されていない
| root | fedora.fedorasrv.com | | ← ホスト名が自ホストのrootユーザにパスワードが設定されていない
| root | 127.0.0.1 | | ← ホスト名が127.0.0.1のrootユーザにパスワードが設定されていない
+------+----------------------+----------+
4 rows in set (0.00 sec)
mysql> set password for root@localhost=password('rootパスワード'); ← ホスト名がlocalhostのrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@'fedora.fedorasrv.com'=password('rootパスワード'); ← ホスト名が自ホストのrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@127.0.0.1=password('rootパスワード'); ← ホスト名が127.0.0.1のrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認
+------+----------------------+------------------+
| user | host | password |
+------+----------------------+------------------+
| root | localhost | **************** | ← ホスト名がlocalhostのrootユーザにパスワードが設定された
| root | fedora.fedorasrv.com | **************** | ← ホスト名が自ホストのrootユーザにパスワードが設定された
| root | 127.0.0.1 | **************** | ← ホスト名が127.0.0.1のrootユーザにパスワードが設定された
+------+----------------------+------------------+
4 rows in set (0.00 sec)
mysql> exit ← MySQLサーバーからログアウト
Bye
[root@fedora ~]# mysql -u root
← ホスト名がlocalhostのrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@fedora ~]# mysql -u root -h 'fedora.fedorasrv.com'
← ホスト名が自ホストのrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@fedora ~]# mysql -u root -h 127.0.0.1
← ホスト名が127.0.0.1のrootユーザでパスワードなしでMySQLサーバーへログインできないことを確認
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@fedora ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password: ← MySQLのrootパスワード応答
ホスト名がlocalhostのrootユーザでパスワードありでMySQLサーバーへログインできることを確認
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.21
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> exit ← MySQLサーバーからログアウト
Bye
MySQLのユーザ「root」と同じ、管理者権限を持つユーザ「user1」を登録するには、次のような2つのGRANT構文を実行します。MySQLのユーザ「user1」にはパスワードを設定しています。
mysql> GRANT ALL PRIVILEGES ON *.* TO user1@"%" -> IDENTIFIED BY 'パスワード' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO user1@localhost -> IDENTIFIED BY 'パスワード' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
どのホストからでもサーバに接続できるようにするために、「user1@"%"」と「user1@localhost」を指定した、2つのGRANT構文を実行しています。(localhostから接続できるようにするためには、「user1@localhost」を指定する必要があります)
また、「WITH GRANT OPTION」によりGRANT構文の実行権限を与えています。
権限:ALL PRIVILEGES(すべての権限) データベース名.テーブル名:*.*(すべてのデータベースのすべてのテーブル) ユーザ名:user1@"%" (すべてのホスト「"%"」の、ユーザ「user1」) user1@localhost(ローカルホストの、ユーザ「user1」) GRANT実行権限:(GRANT構文を実行する権限)
MacPortsはソフトウェアをコンパイルしてインストールするので、コンパイラやらがいろいろと必要。そこで、Xcode Toolsをインストールする。これは、Mac本体に付属のOSインストールディスクか、http://connect.apple.com/から手に入るけど、インストールディスクからがおすすめ。
最近のマシンだとOSのインストールディスクの
を実行すればOK。
準備が済んだら、MacPortsをインストールする。MacPortsのバイナリは、http://svn.macosforge.org/repository/macports/downloads/からダウンロードできる。dmg形式のアーカイブを使うのが最も手軽で、Mac OS X 10.4を使ってる人は、DarwinPorts-1.3.1/DarwinPorts-1.3.1-10.4.dmgをダウンロードしよう。
ダウンロードができたら、マウントしたディスクの中のインストーラを実行して、インストールを完了する。
MacPortsは、MacPorts自身を含めたファイルをすべて/opt/local以下にインストールする。なので、各種パスを/opt/localに通しておく必要がある。そこで、自分のシェルの環境変数を以下のように設定しておく。
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH
Mac OS Xデフォルトのbashの場合は、自分のホームディレクトリの.bashrcに上の2行を書き込んでおく。
ここまでくれば、コマンドラインからportコマンドが使えるようになっているはず。MacPorts自身を最新の状態にアップデートした後、インストールできるソフトウェア一覧を更新する。それぞれ、以下のコマンドを実行すれば良い。
$ sudo port -d selfupdate $ sudo port -d sync
アップデートの時少し触れたようにMacPortsを操作するにはportコマンドを利用する。このコマンドはたいがい/opt/local以下を変更するので、sudoと組み合わせて利用することが多い。
以下、うちがよく使う操作を並べてみた。もっとステキな機能があるのかもしれないので、気になる人はman portをチェックしてみて。あと、portに-dオプションをつけて実行すると、コンパイルの詳細な出力が見れるので、コンパイル風景を眺めるのが好きな人はやると良さそう。
ともあれ、以下のコマンドで自分の好きなツールをいろいろいれれるのでお試しアレ。
初期設定時にも行ったsyncアクション。これをしないとソフトウェア一覧が古いままなので定期的にやるべし。
$ sudo port sync
自分の利用したいソフトウェアがMacPortsで使えるのかを調べるのには、searchアクションを使う。zshで検索すると、
$ port search zsh
zsh shells/zsh 4.2.6 Zsh is a UNIX command interpreter (shell)
zsh-devel shells/zsh-devel 4.3.2 Zsh is a UNIX command interpreter (shell)
てな感じに、普通のzshとzsh-develという開発版があるということがわかる。
文字通り、installアクションを使う。
$ sudo port install zsh-devel
実行すると、依存関係の解決、ソースコードのダウンロード、コンパイル、インストールが自動で行われる。
MacPortsにはvariantsという仕組みがあって、ソフトウェアをインストールする際に追加機能を選択することができるようになっている。どんなvariantsがあるのかは次のように調べられる。
$ port variants zsh-devel
zsh-devel has the variants:
darwin_8
dp_completion
utf8
zsh-develには、darwin_8、dp_completion、utf8という3つのvariantsがあることがわかる。これらを指定することで、機能を有効にした状態でソフトウェアがビルドされる。指定するには以下のように、
$ sudo port install zsh-devel +dp_completion +utf8
のように+を付けて指定する。ちなみに、darwin_8とかのMac OS X専用オプションは自動で付加されるので指定しなくても良い。
あと、varinantsを変えて同じソフトウェアをインストールすると、別物あつかいになって、もとからあるやつと衝突するので注意。先にアンインストールするか、deactivateしておく。
$ sudo port upgrade zsh-devel
$ sudo port uninstall zsh-devel
MacPortsには、deactivateといってソフトウェアを完全に削除せずに一時的に無効にする機能がある。異なるvariantsを指定したあるソフトの複数のバイナリを切り替えてためしたいときなどに便利。
$ sudo port deactivate zsh-devel
逆はactivate
$ sudo port activate zsh-devel
$ port installed
インストール済みソフトウェアをすべてアップグレードしたいときはupgradeと組み合わせて、
$ sudo port upgrade installed
とすれば良い
$ port outdated
Mac mini サーバにmysqlをインストールする。今回はmysql.comからバイナリ/ソース/パッケージをダウンロードせず、Macportsを使ってインストールしてみよう。
[yuanying@Magnus ~]$sudo port -uv install mysql5 +server Password: ... (中略) ... ---> Creating launchd control script ########################################################### # A startup item has been generated that will aid in # starting mysql5 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 ########################################################### ****************************************************** * In order to setup the database, you might want to run * sudo -u mysql mysql_install_db5 * if this is a new install ******************************************************
+serverバライアントをつけてmysql5をインストールしてやる。このバライアントをつけることによって自動起動用の設定ファイルも一緒にインストールされる。
[yuanying@Magnus ~]$sudo -u mysql mysql_install_db5 Password: Installing MySQL system tables...
ログの最後に書いてあったようにsudo -u mysql mysql_install_db5
と実行し、初期データベースを作成してやる。
[yuanying@Magnus ~]$sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf [yuanying@Magnus ~]$sudo vim /opt/local/etc/mysql5/my.cnf [yuanying@Magnus ~]$more /opt/local/etc/mysql5/my.cnf ... (中略) ... # The MySQL server [mysqld] ... (中略) ... ## USER-SETTINGS default-character-set = utf8 default-storage-engine=innodb skip-character-set-client-handshake ## ...
mysqldセクションに私は上の三つの設定を書き足した。
launchctlを使ってサーバを起動する。loadすることで自動起動されるようになるぽい。Linuxでいうchkconfig mysql5 onと/etc/rc.d/mysql5 startを組み合わせた感じ?
mysqlをインストールするときに+serverバライアントを追加しておくと、/Library/LaunchDaemonsフォルダにorg.macports.mysql5.plistという名前の自動起動用の設定ファイルが生成されているので、それを利用する。
[yuanying@Magnus ~]$sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
クライアントから接続してちゃんと動作しているか確認してみる。
[yuanying@Magnus ~]$mysql5 -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.45 Source distributionType 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
OK。