概要
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_installationrootのパスワードをどうするかとか聞かれたので、いい感じに設定。
設定完了後に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 件のコメント :
コメントを投稿