LoginSignup
22
22

More than 5 years have passed since last update.

ローカル開発環境構築メモ2

Last updated at Posted at 2014-04-30

http://qiita.com/840_/items/c8574ae3d25ed3a4e92a の続き

相変わらずほとんどドットインストール様を参考にしております。
http://dotinstall.com/lessons/basic_local_development_v2

7.epel,remiのリポジトリ導入

最新のPHP,MySQLを導入するためにepelとremiのリポジトリを更新します。

  • wget

まずwgetが必要なので
$ sudo yum install wget

wgetをyumでインストールしておく

  • epel

wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

今回はx86_64の仮想マシンを導入したので、https://dl.fedoraproject.org/pub/epel/6/x86_64/からepel-releaseを探し、リンクアドレスをコピー

RPMパッケージが取得できるので、次にrpmコマンドでインストールする
$ sudo rpm -Uvh epel-release-6-8.noarch.rpm
-U:パッケージのアップグレードを行う、パッケージが存在しなければインストール
-v:パッケージの検査を行う
-h:インストール状況の表示

インストールできたら、デフォルトでepelを使わない設定に変更しておく
$ sudo vi /etc/yum.repos.d/epel.repo
[epel]の中のenabledが1であれば0に変更

  • remi

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

http://rpms.famillecollet.com/ からCentOS6用のremi-release-6.rpmのリンクアドレスをコピーしてwgetで取得する

同様にrmpでインストール
$ sudo rpm -Uvh remi-release-6.rpm

インストールした後、同様に設定を確認
$ sudo vi /etc/yum.repos.d/remi.repo
[remi]の中のenabledが1であれば0に変更

これでようやくPHPをインストールできるようになりました

8.PHPのインストールと設定

yum info --enablerepo=remi php
まずはphpのバージョンの確認

$ sudo yum --enablerepo=remi install -y php php-devel php-mysql php-mbstring php-gd
次にremiでインストール
PHPに必要な物は片っ端からいれておきます

次にphp.iniを編集して設定を変えておきます
$ sudo vi /etc/php.ini

  • error_logの出力パスの設定

    ;error_log辺りで検索して

    error_log = var/log/php.log

    などを追加する

  • マルチバイト文字を使えるようにする
    mbstring.languageのコメントアウトを外す
    mbstring.language = Japanese
    更にinsternal_encodingを
    mbstring.internal_encoding = UTF-8
    としておく
    internal_encodingはマルチバイト文字を扱う際に文字コードが指定されなかった場合に使う文字コードを設定できるみたいです。
    文字化けを防ぐために文字コードはUTF-8で統一しておきます。

  • 文字コードの指定
    http_inputはドットインストール様ではautoでしたが、自動で変換しちゃうと文字化けが起きやすくなるのでここではpassに設定しておきます
    mbstring.http_input = pass
    mbstring.detect_orderもautoだとどの文字コードから判別してくれるかわからなくて怖いので、明示的に指定しておきます
    mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
    この記述であれば、UTF-8,SJIS,EUC-JP...の順で判別してくれます。

  • バージョン情報をHTTPヘッダに含めない
    次にexpose_phpをOFFにします
    expose_php = Off
    Onのままだと、PHPのバージョンがHTTPのヘッダ情報に含まれてしまうらしいです。
    バージョンによっては攻撃の手段を晒す事にもなってしまうので、Offにしておくのが良いようです。

  • タイムゾーンの指定
    date.timezone = Asia/Tokyo
    date.timezoneを明示的に指定しておきます。
    タイムスタンプなどを扱う際にはタイムゾーンの指定がされていないとエラーが出てしまうので、、デフォルトとして扱うタイムゾーンを設定しておきます。
    Vagrant上の仮想マシンであれば問題ないはずですが、php.iniがいじれない環境である場合には、
    date_default_timezone_set('Asia/Tokyo');
    を使って、PHPのソース上でデフォルトのタイムゾーンを明示的に指定する必要があります。

ひと通り編集したら保存してサーバーを再起動すると設定が適用されます
$ sudo service httpd restart

9.MySQLのインストール・設定

$ sudo yum install -y --enablerepo=remi mysql-server
remiでmysql-serverをインストールする。

インストールが終わったら設定ファイルを編集します

$ sudo 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

sudo service mysqld start
でmysqlを起動...できるかと思ったらエラーがでました
Daemon failed to start.
Starting mysqld: [FAILED]

よくわかんないけど起動に失敗したらしい。
エラーログを確認してみました

[vagrant@vagrant-centos65 ~]$ tail /var/log/mysqld.log
tail: cannot open `/var/log/mysqld.log' for reading: Permission denied
[vagrant@vagrant-centos65 ~]$ sudo tail /var/log/mysqld.log
InnoDB: Progress in percents: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
140430 4:36:37 InnoDB: Waiting for the background threads to start
140430 4:36:38 InnoDB: 5.5.37 started; log sequence number 1595675
140430 4:36:38 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
140430 4:36:38 [Note] - '0.0.0.0' resolves to '0.0.0.0';
140430 4:36:38 [Note] Server socket created on IP: '0.0.0.0'.
140430 4:36:38 [ERROR] /usr/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
140430 4:36:38 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
140430 04:36:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

エラーログをみたところ、/mysql/host.frmが開けないとのこと

sudo ls -alt /var/lib/mysql/mysql/してみたところ、関連ファイルの所有権が全てrootになっていました。
これが原因で開けなかったっぽい。

$ chown -R mysql:mysql /var/lib/mysql
として、所有権をmysqlに変えてあげます

$ sudo service mysqld restart
再起動したらやっと起動出来ました。

次に、セキュリティを高めるための設定を行っていきます。
$ /usr/bin/mysql_secure_installation
とすると、rootのパスワードを聞かれますが、初期はパスワードが設定されていないのでそのままEnter
set root password?でパスワードを設定します。

後は全部Enterでスキップします。
これでrootにパスワードが設定されました。

$ mysql -u root -p
として設定したパスワードを入力すればmysqlにログインできるようになってるはずです。

起動時にmysqlが起動するように設定しておくには以下のようにしておけば良さそうです。
$ sudo chkconfig mysqld on

10.postgreSQLのインストール

http://www.postgresql.org/download/linux/redhat/ からサイトの指示に従ってrpmパッケージを導入する

$ sudo yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
rpmパッケージが導入されたら同様に指示に従ってインストールします
$ sudo yum install postgresql93-server postgresql93-contrib

これでpostgreSQL自体はインストールされるので、まずはDBを初期化
$ sudo service postgresql-9.3 initdb

これもMySQL同様に、デフォルトで起動にしておき、起動します
$ sudo chkconfig postgresql-9.3 on
$ sudo service postgresql-9.3 start
Starting postgresql-9.3 service: [ OK ]

postgreSQLがインストールされるとpostgresというユーザーが作成されるので、パスワードを設定し、postgresでログインします。

[vagrant@vagrant-centos65 ~]$ sudo passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[vagrant@vagrant-centos65 ~]$ su - postgres
Password:
-bash-4.1$ psql --version
psql (PostgreSQL) 9.3.4
-bash-4.1$ psql
psql (9.3.4)
Type "help" for help.

ログインした後は、psqlコマンドでpostgreSQLに入れます。

初期状態では、postgresSQLにはpostgresというスーパーユーザーしか作られていないので、作業用のユーザーを追加します。
CentOSのユーザー名と同じだと都合がいいらしいのでvagrantにしておきます。
他の権限を与えたいときにはユーザー名の後ろに追記します。

postgres=# create user vagrant createdb password '(適当なパスワード)' login;

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 vagrant   | Create DB                                      | {}

ユーザーが作成されました。

11.pythonのインストール

まずはpythonのバージョンを確認
[vagrant@vagrant-centos65 ~]$ python --version
Python 2.6.6

ドットインストールでは2.7をいれていくみたいです。

https://www.python.org/download/releases/2.7.6 からアドレスをコピーしました。
tgz形式のリンクアドレスをコピーしてwgetで取得します。

$ wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz

$ tar xzvf Python-2.7.6.tgzで解答し、できたディレクトリに移動したら
$ ./configure --enable-shared --with-threadsとするとMakefileが生成されます。

makeでファイル群を生成し、sudo make installとしてインストール。
これでPythonの2.7.6がインストールされました。

後はライブラリをコピーしておけば良いようです。

[vagrant@vagrant-centos65 Python-2.7.6]$ sudo cp libpython2.7.so libpython2.7.so.1.0 /usr/lib
[vagrant@vagrant-centos65 Python-2.7.6]$ sudo /sbin/ldconfig
[vagrant@vagrant-centos65 Python-2.7.6]$ source ~/.bash_profile
[vagrant@vagrant-centos65 Python-2.7.6]$ python --version
Python 2.7.6

とりあえずここまでやっといた
半分くらいはおまじない的にやってるんでこうしたほうがいいよとかあったらおしえてください

22
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
22