LoginSignup
12
15

More than 5 years have passed since last update.

Dockerを使ってアプリケーションサーバーをたててみたときのメモ

Last updated at Posted at 2016-11-13

初めに

やること

DockerのCentosのイメージから、
phpとphalconを入れて、Congratulations!を表示させる。

ホスト側環境

Dockerはインストール済みということで。
foderaでやってます

cat /etc/redhat-release

->Fedora release 24 (Twenty Four)

開始!

Centosに諸々を入れる的なDockefile

中身はこんな感じ

FROM centos:7
RUN yum -y update && \
#git
yum install -y git && \
#epel
yum -y install epel-release && \

#remi
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm  && \

#httpd
yum -y install httpd && \

#php7
yum -y install --enablerepo=remi-php70 php && \

#関連モジュール
yum -y install --enablerepo=remi-php70 php-devel php-pear && \
yum -y install --enablerepo=remi-php70 php-mysqlnd php-mbstring && \

#Zephir
yum -y install --enablerepo=remi-php70 zephir && \

#phalcon3
yum -y install --enablerepo=remi-php70 php-phalcon3 && \

#Phalcon Devtools
git clone https://github.com/phalcon/phalcon-devtools.git /usr/local/src/phalcon-devtools && \
#コマンド化
ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/bin/phalcon && \
chmod ugo+x /usr/bin/phalcon

EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

ビルド

docker build -t phalcon3 ./

起動

docker run -d -p 80:80 --name testp3 phalcon3
docker exec -it testp3 /bin/bash

phalconプロジェクト作成

cd /var/www/html && phalcon create-project phalcon

1.ドキュメントルートをいじる

(もっといい方法があるはず。。)

vi /etc/httpd/conf/httpd.conf
150行目くらいにデフォルトのドキュメントルートの設定箇所がある
↓
# Further relax access to the default document root:
ここの、AllowOverrideの設定を
AllowOverride Noneから
AllowOverride Allに変更する

2.権限変える

apacheに所有権渡して、ついでにその他がアクセス出来無いようにする。
@3upjpさんありがとうございました!)

cd /var/www/html/
ls -l

権限はrootなので、、

chown -R apache:apache /var/www/html/
find /var/www/html/ -type d -exec chmod 770 {} \;
find /var/www/html/ -type f -exec chmod 660 {} \;

もう一回見てみると。。

ls -l

apacheに変わった!!(感動!)

3.抜けて、再起動

exitして、、
docker stop コンテナ
docker start コンテナ

コンテナのアドレス確認

docker inspect --format="{{ .NetworkSettings.IPAddress }}" コンテナID

ブラウザで上記アドレスにリクエスト(ip/phalcon/にリクエスト)
Congratulations!みたいなやつが出たら成功。
終わり!
次回はDBサーバーと連携させたい!

感想。

(よくわからないのも含めて、今後の課題など)

selinuxの使いどころがわからん。。
--privilegedオプションがうまくいかない時があったりと、
vitualboxとかでやった方がええんかなとか思ったりした。

virtualhostとかapacheのアクセス許可とかその辺弱いわ。。
分からんこと多い。

apacheの再起動するのにコンテナストップさせるとかイケてない気が。。

nginxでやりたかった。とりあえず詰まりまくったので、後日!

参考サイト

Phalcon 3.0.1 ドキュメント
Phalconインストール(CentOS7.2 + PHP7.0)
Dockerでつくる開発環境【php-fpmコンテナ編】
CentOS7.1でnginxを用いたウェブサーバの構築
CentOS7(Vagrant)でPHP7+Phalcon3環境を構築する
CentOS7.0にPhalconのインストール
web開発のためのapacheやコンテンツディレクトリのパーミッション関連まとめ

12
15
4

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
12
15