ローカル開発環境の構築:もくじ
Apacheのインストール
インストール
sudo yum install -y httpd
httpd.confの編集
バックアップ
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
viで開いて編集します。
sudo vi /etc/httpd/conf/httpd.conf
.htaccessを有効
(省略) # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All (省略)
EnableSendfile off NameVirtualHost *:80
NameVirtualHostの行をコメントいんします。
EnableSendfileと、VirtualHostについてはこちらに掲載しています。
起動
sudo service httpd start
テストページの表示
192.168.33.10にブラウザからアクセスします。
自動起動の設定
sudo chkconfig httpd on
PHPのインストール
インストール
sudo yum install -y php php-cli php-common php-devel php-mbstring php-mysqlnd php-pdo php-mysql
php.iniの編集
バックアップ
sudo cp /etc/php.ini /etc/php.ini.org
viで開いて編集します。
sudo vi /etc/php.ini
エラー発生時に、ディスプレイに表示
display_errors = On
display_errorsは、本番の運用環境ではOffが推奨です。
文字コード
default_charset = "UTF-8"
PHPバージョン情報をHTTPヘッダに含めない
expose_php = Off
タイムゾーン
date.timezone = Asia/Tokyo
マルチバイト(mbstring)
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII mbstring.substitute_character = none mbstring.func_overload = 0 mbstring.strict_detection = Off ;mbstring.http_output_conv_mimetype=
以下のページを参考にしましたが、バージョン5.6以降で非推奨になった設定も多数ありましたので、また5.6以上にバージョンアップした際に整理したいと思います。
日本語利用の為の設定(mbstring) – php.iniの設定 – PHPインストールと初期設定
PHP: 実行時設定 – Manual
エラーログ
log_errors = On html_errors = On error_reporting = E_ALL error_log = /var/log/php_errors.log
html_errorsは、本番の運用環境ではOffが推奨です。
コーディング中はNoticeレベルのエラーも確認したいので、E_ALLで全て出力しています。
var_dumpの出力制限
[Xdebug] xdebug.var_display_max_children = -1 xdebug.var_display_max_data = -1 xdebug.var_display_max_depth = -1
var_dumpで全てを出力させたいので制限を解除します。
Apacheを再起動して、設定を反映する
sudo service httpd restart
エラーログファイルを作成
2016-09-28 追記
PHPを使うのは、Apacheだけとは限りませんのでエラーログファイルを独自に作成します。
WebではApacheからの利用が大半だと思いますので、作成していなくてもhttpdにログが一緒に出力されます。
ファイルを作成し、パーミッションの設定をしないと出力されません。
sudo touch php_errors.log sudo chmod 777 php_errors.log
インタラクティブシェルでログ確認
php -a error_log('This is Error Test!!!', 0');
続いてログファイルを確認してみます。
[14-Apr-2016 12:20:51 Asia/Tokyo] This is Error Test!!!
ばっちり出力されていました!
MySQLのインストール
インストール
sudo yum install -y mysql-server
my.cnfの編集
バックアップ
sudo cp /etc/my.cnf /etc/my.cnf.org
viで開いて編集します。
sudo vi /etc/my.cnf
次の内容を追加します。
[mysqld] (省略) default-storage-engine=InnoDB innodb_file_per_table skip-character-set-client-handshake character-set-server = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
ストレージエンジンのディフォルト値を、InnoDBに設定しています。
バージョン5.5までは、MyISAMがディフォルトです。
MyISAMはトランザクションをサポートしていません。
起動
sudo service mysqld start
セキュリティ設定スクリプトを実行
sudo mysql_secure_installation
対話式で質問されますので、赤字を入力します。
(省略) Enter current password for root (enter for none): Enter (省略) Set root password? [Y/n] Y (省略) New password: root (省略) Re-enter new password:New password: root
ローカル開発環境なので強固なパスワードでなくてもいいと思います。
残りは全て、Yを入力します。
(省略) Remove anonymous users? [Y/n] Y (省略) Disallow root login remotely? [Y/n] Y (省略) Remove test database and access to it? [Y/n] Y (省略) Reload privilege tables now? [Y/n] Y
外部ホストからの接続を許可する
本番環境では、おすすめしませんが外部ホストから接続できると何かと便利です。
rootアカウントに全てのデータベースに対して接続の権限を与えます。
grant all privileges on *.* to root@"%" identified by 'root' with grant option;
確認します。
select user, host from mysql.user; +--------+-----------+ | user | host | +--------+-----------+ | root | % | | root | 127.0.0.1 | | root | localhost | +--------+-----------+
自動起動の設定
sudo chkconfig mysqld on
タイムゾーン設定する
2616-09-28 追記
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p -D mysql
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
エラーが出たけどスキップしたらしいのでOKとした!
続いて、my.cnfを編集します。
sudo vim /etc/my.cnf
[mysqld] default-time-zone = 'Asia/Tokyo'
sudo service mysqld restart
MySQL :: MySQL 5.6 リファレンスマニュアル :: 10.6 MySQL Server でのタイムゾーンのサポート
MySQLでタイムゾーンを設定する – Qiita
よく使うviコマンド
G | 最終行に移動 |
0 | 行頭へ移動 |
$ | 行末へ移動 |
i | 左から入力開始 |
o | 下に1行挿入し入力開始 |
x | 1文字削除 |
dd | 1行削除 |
u | 直前の操作を戻す |
. | 直前の操作を繰返し |
/ | 順方向に検索 |
? | 逆方向に検索 |
n | 順方向へ次を検索 |
N | 逆方向へ次を検索 |
:w | 上書き保存 |
:wq | 保存して終了 |
:q | 終了 |
:q! | 保存せず終了 |
まとめ
今回は、一番簡単な方法でインストールしました。
以下が、パッケージのバージョンです。
Apache | 2.2.15 |
PHP | 5.3.3 |
MySQL | 5.1 |
インストールしたパッケージは、結構古いバージョンなので、一通りの構築が出来たらバージョンアップして、記事にもまとめたいと思います。