コマンド



Linux, 文字コード





Linuxで文字コードを調べる方法

・ 準備
コンソールで
sudo yum install nkf
を入力しインストールをする
※ すでにインストールされている場合は行わなくてよい

nkf1

・使い方
nkf -guess "調べたいファイルのパス"

で文字コード、改行コードが調べられる

【参考サイト】
@IT
Hack

Linuxコマンド


グループの追加, 新規グループ


Linuxで新規グループを作成する手順

・コマンド
groupadd "グループ名"

・使い方
groupadd test

すでにあるグループの確認
cat /etc/group

現在、ログインしているグループの確認
id

※ 上記でtestグループが作成される
【参考サイト】
kazmax.zpp.jp

コマンド


シンボリックリンク



まぁ、Windowsでいうところのショートカットみたいなもん
e-Words

・使い方
・ln "オプション" "先のファイルやディレクトリ" "リンクファイル名"
・ln "オプション" "先のファイルやディレクトリ"
※ 下のほうで作成した場合は最後にあるファイル・ディレクトリ名で作成させる

・オプション
-b     : すでに同名のリンク・ファイル名がある場合はバックアップを作成する
-d -F : ハードリンクの作成(管理者[スーパーユーザー]のみ可能)
-f      : すでに 同名のリンク・ファイル名がある場合でも上書きをする
-i      : すでに 同名のリンク・ファイル名がある場合は確認をする
-n     : リンク作成の際にリンク元に既存ディレクトリを指定した場合でも、ディレクトリ中にリンクを作成せず、ディレクトリとリンクを置き換える
-s     : シンボリックリンクを作成する
-v     : 作成前にリンク名を表示する
-help : ヘルプの表示

・使い方例
ln -s /usr/local/apache2/htdocs/lib/vendor/symfony/data/web/sf
今いるディレクトリに
/usr/local/apache2/htdocs/lib/vendor/symfony/data/web/sf
へのシンボリックリンクを
sfディレクトリとして作成する。

【参考サイト】
IT Pro

Symfony1.x


プロジェクトの開始



・自環境
OS       : CentOS6.3
PHP     : php5.4.12
MySQL : MySQL5.6.1

1, SSH等でサーバーにログインをする

2, ディレクトリの移動
Webサーバーのホームディレクトリに移動する
※ 僕の場合 /usr/local/apache2/htdocs

3, コマンドの実行
php lib/vendor/symfony/data/bin/symfony generate:project jobeet
※ php lib/vendor/symfony/data/bin/symfony generate:project "プロジェクト名"
ということ
symfony1.2-5

3-1, すると
apps
cache
config
data
doc
log
plugins
symfony
test
web
上記,10のディレクトリ および ファイルが作成される
symfony1.2-6

4, アプリケーションの作成
symfonyのファイルがあるディレクトリで
./symfony generate:app --escaping-strategy=on --csrf-secret=Unique$ecret frontend
を実行
symfony1.2-7
するとディレクトリやファイルがいろいろ作成させる>
※ 詳細はかかない・・・(ごめん

[確認]
ここまででWebで確認ができるhttp://"IPアドレス もしくは ドメイン"/web/frontend_dev.php
※画像が表示されない

すると、エラーが表示されたので修正
・Warning: ob_start(): function '' not found or invalid function name in ~ /sfApplicationConfiguration.class.php on line 157

・Notice: ob_start(): failed to create buffer in ~/sfApplicationConfiguration.class.php on line 157
- 修正
1, lib/vendor/symfony/lib/config/sfApplicationConfiguration.class.php
のファイルを開く
2, 157行目の
 ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : '');

 ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : null);
に修正

・画像が表示されないので
/usr/local/apache2/htdocs/web
のディレクトリ時に
ln -s /usr/local/apache2/htdocs/lib/vendor/symfony/data/web/sf
でシンボリックリンクを作っておく

・ /frontend_dev.php
が表示されないときは
front_end.phpを開き
4 ~ 6行目の
if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')))
{
  die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
 }
をコメントアウトし
//if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')))
//{
 //  die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
 // }
にしてサイドチャレンジ

※ この時点でhttpd.conf や バーチャルホストでドキュメントルートを変更しておいたほうがよいような気がする

※ 2013/03/21 追記
チュートリアルを見てみる限りは1.2だろうと1.4だろうとPropelだろうとDoctrineだろうと変わらないのでタイトル変更

【参考サイト】
Symfonyチュートリアル 1日目
紫陽花観察日記

Symfony1.x


Symfony1.x 設置

いまさらになって
仕事でSymfonyをさわることになった

※ Symfony2系も出ているのにねぇ・・・
というわけでチュートリアルを行ってみる

・環境
OS      : CentOS 6.3
PHP    : PHP5.4.12
php環境
MySQL : MySQL5.6.1
mysql環境

1, Symfonyの入手
Symfonyのページの下にある
Download Previous stable releases
の部分にあるセレクトボックスを
ほしいバージョンにして「DOWNLOAD」をクリックする
すると,
ほしいバージョンのSymfonyが手に入る
※ 今回はsymfony-1.2.12で行う

2, Symfonyをサーバーにアップする
SCPもFTPでもいいのでWebサーバーのドキュメントルートに入れる
※ 自分の場合は/usr/local/apache2/htdocs以下にする

3,ディレクトリの作成
mkdir -p ./lib/vendor
をしsymfony-1.2.12.tazと同じディレクトリに
./lib/vendorディレクトリを作成する

4 syfonyの移動
mv ./symfony-1.2.12 ./lib/vender/symfony-1.2.12
に移動させる

5, 解凍
5-1, 解凍
tar -zxvf ./symfony-1.2.12.tgz
で解凍をする

5-3, ディレクトリ名変更
mv ./symfony-1.2.12 ./symfony
のコマンドをうち「symfony-1.2.12」から「symfony」に名称を変更する

6, チェック
Webサーバーのドキュメントルート
※ 自分の場合は /usr/local/apache2/htdocs
に戻る

7, チェック
php lib/vendor/symfony/data/bin/check_configuration.php
symfony1.2-2

ちょっとエラーが出たので修正
・ XSL module is installed: FAILED
モジュールが足りないようなので
sudo yum install libxslt-devel
でインストールして再度、インストール
A PHP accelerator is installed: FAILED
に関してはAPCを入れてくれっぽいのでちょい無視

7-1, 修正を行ったあともう一回チェック
symfony1.2-2
・ php.ini has short_open_tag set to off: FAILED
php.iniでショートタグをoffにしてください。
まだ、出ているが無視をする

※ 2013/03/11 追記
調べてみたらコンパイルのときにphp-configの設定を忘れていた
再度、コンパイル打つのがメンドイので
・  php -i | grep php.iniをターミナルでうつ
/usr/local/lib
と表示された

・表示されたパスに移動
cd /usr/local/lib

・移動後、もともとあるphp.iniの確認
※ 僕の場合は/usr/local/php5/lib/php.ini

・シンボリックリンクをはる
ln -s /usr/local/php5/lib/php.ini

・再度,php -i | grep php.iniをターミナルでうつ
php.iniが表示されればOK

8, ファイルの削除
 rm -f /usr/local/apache2/htdocs/lib/vendor/symfony/data/bin/check_configuration.php
でファイルを削除

9, インストールの確認
php /usr/local/apache2/htdocs/lib/vendor/symfony/data/bin/symfony -V
をコマンドで入力し実行
バージョンが表示されればOK

symfony1.2-4

続く

※ 2013/03/21 追記
チュートリアルを見てみる限りは1.2だろうと1.4だろうとPropelだろうとDoctrineだろうと変わらないのでタイトル変更

【参考サイト】
Symfonyチュートリアル 1日目
日本の天ぷら情報

Linux apache2.4


インストール


前回の続き



・環境
OS : CentOS6.3

・インストールしたいバージョン
apache2.4.4

1, httpd.confの編集

sudo vim  /usr/local/apache2/conf/httpd.conf

1-1, 86行目付近の
#ServerName www.example.com:80

ServerName "IPアドレス":80


1-2, ServerName "IPアドレス":80の下に
ServerTokens ProductOnly
を追加

1-3, さらにServerTokens ProductOnlyの下に
 TraceEnable off
を追加

※ 20130311追記
1-4
156行目 User deamon

User "apache実行ユーザー"
※ 僕の場合は User apache

157行目 Group deamon

Group "apache実行グループ"
※ 僕の場合は Group apache

※ 2013/03/17追記
※ 2013/03/21 さらに追記 書く場所間違えた。。。(泣
1-5, ディレクトリの一覧を表示させない
277 行目あたりにある
Options Indexes FollowSymLinks

Options FollowSymLinks
に変更

2, 以下のコマンドでiptableのファイルを開く
sudo vim /etc/sysconfig/iptables
2-1, 以下の文言を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2-2, 以下のコマンドでiptablesをリスタート
sudo /etc/init.d/iptables restart

3, 起動ファイルの変更
sudo cp /usr/local/src/httpd-2.4.4/build/rpm/httpd.init /etc/init.d/httpd

4, 移動したファイルの設定を変更
sudo vim /etc/init.d/httpd

4-1, 26行目あたりの
# config: /etc/sysconfig/httpd

# config: /usr/local/apache2/conf/httpd.conf
に変更
※ confファイルの指定

4-2, 60行目あたりの
httpd=${HTTPD-/usr/sbin/httpd}

httpd=${HTTPD-/usr/local/apache2/bin/apachectl}
※ 起動ファイルの場所の指定

4-3, 61行目あたりの
pidfile=${PIDFILE-/var/run/${prog}.pid}

pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}
※ この記述はpidファイルの置き場所の指定なのでディレクトリがあり書き込めればどこでもよい

4-4, 67行目あたりの
CONFFILE=/etc/httpd/conf/httpd.conf

CONFFILE=/usr/local/apache2/conf/httpd.conf
※ confファイルの指定

5, ユーザー・グループの追加
sudo groupadd apache
sudo useradd -r -g apache apache


6, 以下のコマンドでユーザーグループの変更
sudo chown -R apache:apache /usr/local/apache2/

7. 起動
sudo /etc/init.d/httpd start

8, 自動起動の設定
sudo chkconfig --add httpd
sudo chkconfig httpd on


9, 確認
ブラウザを開き
サーバーのIPアドレス もしくは
設定したドメインを入力してページを開く
以下のように「it works!」
もしくは
/usr/local/apache2/htdocs/index.html
に記述してある文言が表示されればOK

httpd2



【参考サイト】
もと東大生もと社長の自由奔放ブログ Just do it now!
もと東大生もと社長の自由奔放ブログ Just do it now!
VineLinuxで自宅サーバー公開



Linux


apache2.4のインストール


・環境
OS : CentOS6.3

・インストールしたいバージョン
apache2.4.4

1, すでにインストールされているapacheの確認
sudo yum list httpd

apache1

※2013/03/11追記
sudo yum list installed httpd*
が正解・・・(泣

2, 入っている場合削除
sudo yum remove httpd

3, 作業ディレクトリに移動
cd /usr/local/src

4, aprのインストール
4-1, ソースファイルのダウンロード
sudo wget http://ftp.riken.jp/net/apache//apr/apr-1.4.6.tar.gz
4-2, ファイルの解凍
sudo tar -zxvf ./apr-1.4.6.tar.gz
4-3, 解凍したディレクトリに移動
cd ./apr-1.4.6
4-4, /configureの実行
sudo ./configure
4-5,makeの実行
sudo make
4-6, make testの実行
sudo make test
4-7, make install でインストール
sudo make install

5,APR-utilのインストール
5-1, ソースのダウンロード
sudo wget http://ftp.riken.jp/net/apache//apr/apr-util-1.5.1.tar.gz
5-2, ソースの解凍
sudo tar -xzvf ./apr-util-1.5.1.tar.gz
5-3, 解凍したディレクトリに移動
cd ./apr-util-1.5.1
5-4, ./configureの実行
sudo ./configure --with-apr=/usr/local/apr
※ --with-aprでaprをインストールしたディレクトリを指定しないとエラーになる
5-5, makeの実行
sudo make
5-6, make testの実行
sudo make test
5-7, make installでインストール
sudo make install

6, pcreのインストール
sudo yum install pcre-devel

7, apacheのソースをダウンロード
sudo wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/httpd-2.4.4.tar.gz

8, ダウンロードしたapacheのソースを解凍
sudo tar -zvxf ./httpd-2.4.4.tar.gz

9, 解凍したディレクトリに移動
cd httpd-2.4.4

10,  ./configureの実行
sudo ./configure

11, makeの実行
sudo make
12, make installを実行してインストール
sudo make install

続く

【参考サイト】
もと東大生もと社長の自由奔放ブログ Just do it now!
LAYER8


Linux MySQL5.6


初期設定


・環境
OS : CentOS6.3 64bit

・インストールするMySQLのバージョン
MySQL5.6.1

前回が長すぎるので分けることにした。。。

[初期設定編]
1 ,グループの作成
sudo groupadd mysql

2, ユーザーの作成
sudo useradd -r -g mysql mysql

3, パスを通しておく
3-1の場合  : 全体
3-2の場合 : ユーザーのみ

3-1  : 全体
3-1-1, 以下のコマンドでファイルを開く
sudo vim /etc/profile

3-1-2, 一番最後の行に以下の文字列を追加
export PATH=$PATH:/usr/local/mysql/bin

3-1-3, 以下のコマンドを入力
source /etc/profile

3-2, ユーザーのみ
3-2-1 , ホームディレクトリに移動
cd

3-2-2, 以下のコマンドでファイルを開く
vim .bash_profile

3-2-3, 10行目にあるPATH
PATH=$PATH:$HOME/bin

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

3-2-4, 以下のコマンドを使って更新をする
source /home/tset/.bash_profile

3-3(共通)確認方法
echo $PATH

/usr/local/mysql/bin

が追加されているか?を確認

3(余談)
上記の対応を行うことにより
どこのディレクトリにいてもmysqlのコマンドが起動する

4, 以下のコマンドを入力しmysql のユーザーとグループの変更
sudo chown -R mysql:mysql /usr/local/mysql/

5, 以下のコマンドでmysqlのDBの初期化
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/mysql/data

6, my.cnfの移動
5を行った時点で/usr/local/mysqlのディレクトリにmy.cnfができているので

/etcに移動もしくはコピー
sudo cp /usr/local/mysql/my.cnf /etc/my.cnf
もしくは
sudo mv /usr/local/mysql/my.cnf /etc/my.cnf

7,my.cnfの編集
sudo vim /etc/my.cnf

8, 編集点
15行目
# basedir= ........
から
basedir= /usr/local/mysql

16行目
# datadir=....
から
datadir=/var/mysql/data

19行目
#socket = ....
から
socket =/tmp/mysql.sock

socket =/tmp/mysql.sock
の下に
log-error=/var/log/mysql_err
を追加

8, rootにユーザー変更
su

9, mysqlの起動スクリプトを移動もしくはコピー
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


10, 以下のコマンドでファイル編集

sudo vim /etc/init.d/mysqld

11, 以下の点を編集
46行目
basedir=

basedir=/usr/local/mysql


datadir=


datadir=/var/mysql/data


12, 以下のコマンドでmysqlの実行
sudo  ./mysqld start

13, rootユーザーに変更
su

14. 以下のコマンドmysqlの初期設定をする
/usr/local/mysql/bin/mysql_secure_installation

15,すると以下の質問がされる
----------------------- ここから -----------------
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
- Enterを入力して次へ

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
-  rootのパスワードを設定しますか?(Y: yes , n: NO)

New password:
- rootのパスワードを入力してください。

Re-enter new password:
- 確認のため再度rootのパスワードを入力してください。

Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
- anonymous ユーザーを削除しますか?(Y: Yes, n :NO)

 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
- 他サーバーからのrootログインを禁止しますか?(Y: yes , n: NO)
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- はじめからあるtestデータベースを削除しますか?(Y: yes , n: NO)

 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
- 設定を有効にするために再読み込みをします。(Y: yes , n: NO)
 ... Success!

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.
----------------------- ここまで -----------------

16, 確認
mysql -u root -p 
もしくは
/usr/local/mysql/bin/mysql -u root -p
で入力したrootのパスワードを入力してログインできれば完了
※ これでいいはず・・・

終わる

【参考サイト】
もと東大生もと社長の自由奔放ブログ Just do it now!
飛光よ、飛光よ
Kamip.jp
aiueo88の日記
でぃべろっぱーでへてむる
Akinekoの日記
ぷちWiki

Linux MySQL5.6


インストール



以前、yumを使用してのインストール
を書いたのだが
MySQLが5.6になっていたので久しぶりにソースからビルド

・環境
OS : CentOS6.3 64bit

・インストールするMySQLのバージョン
MySQL5.6.1

・やり方
[インストール]
1, すでにインストールされているMySQLの確認
sudo yum list mysql
mysql1
※ 2013/03/11 追記 間違えた
sudo yum list installed mysql*
が正解・・・(泣

2, すでにインストールされている場合は関連の物を含めて削除
sudo yum remove mysql*
mysql2


3, 作業ディレクトリに移動
cd /usr/local/src

4, 必要なツールのインストール
sudo yum install wget
※ 入っているはず
sudo yum install gcc*
※入っていないかも
sudo yum install make
※入っているはず
sudo yum install cmake
※ 絶対必要
sudo yum install ncurses-devel
※ 入っていないはず
sudo yum install bison
※ 絶対必要cmakeで引っかかる

5, MySQLからソースのダウンロード
sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/http://cdn.mysql.com/

mysql3


6, ダウンロードしたファイルを解凍
sudo tar -zxvf ./mysql-5.6.10.tar.gz

7, 解凍したファイルに入る
cd ./mysql-5.6.10

8, cmakeの実行
sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
※ 途中で失敗しやり直すことになったら
sudo rm -rf ./CMakeCache.txt
でCMakeCache.txtファイルを削除すればよい

9, makeする
sudo make
※ 結構時間かかる
------------ ここから -------------------------------
/usr/local/src/mysql-5.6.10/sql/sql_planner.cc: In member function ‘void Optimize_table_order::best_access_path(JOIN_TAB*, table_map, uint, bool, double, POSITION*, POSITION*)’:/usr/local/src/mysql-5.6.10/sql/sql_planner.cc:428: 警告: ‘loose_scan_opt.Loose_scan_opt::best_loose_scan_start_key’ may be used uninitialized in this function/usr/local/src/mysql-5.6.10/sql/sql_planner.cc:428: 警告: ‘loose_scan_opt.Loose_scan_opt::best_max_loose_keypart’ may be used uninitialized in this function/usr/local/src/mysql-5.6.10/sql/sql_planner.cc:428: 警告: ‘loose_scan_opt.Loose_scan_opt::best_loose_scan_records’ may be used uninitialized in this function/usr/local/src/mysql-5.6.10/sql/sql_planner.cc:428: 警告: ‘loose_scan_opt.Loose_scan_opt::best_loose_scan_key’ may be used uninitialized in this function/usr/local/src/mysql-5.6.10/sql/sql_planner.cc:428: 警告: ‘loose_scan_opt.Loose_scan_opt::quick_max_loose_keypart’ may be used uninitialized in this function
------------ ここまで -------------------------------
上記のエラーがでたが無視

10, make testをする
sudo make test

11, インストールする
sudo make install
※ 時間かかる

・とりあえず、ここまででインストールは完了
※ここまでで一回再起動(reboot)かけたほうがよいかも
続く

【参考サイト】
もと東大生もと社長の自由奔放ブログ Just do it now!
飛光よ、飛光よ
Kamip.jp
aiueo88の日記
でぃべろっぱーでへてむる
Akinekoの日記
ぷちWiki
LAYER8

CentOS6.3

ntp


時刻がずれないように設定をする

・環境
OS : CentOS6.3


・やり方
1, インストール
sudo yum install ntp

ntp1

2, ファイルの編集
sudo vim /etc/ntp.conf

ntp2

3, 22~24行目にある

server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

ntp3


server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
に変更する

ntp3

4, ntpの起動
sudo /etc/init.d/ntpd start
もしくは
sudo /etc/rc.d/init.d/ntpd start
で起動する


5,確認
ntpq -p  を入力して表示を確認する
※ 同期が完了するまでは10分ぐらいかかる

・同期前

ntp6


・同期後

ntp7

6, 自動起動
sudo chkconfig ntpd on
と入力して自動起動設定

7, 確認(自動起動)
sudo chkconfig --list ntpd | grep ntpd
を入力して
ntpの
2と3と4がonになっていればOK

ntp8


オマケ
chkconfig ntpd on 
にしておけばLinuxが立ち上がった時に
自動でONになっている

【参考サイト】
futuremix
適当な日々
tekitoizmの忘備録(注:ひっそり系)し~ずん2