CentOS6.x LAMP環境の構築


概要

dockerのコンテナ(CentoOS 6.7)にApache/MySQL/PHP をインストールした話。
PHPは生まれて初めてなので、お作法とかディレクトリ構成がなってないと思います。

はじめに

前回作ったコンテナを早速使って行きたいと思います。
仕事でNodeJS+NginX は触ったことがあるのですが、PHP +Apacheで開発したことがありません。今の会社にいると使うことはなさそうですが、「やっぱりPHPも出来たほうが仕事の幅広がりそうだな―」という安直な理由から、PHPを使うことにしました。
私のPHPに対するイメージは

  • サーバサイドで動く
  • オブジェクト指向のプログラミングができる
  • 同期処理(コールバック地獄におちなくて済む。)

くらいです。こうやって書くとほとんどんにも知りませんね。
幸い年末年始はそんなに忙しくないので、LAMPで動く簡単なWebアプリを作ってみようと思います。

環境構築

Apacheインストール

# httpdインストール
$ yum -y install httpd
# httpd起動
$ service httpd start
# 自動起動ON
$ chkconfig httpd on

ブラウザから「http://サーバIP:30080」の表示を確認
(30080ポートなのはコンテナ作成時にホストの30080をコンテナの80に設定しているため。
   素の環境ならポート指定なしでいけるはず)

Apacheの諸々が表示されているのでOK

mysqlインストール

# mysqlインストール
$ rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
$ yum -y install mysql mysql-devel mysql-server mysql-utilities 
インストール後に/usr/bin/mysql_secure_installation を実行
/usr/bin/mysql_secure_installation
不穏なエラーメッセージが。。。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (XXXX)
↓ ぐぐったらmysql.sockを作成&mysqlの再起動でOKとのこと。
(mysql.sock というファイルが作られてないことが原因らしい。)
# mysql.sockの作成
$ touch /var/lib/mysql/mysql.sock
# mysqlサービス再起動
$ service mysqld restart 

気を取り直して再実行。
# /usr/bin/mysql_secure_installation
rootのパスワードをどうするかとか聞かれたので、いい感じに設定。
設定完了後にMySQLでshow databases ができるか確認。
# mysql実行
$ mysql -uroot -p
# ↓パスワードを尋ねられるので入力
Enter password: 
ログイン成功後に任意のSQLを実行
show databases;

データベース一覧を取得できたのでOK

PHPインストール

# PHPインストール
$ yum -y install php
# PHPバージョン確認
$ php -v

バージョンが確認出来たのでOK.
PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53) 

その他行ったこと

ドキュメントルートを下記の通り変更しました。
$ vim /etc/httpd/conf/httpd.conf 
変更前:DocumentRoot "/var/www/html/"
変更後:DocumentRoot "/var/data/src/www/php/"

#Apache再起動
$ service httpd restart
/var/data/src/www/php/views/test.php を作成。
内容は
<?php phpinfo(); ?>

といった、シンプルなもの。(phpの次バージョンとか表示できるらしいです。)
その後、ブラウザから「http://サーバアドレス:30080/views/test.php」を見に行って、
phpの諸々が表示されることを確認できました。
以上で、思いつくところの一通りの環境構築完了です。

後書き

これでガリガリ開発していける環境が整いました。
作ろうと思っているのは

  • PHPは基本的にAPI的な使い方しかしない
  • フロントからajax使ってリクエスト投げる → phpがMySQLに何かした結果をJsonで返す
  • フロントは返ってきたレスポンスを表示したりなんかしたり。
  • あとはonsenUIとかのフロントのライブラリなんか使えればなー
という感じで作っていきます。

0 件のコメント :

コメントを投稿