初めに
やること
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環境を構築する]
(http://qiita.com/shiromegane/items/b782ce64f5c54fd54a60)
[CentOS7.0にPhalconのインストール]
(http://w.builwing.info/2015/03/31/centos7-0%E3%81%ABphalcon%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/)
[web開発のためのapacheやコンテンツディレクトリのパーミッション関連まとめ]
(http://egapool.hatenablog.com/entry/2013/11/29/184300)