หาเรื่องให้ทำจริงๆ Docker PHP5.3 + Apache2.2 Old School สุดๆ
อยู่เฉยๆ มันก็มีคนหาเรื่องให้ทำ อย่าหาทำแบบนี้เด้อสู มันเหนื่อยยยยยยยยยย
Dockerfile
FROM httpd:2.2
COPY ./sources.list /etc/apt/sources.list
RUN apt-get update
RUN apt-get install debian-archive-keyring
RUN apt-get update && apt-get install -y --force-yes debian-archive-keyring mysql-client libmysqlclient-dev gcc libxml2-dev make curl vim
COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf
RUN curl -o php-5.3.29.tar.gz https://museum.php.net/php5/php-5.3.29.tar.gz
RUN tar -zxvf php-5.3.29.tar.gz
RUN cd php-5.3.29 && ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli=/usr/bin/mysql_config && make && make install
COPY ./php.ini /usr/local/apache2/php-5.3.29/php.ini
COPY ./index.html /usr/local/apache2/htdocs/index.html
COPY ./index.php /usr/local/apache2/htdocs/index.php
EXPOSE 80
CMD ["httpd-foreground"]
sources.list
deb http://archive.debian.org/debian/ jessie main non-free contrib
deb-src http://archive.debian.org/debian/ jessie main non-free contrib
deb http://archive.debian.org/debian-security/ jessie/updates main non-free contrib
deb-src http://archive.debian.org/debian-security/ jessie/updates main non-free contrib
httpd.conf(เพิ่มโค้ดชุดนี้เข้าไป)
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
PHPIniDir "/usr/local/apache2/php-5.3.29"
ใช้คำสั่ง
docker run --rm <CONTAINER_NAME> cat /usr/local/apache2/conf/httpd.conf > httpd.conf
จะได้ไฟล์โหลดลงมาใน WSL ที่อยู่ในเครื่องเรา
ก่อนจะเริ่ม ขอกราบขอบพระคุณ
- ตัวอย่าง dockerfile จาก docker-lamp-demo/Dockerfile at master · wakproductions/docker-lamp-demo · GitHub
- อัพเดท sources.list จาก jessie repository - Debian User Forums
เริ่มอธิบายได้
เริ่มจาก Base บน httpd:2.2 แต่เนื่องจากมันเก่าไปหน่อย เลยต้องอัพเดท sources.list กันบ้าง(ปล.ในอนาคตอาจจะมีเปลี่ยนไปอีก เดี๋ยวค่อยว่ากันอีกที) จากนั้นมันถึงจะ apt-get update อะไรต่างๆนาๆได้
เสร็จแล้วก็โหลดไฟล์ PHP จากใน Museum ผ่าน curl มาแตกไฟล์แล้วทำการ ./configure ตามด้วยก๊อบไฟล์ index.html + index.php ขึ้นไปเทส(จังหวะนี้ทดสอบแค่ phpinfo() พอละ)
Comments
Post a Comment