Alpine Linuxにapache web serverを入れる
September 26, 2020
linux AlpineLinux webサーバーはじめに
当方は、サーバ上に必要なだけいくつでも(ポートを変えて)webサーバーを立ち上げればいいと考えている口なので、webサーバーはdocker composeでインストールします。
本ドキュメントはAlpine Linuxにapache web serverをインストールした手順をまとめています。
インストール
apache web serverをdocker composeでインストールします。インストール先のOSはAlpine Linuxを想定していますが、docker composeでインストールするので、dockerを入れたLinuxならば、どれでも大丈夫だと思います。
以下の記事を参考にしました。docker-composeファイルはこのサイトの丸コピーです。 Webサーバだけでなく、よく使うphpやdbもまとめて立ち上がるので便利です。
【参考】
https://qiita.com/naente_dev/items/d259ea84c172deeff7d8
docker-compose で PHP7.2 + Apache + MySQL + phpMyAdmin 環境を構築
version: '3'
services:
php:
image: php:7.2-apache
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./html:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
restart: always
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=test
- PMA_PASSWORD=test
links:
- mysql
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
restart: always
dbの名前やユーザ名、パスワードは適宜変更してください。 ポートは8080で起動していますが、必要に応じて変更します。
apache web server起動
$ docker compose up -d
ホームページ作成
$ vi ./html/index.html
以上でWebサーバが起動しました。
動作確認
http://centos7:8080/
ホームページ
http://centos7:4040/
phpMyAdmin
プロキシサーバ機能の追加
iPhoneから自宅LAN内のサーバにアクセスする場合、iPhoneではhostsファイルを設定できないのでプロキシサーバで名前解決する必要があります。(自宅LAN内dnsを立てるとその限りではありませんが。)
プロキシポート:8888
でプロキシサーバを設定すします。
LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
<IfModule proxy_html_module>
Include /etc/apache2/proxy-html.conf
</IfModule>
<IfModule mod_proxy.c>
ProxyRequests On
ProxyVia On
Listen 8888
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
</IfModule>
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.27.0.2 450ce809bc23
192.168.1.2 centos7
192.168.1.1 rt-500ki
docker-compose.yml 追加部分
services:
php:
volumes:
- ./apache2/apache2.conf:/etc/apache2/apache2.conf
- ./apache2/proxy-html.conf:/etc/apache2/proxy-html.conf
- ./apache2/hosts:/etc/hosts
ports:
- 8888:8888
以上設定し、docker composeで再起動すると、プロキシが有効になります。
iPhoneでのプロキシの設定例
設定 >> Wifi
接続中のWifiの、〇の中に「i」の青いアイコンをクリック >> プロキシを構成
サーバのipアドレスとプロキシのポート番号を設定する。
これで、家庭内LANからwebサーバに、サーバ名でアクセスできるようになる。