2015年01月

MacPort, Apache2, PHP5.6 インストール

●MacPortsのインストール
▽インストールの確認
$port version
▽インストール済みの場合
$sudo port selfupdate
▽新規インストール
以下からOSのバージョンに対応したMacPortsをインストール
https://www.macports.org/install.php
▽パスの設定
$vi .bash_profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
▽以下も実施
[Ensure you have at least the command line tools installed by running xcode-select --install from a Terminal. Make sure to also run this even if you have Xcode installed, because some ports fail to build without it. You also have to run sudo xcodebuild -license after doing this.]

$ xcode-select --install
$ xcodebuild -license
説明をパス q
同意 agree


●Apache2のMacPortsによるインストール
▽インストールの確認
$sudo port installed
▽インストール済みの場合
$sudo port upgrade apache2
▽新規インストール
$sudo port install apache2

▽apachectlの確認
Apche2.2の場合
 $/opt/local/apache2/bin/apachectl -version
Apche2.4の場合
 $/opt/local/sbin/apachectl -version

▽httpd/cnfの編集
Apche2.2の場合
 $sudo vi /opt/local/apache2/conf/httpd.conf
Apche2.4の場合
 $sudo vi /opt/local/etc/apache2/httpd.conf

  ServerSignature On ※デバッグ時のみ

  TraceEnable Off

  DocumentRoot "/Library/WebServer/Documents" #大文字小文字区別あり

  <Directory "/Library/WebServer/Documents">
     Options -Indexes +FollowSymLinks
 (Index表示の抑制:Indexes の前にハイフンFollowSymLinksの前にプラス)

▽パスの設定
$vi .bash_profile
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/apache2/bin:$PATH

▽起動と自動起動
$sudo /opt/local/apache2/bin/apachectl start
$sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist


●PHP5.6のインストール

$sudo port install php56 php56-apache2handler php56-mysql  php56-gd php56-openssl php56-mbstring
$cd /opt/local/etc/php56
$sudo cp php.ini-development php.ini
Apche2.2の場合
 $cd /opt/local/apache2/modules/
 $sudo /opt/local/apache2/bin/apxs -a -e -n "php5" mod_php56.so
Apche2.4以降の場合
 $cd /opt/local/lib/apache2/modules/
 $sudo /opt/local/sbin/apxs -a -e -n "php5" mod_php56.so

$sudo vi /opt/local/etc/php56/php.ini
  date.timezone = Asia/Tokyo
  date.default_latitude  = 35.681382
  date.default_longitude = 139.766084

post_max_size=80M
upload_max_filesize=80M
max_input_vars=10000
max_execution_time=300

$sudo vi /opt/local/apache2/conf/httpd.conf
  AddType application/x-httpd-php .php

●php55がすでにインストールされていた時以下を実行
$cd /opt/local/bin
$sudo rm php-config
$sudo ln -s php-config56 php-config
$sudo rm phpize
$sudo ln -s phpize56 phpize
$sudo apachectl restart

●PHP7.0のインストール

$sudo port install php70 php70-apache2handler php70-mysql  php70-gd php70-openssl php70-mbstring
$cd /opt/local/etc/php70
$sudo cp php.ini-development php.ini
$cd /opt/local/apache2/modules/
$sudo /opt/local/apache2/bin/apxs -a -e -n "php7" mod_php70.so
 [activating module `php7' in /opt/local/apache2/conf/httpd.conf]が表示される
$sudo vi /opt/local/etc/php70/php.ini
  date.timezone = Asia/Tokyo
  date.default_latitude  = 35.681382
  date.default_longitude = 139.766084

post_max_size=80M
upload_max_filesize=80M
max_input_vars=10000
max_execution_time=300

$sudo vi /opt/local/apache2/conf/httpd.conf
  AddType application/x-httpd-php .php

$sudo apachectl restart

※任意のエディタで以下の内容のファイル /Library/WebServer/Documents/php_info.php を作成
<?php
phpinfo();
?>

※ブラウザで http://localhost/php_info.php をブラウズ




コマンドTips

●ls      ファイルやディレクトリの情報を表示する     (1)

 構文      
ls [-abcdfhiklmnopqrstuxABCFGLNQRSUX1] [-w cols] [-T cols] [-I pattern] [--full-time] [--help] [name...]

 オプション      
-a, --all     ドット・ファイル(ファイル名の先頭にピリオドがあるファイル)を含んだすべてのファイルを表示する
-b, --escape     ファイル名に表示できないコントロール・コードなどが使われている場合,8進数3ケタ(\\ddd)で表示する
-c, --time=ctime, --time=status     ファイル・ステータスを変更した時間順にソートして表示する。-lオプションと一緒に使用すると内容更新時間がステータス更新時間として表示される
-d, --directory     [name]にディレクトリを含んでいる場合,ディレクトリの内容ではなくファイルと同様に表示する
-f     ソートせずにディレクトリ内の順番に沿って表示する
-h     単位などを読みやすい形式で表示する
-i, --inode     ファイル名の左にインデックス番号を表示する
-k, --kilobytes     ファイル・サイズをキロ・バイト単位で表示する
-l, --format=long, --format=verbose     ファイルの詳細も同時に表示する。ファイル名,ファイル・タイプ,パーミッション,ハード・リンクの数,オーナー名,グループ名,バイト・サイズ,タイム・スタンプの順に表示する
-m, --format=commas     ファイル名をカンマで区切って表示する
-n, --numeric-uid-gid     ユーザー名,グループ名を数字を使用して表示する
-o, --color, --colour, --color=yes, --colour=yes     ファイル・タイプによって色を付ける
-p     ディレクトリ名の最後に/を付けて表示する
-q, --hide-control-chars     エスケープ・コードなど表示できない文字列は?と置き換えて表示する
-r, --reverse     逆順にソートして表示する
-s, --size     ファイル名の左側にキロ・バイト単位でファイル容量を付加して表示する
-t, --sort=time     タイム・スタンプ順にソートして表示する
-u, --time=atime, --time=access, --time=use     タイム・スタンプの代わりにアクセス時刻でソートして表示する。また,-lオプションと一緒に使用すると,タイム・スタンプがアクセスした時間に変更される
-x, --format=across, --format=horizontal     水平方向にソート順にファイルを表示する
-A     ".."や"."を表示しない
-B, --ignore-backups     ファイルの最後にチルダ(~)が付いているファイルを除外して表示する
-C, --format=vertical     上下方向にソート順にファイルを表示していく
-F, --classify     ファイル名にファイル・タイプを表す記号を付けて表示する。ディレクトリは"/",実行可能ファイルは"*",シンボリック・リンクは"@",FIFOは"|",ソケットは"="で表わす
-G, --no-group     -lオプションでグループを抜いた形で表示する
-L, --dereference     シンボリック・リンクはリンク先のファイルが表示する
-N, --literal     エスケープ・コードが含まれていても変換せずに表示する
-Q, --quote-name     ファイル名をダブル・クォーテーションで囲んで表示する
-R, --recursive     ディレクトリ内容を再帰的に表示する(ディレクトリ内をすべて表示)
-S, --sort=size     ファイル・サイズ順にソートする
-U, --sort=none     ソートせずにディレクトリ内の順番に沿って表示する
-X, --sort=extension     拡張子でソートして表示する
-1, --format=single-column     1行に1ファイルずつ表示する
-w, --width cols     端末の幅をcolsとして表示する
-T, --tabsize cols     タブ幅をcolsとして表示する
-I, --ignore pattern     patternにマッチするファイルは表示しない
--full-time     タイム・スタンプについて曜日,月,日付,時間,年すべて表示する
--help     lsコマンドの使用法を表示する
name     指定したファイルやディレクトリのみを表示する。ワイルド・カードを使用することもできる

●cp      ファイルやディレクトリをコピーする     (1)

 構文      
cp [options] source dest
cp [options] source... directory

 オプション      
-a, --archive     できる限り属性やディレクトリ構造を保持してコピーする
-b, --backup     上書きや削除されるファイルについて,バックアップ・ファイルを作成する
-d, --no-dereference     シンボリック・リンクをコピーするときは,シンボリック・リンクの実体をコピーする
-f, --force     コピー先に同名ファイルがあるときも警告せず,上書きを行う
-i, --interactive     上書きされるファイルがあるときは問い合わせする
-l, --link     ファイルをコピーするときは代わりにハード・リンクを作成する
-P, --parents     指定したディレクトリをつけてコピーする
-p, --preserve     オーナー,グループ,パーミッション,タイムスタンプを保持したままコピーする
-r     ディレクトリを再帰的にコピーする
-s, --symbolic-link     ディレクトリ以外のファイルをコピーする際,シンボリック・リンクを作成する
-u, --update     同名のファイルが存在する場合,タイムスタンプを比較して同じまたは新しいときにはコピーを行わない
-v, --verbose     コピーの前に,ファイル名を表示する
-x, --one-file-system     コピーする際,異なったファイル・システムのサブ・ディレクトリはコピーを行わない
-R, --recursive     ディレクトリを再帰的にコピーする
--help     cpコマンドの使用法を表示する
source     コピー元のファイルやディレクトリを指定する。ワイルド・カードを使用することもできる
dest     コピー先のファイル名やディレクトリ名を指定する。ファイル名を指定した場合は新しい名前でコピーされる。
directory     コピー先のディレクトリを指定する

MySQLデータの修復

mysqldumpで以下のようなメッセージが吐き出される。
mysqldump: Got error: 145: Table './scall/xdb_log' is marked as crashed and should be repaired when using LOCK TABLES

テーブルのチェックと修復方法を以下に。
mysql> check table xdb_log medium;
mysql> repair table xoops_session USE_FRM;

CentOS6.0でファイルサーバ(samba)の共有ディレクトリをマウント

以下 ref. http://www.kenmaripc.mydns.jp/20111004/557

CentOS6.0でファイルサーバ(samba)の共有ディレクトリをマウント

 

まずは必要なパッケージを以下のようにインストールします。

yum install samba-client cifs-utils

(cifs-utils はオリジナルに追加)


つぎにマウント先のディレクトリを以下のように作成します。

mkdir /mnt/samba

 

マウントコマンドで以下のようにマウントします。

mount -t cifs -o username=ユーザー名,password=パスワード //ファイルサーバのIPアドレス/共有ディレクトリ /mnt/samba

SMBサーバーがOSXファイル共有の場合、パスワードの後に「,nounix,sec=ntlmssp」(またはsec=ntlmなど) を付加。


システムの起動時に自動でマウントするようにするには/etc/fstabの最終行に以下を追記します。

//ファイルサーバのIPアドレス/共有ディレクトリ /mnt/samba cifs credentials=/etc/smbpw 0 0

SMBサーバーがOSXファイル共有の場合、credentials=/etc/smbpw の後に「,nounix,sec=ntlmssp」 (またはsec=ntlmなど)を付加。


/etc/fstabはすべてのユーザーから読み込めるためsambaのユーザー名とパスワードは別のファイルに記述してroot以外から読み込みできないようにします。

vi /etc/smbpw
username=ユーザー名
password=パスワード
chmod 600 /etc/smbpw

 

以上でマウントできます。アンマウントする場合は以下のようにします。

umount /mnt/samba

CentOS mysqldump でエラー

mysqldump で --all-databases 指定をすると Event Scheduler がダメージを受けているという以下のエラーが出る。
mysqldump: Couldn't execute 'show events': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)
これは古いバージョンを--all-databasesでバックアップし、新しいバージョンに復元すると発生した。
DB:information_schema>TABLE:EVENTS
を通常にアクセスしても発生する。
対策:mysql_upgrade で MySQL アップグレードのテーブル チェックを行う
%mysql_upgrade -u root -h localhost -p --verbose
実行後にmysqlの再起動
/etc/rc.d/init.d/mysqld stop
/etc/rc.d/init.d/mysqld start
以上で解決した。
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計: