VPSコントロールパネル > VPSホームから起動する。
VPSコントロールパネル > リモートコンソールでログインする。
login: root password: さくらVPSのメールに記載されたパスワード
ユーザーrootのパスワードはログイン後に変更する。ユーザーrootでコマンドを実行するときはコンソールの行頭が#で始まる。
# passwd Changing password for user root. New UNIX password: ← 新しいパスワード Retype new UNIX password: ← パスワードの確認 passwd: all authentication tokens updated successfully.
一般ユーザーを追加する(本記事ではユーザーfooを追加)。
# useradd foo # passwd foo Changing Password for foo new Password ← ユーザーfooのパスワードを設定
ユーザーfooでコマンドを実行するときはコンソールの行頭が$で始まる(#のときはユーザーrootが実行者)。
追加したユーザーfooにグループwheelを設定する。
# usermod -G wheel foo
ユーザーfooで公開鍵・秘密鍵を作成する。作成した公開鍵はサーバに保存する。秘密鍵はローカルに保存する。パスワード認証を無効にして秘密鍵を持つクライアントの接続のみを可能にする。ユーザーrootでのSSHログインの禁止も後ほど設定する。
現在のユーザーがrootの場合はfooへ変更する。
# su foo
ユーザーfooで公開鍵・秘密鍵を作成する。
$ ssh-keygen -t rsa Enter file in which to save the key (/home/foo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): ←任意のパスフレーズ(パスワード)を入力 Enter same passphrase again: ←パスフレーズ(パスワード)を確認
公開鍵のファイル名をid_rsa.pubからauthorized_keysへ変更する。
mv id_rsa.pub authorized_keys
.sshディレクトリのパーミッションを700に変更する[1]。authorized_keysファイルを600に変更する[2]。
秘密鍵(id_rsa)をローカル(~/.ssh)へ移動する。今回はFileZillaを使ってSFTPでダウンロードする。SFTP情報は下記の通り設定する。
ホスト名: 192.0.2.0 ポート: 22 ユーザー名: root パスワード: rootのパスワード
ローカルに保存したid_rsaのパーミッションを600へ変更する[3]。
# rm id_rsa
パスワード認証によるログインの無効化・ユーザーrootのSSHログインの無効化・SSHのport番号の変更を行うためサーバーのSSH設定ファイルを編集する。
SSHの設定ファイル /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config
// ポート番号変更 任意の値(本記事では10022)。ウェルノウンポート番号以外がよい。 Port 10022 // rootでのログインを無効化 PermitRootLogin no // パスワード認証を無効化 PasswordAuthentication no
# /etc/init.d/sshd restart
ssh -p 10022 foo@192.0.2.0
Macはダイアログが表示されるので公開鍵を作成するさいに設定したパスフレーズを入力する。
[1],[2] Permission deniedというエラーでログインできなかったがパーミションを記事のように設定したらログインできた。
[3]パーミッションが644だと警告がでてログインできなかった。記事のように設定したらログインできた。
ユーザーrootは権限が大きいので一般ユーザー(本記事はfoo)を追加した。一般ユーザーでは実行できないコマンドはsuでユーザーrootへ変更すれば実行できる。ただユーザーrootは権限が大きすぎるのでsudoを使う。
下記の記事を参考にさせていただき設定した。
» さくらのVPS を使いはじめる 2 – sudo と SSH ポート変更 | アカベコマイリ
$ mkdir example mkdir: cannot create directory `example': Permission denied
sudoを使うとディレクトリを作成できる。作成したディレクトリ乃所有者、グループはユーザーrootになる。
$ sudo mkdir example $ ls -l drwxr-xr-x 2 root root 4096 Dec 31 12:00 example
iptableはインストールされていた。ユーザーfooでコマンドを実行できるようにパスを通す。ユーザーfooのホームディレクトリにあるbashの設定ファイル.bash_profileにパスを記載する。
$ vi .bash_profile
PATH=$PATH:$HOME/bin:/sbin:/usr/sbin:/usr/local/sbin export PATH
設定後再ログインするかsourceコマンドを実行すると設定が反映される。
iptablesはファイアーウォールの設定を行う。外部からの接続を許可するポート番号を指定する。下記の記事を参考にさせていただき設定した。
» さくらのVPS を使いはじめる 3 – iptables を設定する | アカベコマイリ
下記の記事を参考にさせていただき設定した。
» さくらのVPS を使いはじめる 4 – Apache のインストールと初期設定 | アカベコマイリ
/etc/httpd/conf/httpd.conf
catはファイルの内容を表示する。下記はユーザーfooのbash設定ファイルの内容を表示する。
$ cat /home/foo/.bash_profile
/etc/passwdの内容でapacheとマッチする行を表示する。
$ cat /etc/passwd | grep apache
# /etc/init.d/httpd restart
$ mysql -V
インストールされていない場合は下記の値が表示される。
-bash: mysql: command not found
MySQLのインストールは下記の記事を参考にさせていただき設定した。
» PHPとMySQLのバージョンを確認 | VPSで始めるホームページ制作
» PHP5.3系のためにリポジトリを更新 | VPSで始めるホームページ制作
» MySqlのインストール | VPSで始めるホームページ制作
MySQLの設定は下記の記事を参考にさせていただき設定した。
» さくらのVPS を使いはじめる 5 – MySQL のインストールと初期設定 | アカベコマイリ
MySQLの設定ファイル /etc/my.cnf
$ chkconfig --list mysqld
バージョンを確認する。
$ php -v
インストールされていない場合は下記の値が表示される。
-bash: php: command not found
PHP・PHPのモジュールのインストールは下記の記事を参考にさせていただき設定した。
» PHPをインストール | VPSで始めるホームページ制作
このあとはPHP 5.3.8(2011.11.26)と記事のプラグインをインストールしてある前提とする。
インストールされているモジュールの確認。
$ php -m
PHPの設定ファイル /etc/php.ini
設定変更の前に念のためphp.iniのバックアップをユーザーfooのホームディレクトリにコピーする。
$ cp /etc/php.ini ~/php.ini
設定の変更は主に文字コード関係の設定を行う。MySQL関連は設定を触っていない。以下行頭の数字はviに:set numberで表示した行数なので表示されない場合もある。
693 register_globals = Off
regiser_globalsはデフォルトでOffなのでそのまま。
PHPの内部文字コードはUTF-8とする。外部からの入力はすべてコード内でmb_convert_encoding関数などで自身でUTF-8に変更する。出力もUTF-8で行う。その際header関数でContent-Type: text/html; charset=UTF-8を指定しHTMLのmeta要素に<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
を指定する。
以下行頭の数字はviの:set numberで表示した行数。
264 output_buffering = Off 773 ;default_charset = "UTF-8" この部分は必ずUTF-8で出力する場合はコメントアウトしなくても良いかもしれない 1595 mbstring.language = Japanese 1601 mbstring.internal_encoding = UTF-8 1605 mbstring.http_input = pass mbstring.http_output = pass 1618 mbstring.encoding_translation = Off 1628 mbstring.substitute_character = none 1623 mbstring.detect_order = eucJP-win,UTF-8,SJIS-win,jis
デフォルトで;mbstring.http_input = autoとコメントアウトしてあるので変更の必要はないかもしれない。
デフォルトで;mbstring.http_output = SJISとコメントアウトしてあるので変更の必要はないかもしれない。
mbstring.detect_orderはmb_convert_encoding関数などで変換まえの文字コードを判定する際の順序?
» PHPの文字化けを本気で解決する – ぎじゅっやさん
» http://php.net/manual/ja/mbstring.configuration.php
MySQLにデータベースを作成して簡単なPHPで接続を確認する。
MySQLにexampleデータベースを作成して下記のような構造のtable1テーブルを作成する。
+--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | field1 | varchar(64) | NO | PRI | NULL | | | field2 | varchar(64) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+
viでmysql_connect.phpファイルを作成する。:set encoding=UTF-8で日本語を表示できるようにするとよい。header関数での文字コード指定やmeta要素でも文字コード指定は省略している。
<?php // データベース接続情報 $url = "localhost"; $user = "root"; $password = ""; $database = "example"; // データベース接続処理 $connect = mysql_connect($url,$user,$password) or die("can't connect"); $db = mysql_select_db($database,$connect) or die("can't Select database"); $sql = "SELECT * FROM table1"; $result = mysql_query($sql, $connect) or die("can't submit SQL"); ?> <html> <head> <title>Test Connection from PHP to MySQl</title> </head> <body> <h1>テーブルの中身</h1> <?php while ($row = mysql_fetch_assoc($result)) { echo "<p>"; echo htmlspecialchars($row["field1"]); echo "<br />"; echo htmlspecialchars($row["field2"]); echo '</p>'; } mysql_free_result($result); mysql_close($connect) or die("can't closed"); ?> </body> </html>
データベースの内容が表示されることを確認する。
下記の記事を参考にさせていただき設定した。
» バーチャルホストを設定する | VPSで始めるホームページ制作
» httpd.conf の設定
Apacheの設定ファイル /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80> # ServerAdmin webmaster@imymemine.jp DocumentRoot /var/www/html/root/httpdocs ServerName 192.0.2.0 ErrorLog logs/192.0.2.0-error_log CustomLog logs/192.0.2.0-access_log common </VirtualHost> <VirtualHost *:80> # ServerAdmin webmaster@example.com DocumentRoot /home/foo/vhosts/example.com/httpdocs ServerName example.com ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common </VirtualHost>
Directoryの設定追加。
<Directory "/home/foo/vhosts"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
# /etc/init.d/httpd restart
上記の設定で403 Forbiddenでexample.comにアクセスできなかった。fooディレクトリのパーミッションを700から755にしたら表示できた。httpdocsディレクトリのパーミッションだけでなくそれより上の階層のフォルダのパーミションも755の必要がある。
さくらで取得したドメインを設定。さくらインターネット 会員メニュー > ドメイン名一覧で目的のドメインのゾーン編集からIPアドレスを入力する。
$ mysql -u root -p Enter Password ← MySQLのユーザーrootのパスワード mysql $ CREATE DATABASE wordpress;
WordPressの最新版(2011.11.30, 3.2.1)をダウンロードして展開する。
$ cd ~/foo/vhosts/example.com/httpdocs $ wget http://ja.wordpress.org/wordpress-3.2.1-ja.zip $ unzip http://ja.wordpress.org/wordpress-3.2.1-ja.zip
httpdocsにwordpressディレクトリが作成される。wordpress-3.2.1-ja.zipファイルは削除しておく。
rm wordpress-3.2.1-ja.zip
example.com/wordpress/wp-login.phpにアクセスする。インストール画面が表示される。インストール情報を入力する。WordPressがwp-contentディレクトリにwp-config.phpファイルを作成可能であれば自動で作成する。作成できないときはwp-config.phpをコマンドから作成する。
FileZillaを使ってSFTPでファイルを転送する。プロトコルはSFTPを選択する。ポート番号は変更したSSHポート番号を入力する。
Macのデスクトップのsample.txtファイルをサーバーのユーザーfooのホームディレクトリへ同名sample.txtで転送する。
$ scp -P 10022 /Users/*****/Desktop/sample.txt foo@192.0.2.0:~/sample.txt
Macのデスクトップのsampleディレクトリをサーバーのユーザーfooのホームディレクトリへ転送する。
$ scp -rP 10022 /Users/*****/Desktop/sample/ foo@192.0.2.0:~/
mysqlコマンドが下記にインストールしてあるとする。
/usr/bin/mysql
/user/binのパスが設されていないときは以下のようにmysqlコマンドを実行する。
$ /usr/bin/mysql
/user/binのパスを設定するとmysqlコマンドを以下のように実行できる。
$ mysql
設定済みパスはechoコマンドで確認できる。
$ echo $PATH
パスの追加は下記のように行う。複数のパスを追加するときは:(コロン)で区切る。
$ PATH=$PATH:パス1:パス2 $ export PATH
コマンドのパスはwhichコマンドで調べることができる。
$ which mysql <p>現在設定しているPATHを確認する。</p> [shell] $ echo $PATH
/usr/bin/mysql
[/shell]
Fedora(フェドラ)は、レッドハットが支援するコミュニティー「Fedora Project」によって開発されている、RPM系Linuxディストリビューションである。バージョン6まではFedora Coreと呼ばれていた。特定のバージョンを指す場合は「Fedora 9」のように、バージョン番号を添えて呼ばれることもある。
Extra Packages for Enterprise Linux (EPEL)
» http://fedoraproject.org/wiki/EPEL
「x86-64」という名称は、搭載プロセッサの正式リリースに伴って「AMD64」に変更された。その後、Intel社もAMD64互換の64ビット機能「Extension Memory 64 Technology」(EM64T)の提供を発表している。
» x86-64とは【AMD64】 – 意味/解説/説明/定義 : IT用語辞典
epelとremiの違いがよく分からない
# cd /etc/yum.repos.d # wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
yumのリポジトリ(/etc/yum.repos.d)に配置したらそれらのファイルをインストールする[2]。
# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
yumで利用可能なパッケージを調べる
# yum list
RPMパッケージを管理する[1]。リポジトリのパスは/etc/yum.repos.d。yumでよく利用するオプションを引用する。
install パッケージ名 指定したパッケージをインストール
list 利用可能なパッケージの一覧を表示
list installed インストール済みのパッケージ一覧を表示
list updates アップデート可能なパッケージの一覧を表示
remove パッケージ名 指定したパッケージをアンインストールする。指定したパッケージと依存関係があるパッケージは、削除するかどうか確認を求める
下記の記事を参考にさせていただき設定した。
» PHPとMySQLのバージョンを確認 | VPSで始めるホームページ制作
» PHP5.3系のためにリポジトリを更新 | VPSで始めるホームページ制作
» MySqlのインストール | VPSで始めるホームページ制作
# yum --enablerepo=remi,epel install mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64
# yum --enablerepo=remi,epel install php
PHPのパッケージをインストール。
# yum --enablerepo=remi,epel install php-mysql php-mbstring php-xml php-cli php-common php-devel php-gd php-mcrypt php-pdo php-eaccelerator
[1] rpm
RPM(RedHat Package Manager) RedHatが開発したパッケージ管理システムまたはそれを操作するコマンド。CentOsはパッケージ管理システムとしてyumを使用する。
[5] PHP, MySQLがインストールされるわけではない。remi-release-5.rpm, epel-release-5-4.noarch.rpmのインストール処理。
» さくらのVPS を使いはじめる | アカベコマイリ
» はじめに | VPSで始めるホームページ制作
» Getting Things Done! さくらVPSを契約したらまずやること ー SSHをよりセキュアにする(ポート変更、rootログイン禁止、鍵認証)
» myfinder’s blog: さくらのVPSを借りたら真っ先にやるべきssh設定
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。