Info

Posts from the Linux Category

sakura vps ちょっと弄ってみた。
環境:CentOS 6.3, Nginx 1.2.3

phpインストール
デフォルトでphp入ってたので削除

既存のphpをアンインストール

$ sudo yum remove php*
・・・
Remove        6 Package(s)
Installed size: 15 M
Is this ok [y/N]: y

標準のリポジトリにはphp-fpmがないため、REMIレポジトリを追加する。

$ wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo rpm -ivh remi-release-6.rpm 

必要なライブラリをインストール

$ sudo yum install php php-fpm php-devel php-cli php-xml  php-mbstring php-gd --enablerepo=remi

バージョン確認

$ php -v
PHP 5.3.16 (cli) (built: Sep  4 2012 15:23:10)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

$ php-fpm -v
PHP 5.3.16 (fpm-fcgi) (built: Sep  4 2012 15:25:35)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

php-fpm 起動

$ sudo /etc/init.d/php-fpm start

nginx confファイル編集

location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}

php-mysql インストール

$ sudo yum install php-mysql --enablerepo=remi

phpinfoで確認してみる

<?php
phpinfo();
?>
Advertisements

前回 MacにGitをインストールしたので、今回は github を使ってみる。

1. アカウント登録
https://github.com/plans で無料アカウント登録する。
2. リポジトリを作成
https://github.com/repositories/new でリポジトリを新規作成する。
3. リポジトリにコミットしてみる

$ git config --global user.name "******"
$ git config --global user.email ******@gmail.com
$ cd ~/Dropbox/Developer/HTML5/
$ git init
$ git add *
$ git commit -m 'first commit'
$ git remote add origin git@github.com:dongrikim/HTML5.git
$ git push origin master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
$ 

エラーだ!失敗した。

4. publickey 作成

$ ssh-keygen -t rsa -C "******@gmail.com"
$ less ~/.ssh/id_rsa.pub

コピーする。
https://github.com/account SSH公開鍵を選択して新規作成する。
キーのところにコピーしたやつを貼り付ける。
もう一回pushしてみる。

$ git push origin master

今度は成功!

プラウザから確認。

1. http://kernel.org/pub/software/scm/git/ から最新版をダウンロード。(git-1.7.3.tar.gz)
2. 解凍、インストール。

$ tar xvfz git-1.7.3.tar.gz
$ cd git-1.7.3
$ ./configure
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install
$ git --version
git version 1.7.3

MacPortsを使ってインストールする場合は以下のようになる。

$ sudo port install git-core +doc +svn

Djangoアプリケーション設定メモ。

1. python バージョン確認
$ python -V
Python 2.5.1

2. djangoインストール
http://www.djangoproject.com/download/
Django-1.1.1.tar.gz ダウンロード

# tar xzvf Django-1.1.1.tar.gz
# cd Django-1.1.1
# sudo python setup.py install
パスワード:
running install
error: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory)

3. python-develインストール
# yum install python-devel
# sudo python setup.py install

4. Django確認
$ python
Python 2.5.1 (r251:54863, Jul 10 2008, 17:24:48)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
>>> django.VERSION
(1, 1, 1, ‘final’, 0)
>>>

5. Apache設定

5.1 httpd.conf か python.conf にmod_pythonをロードさせる
LoadModule python_module modules/mod_python.so

5.2 相対パスの場合
<Location “/myapp/”>
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath “[‘{DocumentRoot}/myapp’,'{DocumentRoot}’ ] + sys.path”
SetEnv DJANGO_SETTINGS_MODULE dxshop.settings
PythonOption django.root /myapp
#PythonDebug On
</Location>

5.3 サブドメインの場合
<VirtualHost *:80>
ServerName myapp.gedero.com
DocumentRoot {path}/myapp
SetEnv DJANGO_SETTINGS_MODULE myapp.settings
SetHandler mod_python
PythonHandler django.core.handlers.modpython
PythonPath “[‘{path}/myapp’,'{path}’] + sys.path”
<Location “/media”>
SetHandler None
</Location>
</VirtualHost>

5.4 django アドミンmedia設定
ln -s /usr/lib/python2.5/site-packages/django/contrib/admin/media media

普段何気なくつかってるTeraTermですが、マクロというものがあります。TeraTermヘルプを見れば詳しく書いてあります。FTPもコマンドを外部ファイルに待たせば一覧の処理を自動化してくれます。今日はちょっと実際に作ってたものをサンプルとして掲載します。
処理の流れは以下のようになります。

  1. SSHでWindowsクライアントからサーバーAに接続して、Apacheログをftpから取得できる場所にコピー
  2. ftpでサーバーAに接続して、ApacheログファイルをWindowsクライアントにダウンロード
  3. SSHで再びサーバーAに接続して、ダウンロードしたApacheログファイルを削除
  4. ftpでサーバーBに接続して、Apacheログファイルを特定のディレウトリにアップロード
  5. Windowsクライアントのログファイル削除
  6. SSHでサーバーBに接続して、Apacheログ解析プログラムを実行

1. batファイル作成
apache_log.bat

“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\copylog.ttl”
ftp -s:”C:\apache\getlog.ftp”
“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\deletelog.ttl”
ftp -s:”C:\apache\putlog.ftp”
cd apache_log
del /Q *.apache.gz
“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\update.ttl”

2. ttlファイル作成
copylog.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘bash-2.04$ ‘
sendln ‘copylog-ctl’ ← シェルで作成したログコピースクリプト
wait ‘bash-2.04$ ‘
sendln ‘exit’

deletelog.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘bash-2.04$ ‘
sendln ‘rm /home/tomcat/htdocs/apache_log/*’
wait ‘bash-2.04$ ‘
sendln ‘exit’

update.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘[localhost@test ~]% ‘
sendln ‘/usr/local/apache/htdocs/cgi-bin/awstats/update.pl’
wait ‘[localhost@test ~]% ‘
sendln ‘exit’

3. ftpファイル作成
getlog.ftp

open 192.168.0.2
{user}
{pw}
binary
prompt
cd /apache_log/
lcd apache_log
mget *
quit

putlog.ftp

open 192.168.0.3
{user}
{pw}
binary
prompt
cd /awstats/apache_log
put apache_log/*.apache.gz
quit

ここまで読んでたらある疑問が出てくると思います、なぜ 192.168.0.2 と 192.168.0.3 を直接やり取りしないかと?
それは事情によりお互いに直接接続することはできず、一旦Windowsを経由しないといけなかったんです。

trac_banner1.こちらからTracダウンロード

http://www.i-act.co.jp/project/products/products.html

2.python バージョン確認

[root@lion Trac-0.11.4.ja1]# python -V
Python 2.5.1
[root@lion Trac-0.11.4.ja1]#

3.インストール

[king@lion Trac-0.11.4.ja1]$ ./setup.py
Traceback (most recent call last):
File “./setup.py”, line 15, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools

エラー発生
4.setuptoolsをインストール

[root@lion Trac-0.11.4.ja1]# wget http://peak.telecommunity.com/dist/ez_setup.py
[root@lion Trac-0.11.4.ja1]# python ez_setup.py
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg
error: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory)
[root@lion Trac-0.11.4.ja1]#

エラー発生

5.python-develをインストール

[root@lion Trac-0.11.4.ja1]# yum -y install python-devel

6.setuptoolsをインストール再実行

[root@lion Trac-0.11.4.ja1]# python ez_setup.py
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Copying setuptools-0.6c9-py2.5.egg to /usr/lib/python2.5/site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.5 script to /usr/bin

Installed /usr/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9
[root@lion Trac-0.11.4.ja1]#

7.trac インストール再実行

[root@lion Trac-0.11.4.ja1]# ./setup.py install

8.trac プロジェクト作成

[king@lion www]$ trac-admin trac initenv
Creating a new Trac environment at /var/www/trac

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

Please enter the name of your project.
This name will be used in page titles and descriptions.

Project Name [My Project]> trac

Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).

Database connection string [sqlite:db/trac.db]>

Please specify the type of version control system,
By default, it will be svn.

If you don’t want to use Trac with version control integration,
choose the default here and don’t specify a repository directory.
in the next question.

Repository type [svn]>

Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.

Path to repository [/path/to/repos]> /var/svn/yuansu

Creating and Initializing Project
Installing default wiki pages
TracReports imported from /usr/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/wiki/default-pages/TracReports
・・・・・・
TracSupport imported from /usr/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/wiki/default-pages/TracSupport
WikiDeletePage imported from /usr/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/wiki/default-pages/WikiDeletePage
SandBox imported from /usr/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/wiki/default-pages/SandBox
TracWiki imported from /usr/lib/python2.5/site-packages/Trac-0.11.4.ja1-py2.5.egg/trac/wiki/default-pages/TracWiki
Indexing repository
[114]
——————————————————————————————————-
Project environment for ‘trac’ created.

You may now configure the environment by editing the file:

/var/www/trac/conf/trac.ini

If you’d like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

tracd —port 8000 /var/www/trac

Then point your browser to http://localhost:8000/trac.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

http://trac.edgewall.org/

Congratulations!

[king@lion www]$

9.httpd.conf 設定

Alias /trac “/var/www/html/trac/”
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/www/html/trac
PythonOption TracUriRoot /trac
</Location>
<Location /trac/login>
AuthType Basic
AuthName “Gedero Trac”
AuthUserFile /var/www/html/trac/auth/.htpasswd
Require valid-user
</Location>

10.mod_python インストール

[root@lion html]# yum -y install mod_python

以上で、完了

やっと本題に戻った感じ。ここのブログを始めた本意はGeronimoを書くことでしたが、知らずうちにSmartPhoneがメインになってまし た。本題に戻ろう。Geronimoを始めようとしてもまず何をすればいいの?GBeanの研究?難しい。頭中でたまにはEJBも混乱してる状態では ちょっと早いかな~

ネットで検索してみたらどうもGeronimoの情報はIBMが独占した感じ。
とりあえず、動かしてみる。環境構築から。Windows、Ecliseプラグインなどの情報はCensworksに載ってます。

Linux環境で動かしてみたい、ということで弄ってみました。基本的にはWindows環境と同じで難しいことはありませんでした。

まずはLinux用Geronimoをダウンロードする。
http://geronimo.apache.org/downloads.html
サーブレットコンテナーとして、JettyとTomcatのバージョンがありますが、Tomcatのほうが使ったこともあるし、親しい感じがしてgeronimo-tomcat-j2ee-1.1.1.tar.gzをダウンロードしました。

次はサーバーにアップロード。
ダウンロードされたファイル(geronimo-tomcat-j2ee-1.1.1.tar.gz)をサーバーにアップロードします。(適当な場所、~/に)。
gzファイルを解凍する。

$ tar xvzf geronimo-tomcat-j2ee-1.1.1.tar.gz

次々はサーバーを起動してみる。

$ cd geronimo-1.1.1/
$ java -jar ./bin/server.jar

ガ~ン!一発でエラーが出ちまった(エラー情報コピー忘れ)。Javaバージョンが間違ったみたい、JDK確認してみると

$ ./java -version
java version “1.4.2”
gij (GNU libgcj) version 4.0.0 20050519 (Red Hat 4.0.0-8)

Windows環境と同じで動くはずだが...
しょうがないのでJDKのバージョンを最新にしてチャレンジ。
FedoraでJava環境構築はこちら

Javaバージョンを確認してもう一回。

$ java -version
java version “1.5.0_09”
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)$ java -jar ./bin/server.jar

Geronimo Application Server started

やった~!

アクセスしてみる。
http://domain:8080/

Windowsと違ってWeb上に公開してるので、とりあえず管理者のパスワードを変えよう。
メニュー -> Security -> Console Realm
systemをのパスワードを変更

あるいは、systemはデフォルト管理者のユーザ名なので、新しい管理者ユーザを作って、systemを管理者から外す。

余談。リモートアクセスしてサーバーを起動したのですが、Ctrl+Cで綺麗にシャットダウンされないみたい。「再起動しても既に起動されてるよ」 とエラー。コンソール画面からシャットダウンしようとしても、Loading 中のまま。最後の手でJavaプロセスを強制終了で解決。