Hatena::ブログ(Diary)

モノヅクリブログ

2012-06-04 SSHフォワーディング

SSHフォワーディング

特定のIPホストからでしかSSHやsftp,ftpの許可をしていない。

そんな時に活躍するのがSSHフォワーディング。回線もセキュアになります。

$ ssh -L <ローカルポート番号>:<転送先ホスト>:<転送先ポート番号> <ユーザ名>@<リモートホスト>

例えば

$ ssh -L 2222:you_want_to_connect.com:22 yourname@ssh_host.com

としてsshに接続して127.0.0.1(localhost)の2222ポートに対してyou_want_to_connect.com:22に接続するように接続してやります。

はじめは分かりにくいですが分かれば簡単。いつでも一行書けばセキュアな回線で接続が可能になりますね。

2012-06-03 symfony1.4からmemcachedを使う方法 - 基本編

symfony1.4からmemcachedを使う方法 - 基本編


f:id:Kmusiclife:20120530010822p:image


symfonymemcachedを利用する方法を簡単にまとめました。

nginx + php5でmemcachedを利用するという方法です。

http://labs.unoh.net/2010/05/symfonydoctrine.html

に詳しくあるのですが更に詳細はこちらを参照ください。

nginx, php-fastcgiでphp5,symfony1.4を動かせていることを前提とします。

http://kmusiclife.hatenablog.com/entry/20111105/1320467309

http://kmusiclife.hatenablog.com/entry/20120509/1336538654

などを参考にしてください。

必要なモジュールなどをインストールします。

# apt-get install memcached
# apt-get install php5-memcache
# apt-get install php5-memcached
# /etc/init.d/php-fastcgi restart
# /etc/init.d/nginx restart

config/ProjectConfiguration.class.php


  public function configureDoctrine(Doctrine_Manager $manager)
  {
	$servers = array(
		array(
		'host' => '127.0.0.1',
		'port' => 11211,
		'persistent' => true),
	);
	$cacheDriver = new Doctrine_Cache_Memcache(array(
		'servers' => $servers,
		'compression' => false)
	);
    $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE, $cacheDriver);
    $manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE_LIFESPAN, 60); // 結果キャッシュのデフォルトの存続秒数 sec
    $manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver);
    $manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE_LIFESPAN, 60); // クエリーキャッシュのデフォルトの存続秒数 sec

  }

Doctrineからの利用

$this->table_names = Doctrine_Core::getTable('table_name')
    ->createQuery('a')
    ->where('a.id =? ', $id)
    ->useResultCache(true)
    ->execute();

2012-05-10 macportでnginx/php5.4/phpmyadminを動かすまでザザーッと

macportでnginx/php5.4/phpmyadminを動かすまでザザーッと



f:id:Kmusiclife:20120511043658p:image


php5.4のインストール

$ sudo port install php54
$ sudo port install php54-cgi
$ sudo port install php54-mbstring
$ sudo port install php54-curl
$ sudo port install php54-mcrypt
$ sudo port install php54-mysql

うちで出たエラーは下記の通り。対処も同時に。

エラー対処:

$ sudo port install php54
Error: Target org.macports.activate returned: Image error: /opt/local/bin/captoinfo is being used by the active ncursesw port.  Please deactivate this port first, or use 'port -f activate ncurses' to force the activation.
$ sudo port -f uninstall ncursesw

エラー対処:

$ sudo port install php54
Log for perl5 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_perl5/perl5/main.log
$ sudo port installed perl
$ sudo port -f perl5 @5.8.9_0
$ sudo port -f perl5 @5.12.3_1+perl5_12
$ sudo port -f perl5.8 @5.8.9_3
$ sudo port -f perl5.12 @5.12.4_0

spawn-fcgi/nginxのインストール

$ sudo port install nginx
$ sudo port install spawn-fcgi

mysql5のインストール

$ sudo port install mysql5-server
$ sudo /opt/local/bin/mysql_install_db5

普通に起動するとエラーが出るので下記のように設定変更。

_mysqlの権限を与える必要があります。

$ sudo cd /opt/local/var/db/mysql5
$ sudo chown _mysql:_mysql mysql
$ sudo /opt/local/lib/mysql5/bin/mysqld_safe & # mysql5起動

mysql5の起動とパスワードの設定

$ sudo /opt/local/lib/mysql5/bin/mysqld_safe &
$ sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'

spawn-cgiを使ってphp-cgiの待ち構え設定

$ sudo vim /bin/php-fastcgi-start

ファイルphp-fastcgi-startの内容:

#! /bin/bash
/opt/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 3 -f /opt/local/bin/php-cgi54
$ sudo /bin/php-fastcgi-start

php.initの設定

$ sudo cd /opt/local/etc/php54
$ sudo cp php.ini-development php.ini
$ sudo vim /opt/local/etc/php54/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
date.timezone = Asia/Tokyo

f:id:Kmusiclife:20120511143056g:image


nginxの設定

$ sudo cd /opt/local/etc/nginx
$ sudo mv nginx.conf.example nginx.conf
$ sudo mv fastcgi_params.example fastcgi_params
$ sudo mv scgi_params.example scgi_params
$ sudo mv mime.types.example mime.types
$ sudo mv uwsgi_params.example uwsgi_params
$ sudo vim /opt/local/etc/nginx/nginx.conf

ファイルnginx.confの内容:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}
http {
    include /opt/local/etc/nginx/mime.types;
    sendfile on;
    keepalive_timeout  65;
    #gzip  on;
    include /opt/local/etc/nginx/sites-enabled/*;
}
$ sudo mkdir /opt/local/etc/nginx/sites-enabled
$ sudo vim /opt/local/etc/nginx/sites-enabled/localhost

ファイルlocalhostの内容:

server {

    listen 80;
    server_name localhost;
    access_log /opt/local/var/log/nginx/localhost.log;
    error_log /opt/local/var/log/nginx/localhost.error.log;
    root /opt/local/var/www;
    index index.php;

    location /phpmyadmin {
        alias /opt/local/share/phpmyadmin;
        index index.php;
    }
    location ~ /phpmyadmin/.*\.php$ {
        include /opt/local/etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /opt/local/share/$uri;
    }
    location ~ ^/.+\.php(/.*)?$ {
        set $script $uri;
        set $path_info "";
        if ($uri ~ "^(.+\.php)(/.+)") {
          set $script $1;
          set $path_info $2;
        }
        fastcgi_pass 127.0.0.1:9000;
        include /opt/local/etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME $script;
        fastcgi_param SCRIPT_FILENAME /opt/local/var/www$script;
        fastcgi_param PATH_INFO $path_info;
    }

}

nginx起動

$ sudo /opt/local/sbin/nginx

f:id:Kmusiclife:20120511144245j:image


phpmyadminの準備

visit:

http://www.phpmyadmin.net/home_page/downloads.php

$ sudo cd /opt/local/share
$ sudo wget http://downloadhost/phpMyAdmin-3.5.1-all-languages.tar.gz

$ sudo tar zxvf phpMyAdmin-3.5.1-all-languages.tar.gz
$ sudo mv phpMyAdmin-3.5.1-all-languages phpmyadmin

$ sudo mv config.sample.inc.php config.inc.php
$ sudo vim config.inc.php

メモ:nginxやphp-cgi, mysqlの落とし方など

$ sudo nginx -s reload
$ sudo killall php-cgi54
$ sudo /opt/local/bin/mysqladmin5 -u root shutdown

2012-05-09 nginxの各アプリケーション設定(symfony1.4, phpmyadmin)

nginxの各アプリケーション設定(symfony1.4, phpmyadmin)


f:id:Kmusiclife:20120511143056g:image


phpmyadmin:

location /phpmyadmin {
     alias /usr/share/phpmyadmin/;
     index index.php;
 }
 location ~ ^/phpmyadmin/.+\.php$ {
     root /usr/share/phpmyadmin/;
     rewrite /phpmyadmin/(.*\.php?) /$1 break;
     include /etc/nginx/fastcgi_params;
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
 }

symfony1.4:

nginx0.9x

location / {
    if (-f $request_filename) {
        expires max;
        break;
    }
    if ($request_filename !~ "\.(js|htc|ico|gif|jpg|png|css)$") {
        rewrite ^(.*) /index.php last;
    }
}
location /sf/ {
    root /usr/share/php/data/symfony/web;
}
location ~ \.php($|/) {
    set $script $uri;
    set $path_info "";
    if ($uri ~ "^(.+\.php)(/.+)") {
      set $script $1;
      set $path_info $2;
    }
    fastcgi_pass 127.0.0.1:9000;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME  /var/www/symfony1.4/web$script;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param SCRIPT_NAME $script;
}

nginx1.x

location /sf/ {
    root /usr/share/php/data/symfony/web;
}
location / {
    root   /var/www/symfony1.4/web/;
    index  index.php;
    if (-f $request_filename) {
        expires max;
        break;
    }
    if ($request_filename !~ "\.(js|htc|ico|gif|jpg|png|css)$") {
        rewrite ^(.*) /index.php last;
    }
}
location ~ \.php($|/) {
    set  $script     $uri;
    set  $path_info  "";
    if ($uri ~ "^(.+\.php)(/.+)") {
        set  $script     $1;
        set  $path_info  $2;
    }
    fastcgi_pass   127.0.0.1:9000;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_NAME $script;
    fastcgi_param SCRIPT_FILENAME /var/www/symfony1.4/web$script;
    fastcgi_param PATH_INFO $path_info;
}

参考:

http://d.hatena.ne.jp/Kmusiclife/20111105/1320467309

2012-03-19 nginx + rapid-ssl導入 - わかりやすいよ

nginx + rapid-ssl導入 - わかりやすいよ


f:id:Kmusiclife:20120511143207g:image


nginx + rapid-sslの導入方法を書きます。SSLって何かとめんどくさいイメージありますが、ファイルがどれがどれかわからなくなるから問題なのです。仕組みがわかっていてもファイルがどれがどれかわからなくなります。この時点でめんどくさいですね。でも簡単になるように説明します。

なんでめんどくさい書き方したブログしかないんだよ(・∀・) という不満があったので。


1.Rapid-SSLで暗号鍵を作成


http://www.rapid-ssl.jp/

でSSLを取得します。年間で2,600円ですね。

https://www.rapid-ssl.jp/tools/makePkeyCsr2048.php

ダイレクトアクセスできない場合はトップページ> 新規お申し込み > お申込みフォーム > CSR作成ツールより

で2048ビットの秘密鍵の作成を行います。このツールを使ったほうが楽で確実です。

- 秘密鍵のパスワード
- コモンネーム(Common Name) [ 例) ssl.yourdomain.com ]
- 正式英語組織名 [ 例) Hentai, Inc. ]
- 部門名 [ 例) Design ]
- 市区町村名 [ 例) Kanazawa-shi ]
- 都道府県名 [ 例) Ishikawa ]

コモンネームはSSL接続の際のURL(FQDN)になります。ここ注意ね。

・秘密鍵 (cert.key ※1)

-----BEGIN RSA PRIVATE KEY-----
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----END RSA PRIVATE KEY-----

・CSR (cert.csr)

-----BEGIN CERTIFICATE REQUEST-----
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-----END CERTIFICATE REQUEST-----

の2つが表示されます。

cert.key, cert.csrとしてファイルに保存してください。

/etc/nginx/ssl に私は保存しました。

f:id:Kmusiclife:20120319010033p:image



2.Rapid-SSLで登録支払い・メールの確認


https://www.rapid-ssl.jp/ssl/orderForm.php

のオーダーフォームより必要事項を入力。

CSRの貼り付けの項目では上記のcert.csrの内容を貼り付け。


ショッピングの感覚でクレジット決済まで進みます。

承認メールアドレスという項目は postmaster@yourhost.com などでメールを受け取る必要があります。こちらは怠らずおこなってください。


IDがメールで届き、メールが本当に届いているかの確認を行います。

https://www.rapid-ssl.jp/rapidssl-support/ssl-support.htm

でステータスの確認を行います。


メールに書かれているURLをクリックし

RapidSSLのサイトより認証作業を行います。


f:id:Kmusiclife:20120507191032p:image

のような感じになります。


ステータス = 証明書発行完了

になるまでがんばってください。

f:id:Kmusiclife:20120507191033p:image



3.メールの確認、暗号キーのメールの受取り

【通知】 SSL サーバ証明書発行完了のお知らせ

というメールが届くはずです。私はこのようなタイトルでした。

内容は

SSLサーバ証明書:

-----BEGIN CERTIFICATE-----
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-----END CERTIFICATE-----

中間証明書:

-----BEGIN CERTIFICATE-----
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
-----END CERTIFICATE-----

の2つです。確認できればOKです。



4.サーバ証明書+中間証明書を合体 (・∀・)

nginxではメールで届いた2つの証明書:SSLサーバ証明書、中間証明書をひとつにまとめたファイルにします。

合体証明書 ( cert.pem ※2 )

-----BEGIN CERTIFICATE-----
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
-----END CERTIFICATE-----

としてcert.pemを/etc/nginx/sslに保存。

ここすごく重要なので何度も読みなおすように。



5.ファイルの確認

cert.key ※1とcert.pem ※2がしっかりと手元にあるか確認してください。

cert.key ※1= Rapid-ssl登録時にWEBサイトで作成したものです(秘密鍵)。
cert.pem ※2= メールで送られてきた証明書を2つ合体させたものです(合体証明書)。

この2つがあればnginxのSSLサーバは動きます。

本記事では下記に保存したとして進めてあります。

/etc/nginx/ssl/cert.key
/etc/nginx/ssl/cert.pem


6.サーバ設定

nginxのconfファイルを書き換えます。

server {

    listen 443;
    server_name yourdomain.com;
    ssl on;

    # 秘密鍵 (cert.key ※1)
    ssl_certificate_key  /etc/nginx/ssl/cert.key;

    # 合体証明書 (cert.pem ※2)
    ssl_certificate      /etc/nginx/ssl/cert.pem;

    ssl_session_timeout  5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;

    access_log /var/log/nginx/ssl_yourdomain.com.log;
    error_log /var/log/nginx/ssl_yourdomain.com.error.log;
    root /var/www/yourdomain.com;
    index index.php;

}

nginx -tコマンドなどを入力すると

# nginx -t
Enter PEM pass phrase:
2012/03/19 00:00:00 [info] 00000#0: the configuration file /etc/nginx/nginx.conf syntax is ok
2012/03/19 00:00:00 [info] 00000#0: the configuration file /etc/nginx/nginx.conf was tested successfully

パスワード入力が求められます。Rapid-ssl登録時のものを入力しましょう。

エラーがなければあとは普通に再起動です。



その他:

symfony1.4をnginxでSSL化するときのnginx.confファイル例です

fastcgi_param HTTPS on は見落としがちですので注意してください。

server {

    listen 443;
    server_name yourdomain.com;
    ssl on;
    # 秘密鍵 (cert.key ※1)
    ssl_certificate_key  /etc/nginx/ssl/cert.key;
    # 合体証明書 (cert.pem ※2)
    ssl_certificate      /etc/nginx/ssl/cert.pem;

    ssl_session_timeout  5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;

    access_log /var/log/nginx/ssl_yourdomain.com.log;
    error_log /var/log/nginx/ssl_yourdomain.com.error.log;
    root /var/www/yourdomain.com;
    index index.php;

    location / {
        if (-f $request_filename) {
            expires max;
            break;
        }
        if ($request_filename !~ "\.(js|htc|ico|gif|jpg|png|css)$") {
            rewrite ^(.*) /index.php last;
        }
    }
    location /sf/ {
        root /usr/share/php/data/symfony/web;
    }
    location ~ \.php($|/) {
        set $script $uri;
        set $path_info "";
        if ($uri ~ "^(.+\.php)(/.+)") {
          set $script $1;
          set $path_info $2;
        }
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/fastcgi_params;
        fastcgi_param HTTPS on; # PHPで_SERVER[HTTPS]のため
        fastcgi_param SCRIPT_FILENAME /var/www/yourdmain.com/web$script;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_NAME $script;
    }

}

nginx起動時に求められるパスワードを自動化するには?:

# cp cert.key cert.key.org
# openssl rsa -in cert.key.org -out cert.key

http://webmasters.stackexchange.com/questions/1247/can-i-skip-the-pem-pass-phrase-question-when-i-restart-the-webserver

参考になる:

http://dogmap.jp/2011/05/10/nginx-ssl/

2012-01-22 Symfony2の簡単チュートリアル(環境整備込み)

Symfony2の簡単チュートリアル(環境整備込み)


f:id:Kmusiclife:20120511143411g:image


まだまだ現役のSymfony1.4.6ですがそろそろサポートも終わり、Symfony2が一般的になる日も近いような気がしてきているこのごろです。Symfony2はSymfony1.4.6と互換性がないといっていいでしょう。1.4.6で利用しているデータベースをSymfony2でモデルと生成して利用するというのが今後の流れになるでしょう。早めにSymfony2に触れておきましょう。

http://symfony.com/

色々とチュートリアルがあるけれども意外と動かなかったり。とりあえずここで書いてあるものは私の環境ではしっかりと動作させたもののみ掲載しています。Debian6.0.3 さくらVPSの上でVPN経由で動かしました。


Symfony2の環境整備

symfony2はPHP5.3.xで動作します。Debian6 SqueezeではPHP5.3が入ります。

Debian5 Lenny等の場合は

http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.ja.html

などを参考になりますが、Squeezeでのmysqlのバージョンアップで多くが何故かトラブります。

Squeezeではnginxのバージョンも上がりますのでSqueezeへのバージョンアップをお勧めします。

http://d.hatena.ne.jp/Kmusiclife/20120118/1326871846


nginxでsymfony2を動作させます。今のところ下記の設定で動作しています。

app.phpやapp_dev.phpのコントロールもこの辺でできます。

location / {
    root /path/symfony2/web;
    index index.html index.htm index.php;
}
location ~ \.php|\.html$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /path/symfony2/web$fastcgi_script_name;
}
location ~ \.cgi$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:8999;
    fastcgi_index index.cgi;
    fastcgi_param SCRIPT_FILENAME /path/symfony2/web$fastcgi_script_name;
}

なお、nginxなどの細かい設定は

http://d.hatena.ne.jp/Kmusiclife/searchdiary?word=%2A%5Bnginx%5D

を参考にしてください。

その他、gitなど必要となるソフトも幾つかありますのでその都度確認してください。


Symfony2の簡単チュートリアル

$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.9.tgz -O Symfony_Standard_Vendors_2.0.9.tgz
$ tar zxvf Symfony_Standard_Vendors_2.0.9.tgz
$ mv Symfony symfony2
$ cd symfony2

download完了です

$ php app/check.php # 問題がなければ次へ
$ php bin/vendors install # vendorの場合は --reinstall を追加

localhost以外からアクセスする場合は

$ vim web/app_dev.php
/* コメントアウトします
if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
    '127.0.0.1',
    '::1',
))) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
*/

ブラウザよりアクセスします。

http://hostname/app_dev.php

にアクセスします。

Whoops, looks like something went wrong.

などのエラーが出た場合はcacheのパーミッションに問題があることが多いです。

$ chmod -R 777 app/cache app/logs

でcacheのパーミッションを与えます。

welcomeのページが表示されればOKです。

http://hostname/app_dev.php/_configurator

よりデータベースなどの基本設定を行います。

おそらく書き込みエラーが出るので

$ chmod -R 777 app/config/parameters.ini

再度更新してリクエストを送り直せば更新されます。

Doctrine(model)を作成します。

$ php app/console doctrine:generate:entity --entity=AcmeDemoBundle:Product --fields="name:string(255) price:float description:text" --format=yml

を行うことによって

src/Acme/DemoBundle/Entity/Product.php
src/Acme/DemoBundle/Resources/config/doctrine/Product.orm.yml

の2つのファイルが作られます。 doctrine:generate:entityで--format=ymlを付けないとProduct.orm.ymlファイルが作成されませんので注意です。

$ php app/console doctrine:database:create
$ php app/console doctrine:schema:update --force

でデータベースにテーブルを作りモデルと同期させます。

// src/Acme/DemoBundle/Controller/DemoController.phpなどで
use Acme\DemoBundle\Entity\Product;

public function indexAction()
{

    $product = new Product();
    $product->setName('Foo bar');
    $product->setPrice(100.00);
    $product->setDescription('This is test description.');
    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($product);
    $em->flush();
    
    echo $product->getId();
}

とテストコードが動けば問題ないでしょう。

http://hostname/app_dev.php/demo/

などでアクセスできると思います(環境によって異なります)。

この辺のはなしは

http://docs.symfony.gr.jp/symfony2/book/doctrine.html

にもあります。ただ、私はこのチュートリアルではしっかりと動作しませんでした。

2011-11-07 nginxでperl/CGIを利用する方法です on debian6

nginxでperl/CGIを利用する方法 on debian6

f:id:Kmusiclife:20120511143056g:image

下記環境はdebian6です。debian5ではaptでspawn-fcgi, fcgiwrapパッケージは提供されていないのでソースなどからインストール必要があります。

nginxでperl/CGIを動かしました。nginxではcgiを動かす構造そのものは持っていません。phpもphp-fastcgi使います。CGIを動かすためにfastcgi wrapperを使います。

動かし方には2つの方法があります。

1つはUNIX Socketを使う方法、もう一つはTCP Socketを使う方法です。php-fastcgiをTCP Socketで動かしているのであればTCP Socketを使ったほうが管理しやすいかもしれません。

nginxはすでにインストールされているものとします。spawn-fcgiもすでにインストールされていれば下記のapt-get install spawn-fcgiを省いてください。

spawn-fcgiはdebian6でパッケージとして提供されています。debian5ではソースからのインストールが必要です。 http://redmine.lighttpd.net/projects/spawn-fcgi よりspawn-fcgiをインストールしてください。fcgiwrapも提供されていません。fcgiwrapの代わりにfastcgi-wrapper.plを使います。debian5に関しては別途記述します。

# apt-get update
# apt-get upgrade
# apt-get install fcgiwrap spawn-fcgi

fcgiwrapはnginxからのリクエストをcgiとして実行するラッパーです。

1.UNIX Socketを使ってCGIを実行する方法

/var/www/defaultをWEBサーバのrootとして設定しています。

nginx.conf excerpt:

http {
     include /etc/nginx/mime.types;
     sendfile on;
     keepalive_timeout  65;
     tcp_nodelay on;
     gzip on;
     server {
         listen 80 default;
         server_name server_name_;
         access_log /var/log/nginx/default.log;
         error_log /var/log/nginx/default.error.log;
         location / {
             root /var/www/default;
             index index.html index.htm index.php;
         }
         location ~ \.cgi$ {
             include /etc/nginx/fastcgi_params;
             fastcgi_pass unix:/var/run/fcgiwrap.socket;
             fastcgi_index index.cgi;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         }
     }
}

/etc/init.d/fcgiwrap excerpt:

# FCGI_APP Variables
FCGI_CHILDREN="1"
FCGI_SOCKET="/var/run/$NAME.socket"
FCGI_USER="www-data"
FCGI_GROUP="www-data"

2.TCP Socketを使ってCGIを実行する方法

/var/www/defaultをWEBサーバのrootとして設定しています。

nginx.conf excerpt:

http {
     include /etc/nginx/mime.types;
     sendfile on;
     keepalive_timeout  65;
     tcp_nodelay on;
     gzip on;
     server {
         listen 80 default;
         server_name server_name_;
         access_log /var/log/nginx/default.log;
         error_log /var/log/nginx/default.error.log;
         location / {
             root /var/www/default;
             index index.html index.htm index.php;
         }
         location ~ \.cgi$ {
             include /etc/nginx/fastcgi_params;
             fastcgi_pass 127.0.0.1:8999; # php-fastcgiは9000を使うことが多いみたいね
             fastcgi_index index.cgi;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         }
     }
}

/etc/init.d/fcgiwrap excerpt:

# FCGI_APP Variables
FCGI_CHILDREN="1"
FCGI_PORT="8999"
FCGI_ADDR="127.0.0.1"
FCGI_USER="www-data"
FCGI_GROUP="www-data"

最後にnginxとfcgiwrapの(再)起動を忘れずに

# /etc/init.d/fcgiwrap restart
# /etc/init.d/nginx restart

debian5などfcgiwrapがパッケージとして利用しない場合(TCP Socket)

fastcgi-wrapper.plを使って8999ポートでTCP Socket接続します。

http://www.ruby-forum.com/topic/145858

よりfastcgi-wrapper.plをダウンロードしています。

ライセンスが明確になっていないのでここでは公開していません。

# cd /usr/bin
# wget http://www.ruby-forum.com/attachment/1583/fastcgi-wrapper.pl
# chmod 755 /usr/bin/fastcgi-wrapper.pl
# apt-get install libcgi-fast-perl

fastcgi-wrapper.plのコメントアウトをつけ変える。

$socket = FCGI::OpenSocket( "127.0.0.1:8999", 10 ); #use IP sockets
# $socket = FCGI::OpenSocket( "/var/run/nginx/perl_cgi-dispatch.sock", 10 );

fastcgi-wrapper起動スクリプト:

# vim /etc/init.d/fastcgi-wrapper

fastcgi-wrapperの編集:

#!/bin/bash

### BEGIN INIT INFO
# Provides:          fastcgi-wrap
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the fastcgi-wrap
# Description:       starts the fastcgi-wrap
### END INIT INFO

TARGET_SCRIPT=/usr/bin/fastcgi-wrapper.pl
FASTCGI_USER=www-data
RETVAL=0
PIDFILE=/var/run/fastcgi-wrapper.pid
case "$1" in
  start)
    su - $FASTCGI_USER -c $TARGET_SCRIPT
    pgrep -u $FASTCGI_USER fastcgi-wrapper > $PIDFILE
    RETVAL=$?
  ;;
  stop)
    killall -9 fastcgi-wrapper.pl
    echo '' > $PIDFILE
    RETVAL=$?
  ;;
  restart)
    killall -9 fastcgi-wrapper.pl
    echo '' > $PIDFILE
    su - $FASTCGI_USER -c $TARGET_SCRIPT
    pgrep -u $FASTCGI_USER fastcgi-wrapper > $PIDFILE
    RETVAL=$?
  ;;
  *)
    echo "Usage: fastcgi-wrapper {start|stop|restart}"
    exit 1
  ;;
esac
exit $RETVAL
console output
# chmod 755 /etc/init.d/fastcgi-wrapper
# update-rc.d fastcgi-wrapper defaults

nginx.confはTCP Socketと同じなので8999ポートでpassしてやってください。


参考:

http://wiki.nginx.org/Fcgiwrap

http://wiki.nginx.org/SimpleCGI

http://library.linode.com/web-servers/nginx/perl-fastcgi/ubuntu-11.04-natty?format=print

2011-11-05 nginx x fastcgiでphp5を動かす on debian

nginxでphp5を利用する方法です。apache2からようやく乗り換えました。

fastcgiが一番ややこしかったのでメモしておきます。下記環境はdebian5です。

環境はさくらVPS上のdebianです。

1.nginx, php5関係のインストール

# apt-get update
# apt-get upgrade
# apt-get install nginx php5-cli php5-cgi php5-gd spawn-fcgi

debian5ではspawn-fcgiaptから入れられません。

http://redmine.lighttpd.net/projects/spawn-fcgi

よりソースからspawn-fcgiをインストールしてください。

# wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
# tar zxvf spawn-fcgi-1.6.3.tar.gz
# cd spawn-fcgi-1.6.3
# ./configure
# make
# make install

2.php-fastcgiの作成と編集(spawn-fcgiのwrapper)

# vim /usr/bin/php-fastcgi
#! /bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi
# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi
# chmod 755 /usr/bin/php-fastcgi

ソースからspawn-fcgiを入れた場合のパスは/usr/local/bin/spawn-fcgiになります。

またphp5-cgiが存在しなくともエラーは出ませんので注意してください。

3./etc/init.d/php-fastcgiを作成

2で設定したようにfastcgiはデーモンとして駐在します。fastcgiを起動スクリプト。

/etc/init.d/ 以下に を作成

# vim /etc/init.d/php-fastcgi
#!/bin/bash

### BEGIN INIT INFO
# Provides:          php-fastcgi
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the php-fastcgi
# Description:       starts the php-fastcgi
### END INIT INFO

PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
RETVAL=0
PIDFILE=/var/run/php5-cgi.pid
case "$1" in
  start)
    su - $FASTCGI_USER -c $PHP_SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  stop)
    killall -9 php5-cgi
    echo '' > $PIDFILE
    RETVAL=$?
  ;;
  restart)
    killall -9 php5-cgi
    su - $FASTCGI_USER -c $PHP_SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  *)
    echo "Usage: php-fastcgi {start|stop|restart}"
    exit 1
  ;;
esac
exit $RETVAL
console output
# chmod 755 /etc/init.d/php-fastcgi
# update-rc.d php-fastcgi defaults
# /etc/init.d/php-fastcgi start

起動すると

spawn-fcgi: child spawned successfully: PID: 0000

というメッセージが出ます。

 2142 ?        Ss     0:00 /usr/bin/php5-cgi
 2143 ?        S      0:00 /usr/bin/php5-cgi
 2144 ?        S      0:00 /usr/bin/php5-cgi
 2145 ?        S      0:00 /usr/bin/php5-cgi
 2146 ?        S      0:00 /usr/bin/php5-cgi
 2147 ?        S      0:00 /usr/bin/php5-cgi
 2148 ?        S      0:00 /usr/bin/php5-cgi

デーモンとしてphp5-cgiが駐在します。

4.nginxの設定

# mkdir /var/www/yourhostname.com
# chown -R www-data:www-data /var/www/yourhostname.com
# vim /etc/nginx/nginx.conf

nginx.confの内容

user www-data;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
     include /etc/nginx/mime.types;
     sendfile on;
     keepalive_timeout  65;
     tcp_nodelay on;
     gzip on;
     server {
         listen 80;
         server_name yourhostname.com;
         access_log /var/log/nginx/yourhostname.com.log;
         error_log /var/log/nginx/yourhostname.com.error.log;
         location / {
             root /var/www/yourhostname.com;
             index index.html index.htm index.php mtview.php;
         }
         location ~ \.php$ {
             include /etc/nginx/fastcgi_params;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME /var/www/yourhostname.com$fastcgi_script_name;
         }
     }
}

設定ファイルの説明はそれほど必要ではないと思います。

ApacheでいうDirectoryIndexesがindex項目になり、DocumentRootがroot項目に。

ここではテンプレートだけを載せておきます。詳細は検索してください。

私が実験した環境では自動で起動しないようになっていましたので

# update-rc.d nginx defaults

nginxの起動

# /etc/init.d/nginx start # nginxの起動
 2130 ?        Ss     0:00 nginx: master process /usr/sbin/nginx
 2131 ?        S      0:00 nginx: worker process

としてnginxが駐在します。

nginxの設定ファイルのリロード、構文チェックは下記のとおりです。

リロード:nginx -t
構文チェック:nginx -s reload

あとは/var/www/yourdomain.comにindex.phpなどでphpを動かすだけです。

エラーが出たときに

「No input file specified.」のエラー
fastcgi_param SCRIPT_FILENAME /var/www/yourhostname.com$fastcgi_script_name;
のパスが間違っている場合。php cgiの場所が不明のエラー。

参考:

http://library.linode.com/web-servers/nginx/php-fastcgi/ubuntu-10.04-lucid

http://wiki.nginx.org/FcgiExampleJa

http://hima-j.in/linux/sakura-vps-ubuntu-10-04-nginx-php-fastcgi-web-server/

http://wiki.nginx.org/Configuration

2011-02-14

exim4 x gmailのスマートホストによるメール送信(メール送信はこれが便利かな)

sendmailを使いたいが信頼度の高いsmtp経由させてメールを送信させたい。exim4のスマートホストなら簡単に設定ができます。

http://highfrontier.ldblog.jp/tag/GMail

からほとんど引用させてもらっています。私も試してしっかりと動いたのでメモ+自分用保存で掲載させて頂きました。

# dpkg-reconfigure exim4-config
1. General type of mail configuration: スマートホストでメール送信; SMTP または fetchmail で受信する
2. System mail name: localhost
3. IP-addresses to listen on for incoming SMTP connections: 127.0.0.1
4. Other destinations for which mail is accepted: localhost
5. Machines to relay mail for:
6. IP address or host name of the outgoing smarthost: smtp.gmail.com:587
7. Hide local mail name in outgoing mail? <No>
8. DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド)? <No>
9. ローカルメールの配送方式: /var/mail/ 内の mbox 形式
10. Split configuration into small files? <Yes>

の順番でうまくいきます。下記のスクリーンショットを貼っておきます。

f:id:Kmusiclife:20110214152716p:image

f:id:Kmusiclife:20110214152717p:image

f:id:Kmusiclife:20110214152718p:image

f:id:Kmusiclife:20110214152719p:image

f:id:Kmusiclife:20110214152720p:image

f:id:Kmusiclife:20110214152721p:image

f:id:Kmusiclife:20110214152723p:image

f:id:Kmusiclife:20110214152722p:image

f:id:Kmusiclife:20110214152724p:image

f:id:Kmusiclife:20110214152726p:image

f:id:Kmusiclife:20110214152725p:image

f:id:Kmusiclife:20110214152727p:image

f:id:Kmusiclife:20110214152728p:image

設定が終わると

# vi /etc/exim4/passwd.client
gmail-smtp.l.google.com:youraccount@gmail.com:yourpassword
*.google.com:yourassount@gmail.com:yourpassword
smtp.gmail.com:yourassount@gmail.com:yourpassword

の内容です。削ってもいい部分ありますが。

ローカルのユーザとgmailを結びつけるには下記の設定を行います。

# vim /etc/exim4/email-addresses

内容は

yourasount@localhost: yoursccount@gmail.com

最後にexim4を再起動します。

# /etc/init.d/exim4 restart

Google Appsの独自ドメインでもアカウント名の部分(上記ではyouraccount@gmail.comの部分)を

自分のドメインにすることで対応が可能です。

2010-11-16

bind9の基本的なセキュリティを備えた設定

ネームサーバのセキュリティ、DNSリフレクション、DNS ampなどを使って悪用されたりすることが多いと言われています。

http://web-tan.forum.impressrd.jp/e/2009/01/15/4414

http://www.atmarkit.co.jp/fwin2k/win2ktips/781dnsamp/dnsamp.html

基本的な設定ができていれば問題はないはずなのですがなかなか慣れないとbindの設定は難しいものです。recursionの設定とLOGさえしっかりと行っておくと万が一の対応も出来るかと思います。本当に基本的な設定、ゾーンファイルの定義などはここでは説明していません。ゾーンファイルの書き方、設定の仕方はgoogleなどで検索してみてください。bindの基本的な設定は下記のとおり。

/etc/bind/named.confファイル

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.logging";
include "/etc/bind/named.conf.zones";
include "/etc/bind/named.conf.local";

/etc/bind/named.conf.zonesファイル

acl localnet {
        127.0.0.1;
};
view "internal" {
        match-clients { localnet; };
        recursion yes;
        allow-recursion { localnet; };
        allow-query { localnet; };
        allow-transfer{ localnet; };
        zone "." {
                type hint;
                file "/etc/bind/db.root";
        };
        zone "localhost" {
                type master;
                file "/etc/bind/db.local";
        };
        zone "127.in-addr.arpa" {
                type master;
                file "/etc/bind/db.127";
        };
        zone "0.in-addr.arpa" {
                type master;
                file "/etc/bind/db.0";
        };
        zone "255.in-addr.arpa" {
                type master;
                file "/etc/bind/db.255";
        };
};
view "external" {
        match-clients{ any; };
        allow-query { any; };
        recursion no;
        zone "yourdomain.com" {
                type master;
                file "/etc/bind/yourdomain.com.zone";
        };
};

/etc/bind/named.conf.optionsファイル

options {
        directory "/var/cache/bind";
        recursion no;
        allow-query { none; };
        allow-transfer{ none; };
        auth-nxdomain no; # conform to RFC1035
        listen-on-v6 { any; };
};

/etc/bind/named.conf.loggingファイル

        logging {
	    channel "log_default"{
                file "/var/log/named/named.log" versions 7 size 10m;
                severity info;
                print-time yes;
                print-category yes;
        };
        channel "log_security" {
                file "/var/log/named/security.log" versions 3 size 10m;
                severity info;
                print-time yes;
                print-category yes;
        };
        category default { "log_default"; };
        category security { "log_security"; };
        category client { "log_security"; };
};

設定ファイルの構文チェックは

# named-checkconf

で行います。

設定してもこれをどうテストするかというのも重要です。テスト、デバック方法がわからないというケースが意外と多くあるように思います。

# tcpdump -n udp and port 53 // パケットの閲覧
# tail -f /var/log/named/security.log // namedログファイルの閲覧
# dig yourdomain.com @nameserver.com // 実際にDNSへの問い合わせ nameserver.comへ問い合わせ

ゾーン設定のテンプレもついでにのせておきます。

google appsの設定をサンプルにしておきました。

/etc/bind/yourdomain.com.zoneファイル

$TTL 3600
@ IN SOA ns1.yourdomain.com. info.yourdomain.com. (
        2011110601
        3600
        900
        36000
        3600
)
                IN      NS      ns1.yourdomain.com.
;
                IN      MX      1       aspmx.l.google.com.
                IN      MX      5       alt1.aspmx.l.google.com.
                IN      MX      5       alt2.aspmx.l.google.com.
                IN      MX      10      aspmx2.googlemail.com.
                IN      MX      10      aspmx3.googlemail.com.
;
                IN      A       0.0.0.0
ns1          IN      A       0.0.0.0
www        IN       A       0.0.0.0
;
mail            IN      CNAME   ghs.google.com.
docs            IN      CNAME   ghs.google.com.
calendar        IN      CNAME   ghs.google.com.
sites           IN      CNAME   ghs.google.com.
start           IN      CNAME   ghs.google.com.
;
google._domainkey 86400 IN TXT ("v=DKIM1; k=rsa; p=XXXXXXXXXXXXX")

ゾーン設定ファイルの詳細なチェックは

# named-checkconf -z

などで出来ます。

2010-10-08

さくらVPSにDebianを入れて運用する方法

さくらVPNが980円/月という格安で非常に高いスペック、しかも当たり前ですがroot権限付きです。

CentOSが標準ですが使い慣れたDebianを入れて運用する方法をまとめました。同じ方法でubuntuもfreebsdも簡単にはいります。

VPS(仮想専用サーバ)のさくらインターネット

流れは簡単で

1 さくらから送られてくる情報を待つ(rootパスワードが書かれたメールが来るまで待ちましょう)

2 さくらVPSコントロールパネル、リモートコンソールから作業

https://secure.sakura.ad.jp/vpscontrol/main/

https://secure.sakura.ad.jp/vpscontrol/main/console

3 CentOSの設定情報の確認とメモ

4 debian OS(netboot)をDownload

http://ftp.jp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz

http://ftp.jp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/linux

5 VNCコンソールの利用(viを利用しやすいため)

https://secure.sakura.ad.jp/vpscontrol/main/vnc

6 grub.confの書き換え

7 再起動

8 debianのインストール

9 debian各設定

という流れです。

急ぎがちですがさくらから送られてくるrootパスワードとIPアドレスが書かれているメールが届いてから作業を行ないましょう。


1 さくらから送られてくる情報を待つ

急ぎがちですがさくらから送られてくるrootパスワードとIPアドレスが書かれているメールが届いてから作業を行ないましょう。


2 さくらVPSコントロールパネル、リモートコンソールから作業

さくらからrootパスワードが送られてくれば下記からVPSサーバの利用ができます

https://secure.sakura.ad.jp/vpscontrol/main/

https://secure.sakura.ad.jp/vpscontrol/main/console


3 CentOSの設定情報の確認とメモ

初期に入っているCentOSの設定情報を控えます。控える内容は

ifconfig -a

hostname

/etc/resolv.conf

/etc/sysconfig/network-scripts/ifcfg-eth0

の内容です。

IPアドレス、ネットマスク、ゲートウェイ、DNSサーバくらい分かっていれば問題ないです。

ネットマスクが 255.255.254.0 ですので間違えないようにしてください。

cat /etc/resolv.conf

#cat /etc/resolv.conf
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
search sakura.ne.jp

ifconfig -a

ifconfig -a
eth0      Link encap:Ethernet  HWaddr 52:54:00:00:74:14                         
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.254.0
          inet6 addr: ff::ff:ff:ff:0000/00 Scope:Link                     
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1358 errors:0 dropped:0 overruns:0 frame:0
          TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:87903 (85.8 KiB)  TX bytes:4445 (4.3 KiB)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
 
sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

/etc/sysconfig/network-scripts/ifcfg-eth0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
DEVICE=eth0
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.254.0
GATEWAY=xxx.xxx.xxx.xxx
ONBOOT=yes

hostname

www0000u.sakura.ne.jp

とにかくメモっておきましょう。


4 debian OS(netboot)をDownload

debian OSをdownloadします。/boot/debianで作業します

# mkdir /boot/debian
# cd /boot/debian
# wget http://ftp.jp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
# wget http://ftp.jp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/linux

リモートコンソールでヤンクできるのかな?

どうやってコピーしていいのか分からなかったので手打ちしました。


5 VNCコンソールの利用(viを利用しやすいため)

リモートコンソールではviが使えるの?使えなかったのでさくらvpsの

VNCコンソールでサーバを触ります。

https://secure.sakura.ad.jp/vpscontrol/main/vnc

AppletによるVNCクライアントです。


6 grub.confの書き換え

起動用のgrub.confの書き換えです

# /boot/grub
# vi /boot/grub/grub.conf 

/boot/grub/grub.conf

title debian install
  root (hd0,0)
  kernel /debian/linux ro root=LABEL=/ console=tty0 console=ttyS0,115200n8r
  initrd /debian/initrd.gz

console=ttyS0,115200n8rはさくらvpsのリモートコンソールを利用するためです

さくらの「よくある質問(FAQ)」ページは移転しました|さくらインターネット


7 再起動

CentOSを再起動します

# sync
# sync
# sync 
# reboot

8 debianのインストール

再起動中前にgrubの起動OSの選択画面で

debian install を選択します。間違えてCentOSを起動してしまった場合は

さくらvpsのコントロールパネルからでも立ち上がったCentOSからでも再起動してください。

Debianが立ち上がればあとは普通にDebian OSをインストールするだけ。

言語は英語版でしか入れれず(おそらく)、キーボードは日本語(Standard)を必ず選択してください。

インストール時にIPアドレスなどの入力があるのでキーボードは使い慣れた日本語が良いと思います。

なお、タイムゾーン、ロケールなど後に設定できますので適当でもかまいません。


9 debian各設定

debianが入ってしまえばあとは簡単。

# apt-get update
# apt-get upgrade
# dpkg-reconfigure tzdata # タイムゾーンの再設定
# dpkg-reconfigure locales # ロケールの再設定
# dpkg-reconfigure exim4-config # EXIM4の再設定

25番ポートはさくらのほうで住所の確認、支払いの確認が出来次第利用ができるようになります。

したがって、25番ポートは無料利用期間は利用できません。

ご利用上の注意 | VPS(仮想専用サーバ)「さくらのVPS」

ブログはこちらへ移行しました