webサーバ設定作業メモ - 私用
はじめに
webサーバを設定する作業があったのですが、いつも同じこと調べながらに作業になるので作業メモとして残しておきます。
やりたいことは
・一般ユーザの作成
・webサーバの設定(バーチャルホストの設定)
・phpのインストールと設定
・mysqlのインストールと設定
といってもほぼドットインストールの「さくらのvps入門」の内容です
一般ユーザの作成
useradd username passwd username # 新パスワードの入力
※身内での作業が多いのでrootが必要な作業はrootになってやってしまってます。
鍵認証でログインできるようにする
// ローカル ssh-keygen -t rsa -f ~/.ssh/id_rsa_*** chmod 600 ~/.ssh/id_rsa_***.pub // サーバー mkdir ~/.ssh chmod 700 ~/.ssh // ローカル scp ~/.ssh/id_rsa_***.pub username@hostname:~/.ssh/authorized_keys
webサーバの設定
apacheのインストール
# インストールされてないか確認 yum list installed | grep httpd # インストール yum install httpd # 自動起動に設定されてないことを確認して設定 chkconfig --list httpd chkconfig httpd on
httpd.confの設定
vi /etc/httpd/conf/httpd.con #ServerTokens OS //これだとサーバ情報やapacheのモジュール情報等もhttpレスポンスヘッダ返すのでセキュリティ的によくない ServerTokens Prod // 最低限の情報だけレスポンスヘッダでかえす設定 #ServerSignature On // NotFoundページなどを表示する際にサーバの情報も表示してしまうのでセキュリティ上よくない ServerSignature Off #Options Indexes FollowSymLinks // ディレクトリにアクセスした際にファイルの一覧を表示してしまうのでセキュリティ上よくない Options -Indexes FollowSymLinks
httpdの起動
service httpd configtest Syntax OK // これが出ればhttpd.confの構文エラーはなし service httpd start // httpd起動 Starting httpd: [OK]
ipアドレスでアクセスして、apacheが動作してることを確認する
http://***.***.***.*** にアクセスしてみて無事に起動できていればapacheのTestPageが表示される
ディレクトリの所有者変更
chown -R user:group /var/www/html
バーチャルホストの設定
// 本番、ステージング、開発用のドキュメントルートディレクトリを作る mkdir /var/www/html/dev mkdir /var/www/html/stg mkdir /var/www/html/rc // 本番、ステージング、開発用のドメインごとの各ドキュメントルートを設定 vi /etc/httpd/conf/httpd.con NameVirtualHost *:80 <VirtualHost *:80> ServerName dev.example.com DocumentRoot /var/www/html/dev </VirtualHost> <VirtualHost *:80> ServerName stg.example.com DocumentRoot /var/www/html/stg </VirtualHost> <VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/html/rc </VirtualHost> // apacheリスタート service httpd configtest service httpd restart
作業用pcの/etc/hostsを書き換えて設定したドメインでアクセスしてみる
sudo vi /etc/hosts ***.***.***.*** dev.example.com ***.***.***.*** stg.example.com ***.***.***.*** www.example.com
ここまででそれぞれアクセスできればhttpdサーバの設定はokです
phpのインストールと設定
僕は普段fuelphpを使っているので、phpをインストールします
yum install php php-devel php-mysql php-gd php-mbstring # インストール yum list installed | grep php # インストールされていることを確認
centos6.7で標準だとphpのバージョンが5.3なのでこっちの方がいいかも
sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
※参考
CentOSにPHP5.6をインストール - Qiita
/etc/php.iniの編集
そのままなんですけどそれぞれ、セキュリティ上の設定とタイムゾーン、文字コードの設定となります
vi /etc/php.ini ;expose_php On expose_php Off ;date.timezone = date.timezone = Asia/Tokyo ;mbstring.language = Japanese mbstring.language = Japanese ;mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8 ;mbstring.http_input = auto mbstring.http_input = auto
httpからのアクセスで反映させるためにhttpdをリスタート
service httpd restart
mysqlのインストールと設定
基本的にmy.cnfの設定は文字コード周りでphpの内部エンコードとmysqlのクライアント、サーバで私用する文字コードをutf8にしておけば問題ないと思われる
my.cnfの編集
yum install mysql-server vi /etc/my.cnf character_set_server=utf8 default-storage-engine=InnoDB innodb_file_per_table [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
centos6.7だとmysql5.1でバージョンが古いのでこっちのほうがいいかも
yum install -y http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm yum install -y mysql-community-server
mysqlサーバ起動
mysql_install_db --datadir=/var/lib/mysql --user=mysql #初回のみ実行 service mysqld start chkconfig mysqld on mysql_secure_installation
ここまでやればとりあえずwebサーバとmysqlの動作確認と起動設定が完了。
mysqlのデータベースとユーザ作成
開発、ステージング、本番用のデータベース作成
create databse dev; create database stg; create database rc;
作業用ユーザの作成
grant all on *.* to username@localhost identified by '********'; # 1番後ろはパスワード
ルートユーザーのパスワード設定
/usr/bin/mysqladmin -u root password '****'
apacheログのローテーション設定
ローテーションというよりは出力ファイルを日ごとに変更してる形
vi /etc/logrotate.d/httpd daily #追加
http://d.hatena.ne.jp/yk5656/20140523/1402455511
こちらのサイトを参考にさせて頂きました
以上です