Docker在Ubuntu 16.04上安装php5.6和lighttpd

时间:2019-03-01 11:23:09

标签: php linux docker ubuntu lighttpd

由于Ubuntu 14.04的停产,我试图从14.04迁移到16.04。 不幸的是,默认情况下16.04 LTS支持php 7,而我们的代码库是用PHP 5编写的。 Xenial不再支持与PHP 5相关的库,例如php5-cgi php5-mysql php5-curl。 因此,我正在尝试使用PHP 5.6,以便暂时不更改代码。

我的Docker文件具有以下代码,仅安装lighttpd和php5.6。

FROM ubuntu:16.04

RUN apt-get update -y

ENV DEBIAN_FRONTEND noninteractive

安装php5.6和Web服务器

RUN apt-get purge `dpkg -l | grep php| awk '{print $2}' | tr "\n" " "` \
    && apt-get install -y software-properties-common \
    && LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php \
    && apt-get update -y \
    && apt-get purge --auto-remove ubuntu-core-launcher \
    && apt-get install -y lighttpd php5.6 php5.6-fpm php5.6-cgi

RUN apt-get install -y vim net-tools

RUN mkdir /srv/app && mkdir /srv/run

WORKDIR /srv/app

ADD . /srv/app

更改lighttpd文件的权限

RUN chmod -R 777 /var/log/lighttpd && chmod -R 777 /var/cache/lighttpd && chmod -R 775 /srv/run
RUN touch /srv/run/lighttpd.pid && chmod 777  /srv/run/lighttpd.pid

lighttpd配置

RUN sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/5.6/fpm/php.ini

RUN sed -i -e "s/server.document-root/#server.document-root/g" /etc/lighttpd/lighttpd.conf \
    && sed -i -e 's/\/var\/run\/lighttpd.pid/\/srv\/run\/lighttpd.pid/g' /etc/lighttpd/lighttpd.conf \
    && sed -i -e "s/80/8888/g" /etc/lighttpd/lighttpd.conf \
    && echo "server.document-root = \"/srv/app\"" >> /etc/lighttpd/lighttpd.conf \
    && echo "server.network-backend = \"writev\"" >> /etc/lighttpd/lighttpd.conf \
    && echo "server.modules += (\"mod_fastcgi\")" >> /etc/lighttpd/lighttpd.conf

EXPOSE 8888

ENTRYPOINT ["lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"]

运行命令:docker run -d -p 8888:8888 test-image:4.0

我有一个index.html –工作文件夹中的Hello world代码,运行后,我可以在localhost:8888 / index.html上获取index.html。 我也有一个显示phpinfo()的index.php,当我尝试localhost:8888 / index.php时,出现403 Forbidden错误。

我还尝试在Dockerfile中添加以下行,

RUN mv /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled

RUN sed -i -e "s/php-cgi/php-cgi5.6/g" /etc/lighttpd/conf-enabled/15-fastcgi-php.conf

构建并运行后,服务器立即退出, docker ps -a的状态为退出(0)。

如果有人可以帮助我弄清楚如何使用此docker配置运行我的php代码,这将很有帮助。 谢谢。

0 个答案:

没有答案