หาเรื่องให้ทำจริงๆ Docker PHP5.3 + Apache2.2 Old School สุดๆ
อยู่เฉยๆ มันก็มีคนหาเรื่องให้ทำ อย่าหาทำแบบนี้เด้อสู มันเหนื่อยยยยยยยยยย
FROM httpd:2.2
COPY ./sources.list /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y --force-yes software-properties-common
RUN apt-get install -y --force-yes debian-archive-keyring build-essential gcc make re2c vim procps file git
RUN apt-get install -y --force-yes mysql-client imagemagick libmysqlclient-dev libxml2-dev libpng-dev libjpeg-dev libxv-dev curl libcurl4-openssl-dev libcurl3 libcurl3-dev libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libxml2 libsnmp-base libxml2-dev libsnmp-dev libjpeg62 libpng12-0 libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev libbz2-dev libmcrypt-dev libmcrypt4
RUN apt-get install -y --force-yes php5-dev php5-curl php5-imagick
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 --enable-mbstring --enable-zip --enable-exif --with-curl=/usr/bin/curl --with-zlib --with-mysql --with-mysqli=/usr/bin/mysql_config --with-pdo-mysql --with-xsl --with-xmlrpc --with-snmp --with-bz2 --with-mcrypt --with-gd --with-jpeg-dir --with-png-dir && 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"]
deb [trusted=yes] http://archive.debian.org/debian/ jessie main non-free contrib
deb-src http://archive.debian.org/debian/ jessie main non-free contrib
deb [trusted=yes] 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 - ตัวอย่างการติดตั้ง php5.3 บน Ubuntu
BrandonSavage.net Installing PHP 5.3 On Ubuntu - BrandonSavage.net
อธิบายคร่าวๆ
เริ่มจาก Base บน httpd:2.2 แต่เนื่องจากมันเก่าไปหน่อย เลยต้องอัพเดท sources.list กันบ้าง(ปล.ในอนาคตอาจจะมีเปลี่ยนไปอีก เดี๋ยวค่อยว่ากันอีกที) จากนั้นมันถึงจะ apt-get update อะไรต่างๆนาๆได้
เสร็จแล้วก็โหลดไฟล์ PHP จากใน Museum ผ่าน curl มาแตกไฟล์แล้วทำการ ./configure ตามด้วยก๊อบไฟล์ index.html + index.php ขึ้นไปเทส(จังหวะนี้ทดสอบแค่ phpinfo() พอละ)
เอาแค่ให้มันรู้ก็พอว่ารันได้ เดี๋ยว config ค่าอะไรต่างๆนาๆค่อยไปปรับอีกทีละกัน
[Update@05/02/2025] ตัวอย่างประมาณนี้ ลองแกะๆดูได้ครับ
Comments
Post a Comment