開発環境を構築する時用のメモ Apache・PHP・MySQL

NO IMAGE

コピペで自分の開発環境を構築する為のメモです
あちこちに書いて分散しちゃっているからまとめる予定です

Apacheのインストール

~~~
$ yum install httpd
~~~

PHP5.3系・MySQL5.1系のインストール

必要な外部リポジトリを追加する(2011/1/19日時点のバージョン)

~~~
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
~~~
[20120322追記]download先のurlが変わった気がします!
English : Repository Configuration – Les RPM de Remi – Blog

間違って他のパッケージまで更新されないように通常は無効にする

~~~
$ vim /etc/yum.repos.d/remi.repo
#enabled=1を0に変更する
enabled=0
$ vim /etc/yum.repos.d/epel.repo
#enabled=1を0に変更する
enabled=0
~~~

インストール

~~~
$ yum install –enablerepo=epel,remi mysql-server php php-common php-mysql php-devel php-pear php-mbstring
~~~
*mysql とかくと32bit版のものまで余計に入ってバグることが多いのでmysql-serverだけを書くといい

mysqlの起動

~~~
$ service mysqld start
~~~

失敗した場合、ログを確認
~~~
$ vim /var/log/mysqld.log
110110 11:29:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110110 11:29:06 [Note] Plugin ‘FEDERATED’ is disabled.
/usr/libexec/mysqld: Table ‘mysql.plugin’ doesn’t exist
110110 11:29:06 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
110110 11:29:06 InnoDB: Initializing buffer pool, size = 8.0M
110110 11:29:06 InnoDB: Completed initialization of buffer pool
110110 11:29:06 InnoDB: Started; log sequence number 0 44233
110110 11:29:06 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
110110 11:29:06 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
~~~

大体の場合が↑のエラーが出るので初期化してみる

~~~
$ mysql_install_db
$ service mysqld restart
~~~

これで起動しない時は大体インストールをミスっていることが多いので一旦 mysql と PHP を削除して入れなおしてみる

~~~
$ yum remove  mysql\* php\* mysqlclient15
~~~

再度インストールからやり直す
起動したら

~~~
$ mysql_upgrade
~~~

↑は起動してないと実行できないので要注意

MySQLの設定

EC-CUBEは文字化けしやすいので絶対に文字化けしないようにしておきます

~~~
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# To enable the InnoDB Plugin, uncomment the 2 next lines
#ignore-builtin-innodb
#plugin-load=innodb=ha_innodb_plugin.so
# To enable InnoDB-related INFORMATION_SCHEMA tables
# Join the following options to above directive
;innodb_trx=ha_innodb_plugin.so
;innodb_locks=ha_innodb_plugin.so
;innodb_cmp=ha_innodb_plugin.so
;innodb_cmp_reset=ha_innodb_plugin.so
;innodb_cmpmem=ha_innodb_plugin.so
;innodb_cmpmem_reset=ha_innodb_plugin.so
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so

default-character-set = utf8
skip-character-set-client-handshake

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set = utf8

[mysql]
default-character-set = utf8

~~~

設定を変えたらreloadする

~~~
$ service mysqld reload
$ chkconfig mysqld on
~~~

このままだとパスワードが設定されていないので設定

~~~
$ mysql -u root
mysql> set password for [email protected]=password(‘rootパスワード’);
mysql> set password for [email protected]’hostname’=password(‘rootパスワード’);
mysql> set password for [email protected]=password(‘rootパスワード’);
~~~

Apacheの設定

とくにいぢらなくても開発環境なら大丈夫

バーチャルホストを使う場合

~~~
$ vim /etc/httpd/conf.d/vhost.conf

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#


ServerAdmin [email protected]
DocumentRoot “/var/www/html/hoge/”
ErrorLog logs/hoge-error_log
CustomLog logs/hoge-access-log common
ServerName hoge.sq

AllowOverride All
Allow from All



ServerAdmin [email protected]
DocumentRoot “/var/www/html/fuga/”
ServerName fuga.sq
ErrorLog logs/fuga-error_log
CustomLog logs/fuga-access-log common

AllowOverride All
Allow from All

~~~

PHPの設定

最低限自分が直す部分だけ

~~~
$ vim /etc/php.ini

error_reporting = E_ALL & ~E_NOTICE
error_log = syslog
register_globals = Off
magic_quotes_gpc = Off
default_charset = “UTF-8”

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.func_overload = 0

[Date]
date.timezone = Asia/Tokyo
~~~

Apacheを起動する

~~~
$ service httpd start
$ chkconfig httpd on
~~~