Phalcon 安装在 Docker
Phalcon Installation In Docker
我正在尝试在 docker 中安装 phalcon,但我不知道该怎么做。
我正在网上搜索解决方案,但无法解决问题。
我为 windows 成功安装了 docker,它似乎工作正常,但我找不到安装 docker 的方法。
任何人都可以帮我在 docker 中安装 phalcon 吗?
提前致谢
可以通过Dockerfile安装
请根据您的操作系统获取此 link
https://github.com/phalcon/dockerfiles
另外你可以通过回购
https://hub.docker.com/u/phalconphp
您可以创建一个为您编译 Phalcon 的 Dockerfile:
FROM php:7.2-fpm
ENV PHALCON_VERSION=3.4.2
RUN curl -sSL "https://codeload.github.com/phalcon/cphalcon/tar.gz/v${PHALCON_VERSION}" | tar -xz \
&& cd cphalcon-${PHALCON_VERSION}/build \
&& ./install \
&& cp ../tests/_ci/phalcon.ini $(php-config --configure-options | grep -o "with-config-file-scan-dir=\([^ ]*\)" | awk -F'=' '{print }') \
&& cd ../../ \
&& rm -r cphalcon-${PHALCON_VERSION}
如果您正在寻找带有 phalcon 3.4.2 的 php7+apache+mysql 那么这是我的解决方案。对于 phalcon 4,需要完成安装 psr 等附加步骤,否则它会给出所需依赖项的错误。
考虑以下结构并相应地放置文件
docker-compose.yml
www(directory where you will put your code)
index.php
.docker(目录)
Dockerfile
转储(用于保存您的 mysql 数据的目录)
这是您要放入 .docker 目录中的 Dockerfile
FROM php:7.1.2-apache
RUN docker-php-ext-install pdo_mysql
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list # Now archived
RUN apt update
RUN apt install -y \
apt-transport-https \
lsb-release \
ca-certificates \
wget \
curl \
nano \
dialog \
net-tools \
git \
sudo \
openssl \
libpcre3-dev
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
RUN apt update && apt install -y \
php7.1-curl \
php7.1-mbstring \
php7.1-gettext \
php7.1-gd \
php7.1-fileinfo \
php7.1-json \
php7.1-mcrypt \
php7.1-redis \
php7.1-intl \
php7.1-xml \
php7.1-zip
ARG PHALCON_VERSION=3.4.2
ARG PHALCON_EXT_PATH=php7/64bits
RUN set -xe && \
# Compile Phalcon
curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) ${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} && \
# Remove all temp files
rm -r \
${PWD}/v${PHALCON_VERSION}.tar.gz \
${PWD}/cphalcon-${PHALCON_VERSION}
RUN a2enmod rewrite
这将是给你的 php 和 phalcon 设置以及 apache
你可以使用 docker compose to 运行 所有你需要的容器来组成你的应用程序
这是您的 docker-compose 文件
version: "2"
services:
www:
build: ./.docker
ports:
- "8001:80"
volumes:
- ./www:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:5.7.13
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
之后只需在 www
中添加 index.php
<?php echo phpinfo();?>
在此之后 localhost:8001 应该可以访问.. 编码愉快。以及是否需要对此进行任何改进。请让我知道。到目前为止,这个对我和我的第一个 phalcon 配置来说非常酷。浪费了很多时间.....
对于 phalcon,在相同的 hardware/cpu 上编译很重要。或者你将标志传递给
phpize \
&& ./configure CFLAGS="-O2 -g" \
&& make -B \
&& make install
不确定是否仍然相关但在这里
https://keepforyourself.com/coding/php/how-to-setup-phalcon-framework-in-a-docker-container-v2/
有这个解决方案
FROM alpine:latest
RUN apk add --no-cache \
apache2-proxy \
apache2-ssl \
apache2-utils \
curl \
git \
logrotate \
openssl \
git bash php php7-dev apache2 gcc \
libc-dev make php7-pdo php7-json \
php7-session php7-pecl-psr \
php7-apache2
WORKDIR /
RUN git clone --depth=1 "git://github.com/phalcon/cphalcon.git"
WORKDIR /cphalcon/build
RUN ./install
RUN echo "extension=phalcon.so" > /etc/php7/conf.d/phalcon.ini
RUN apk del libc-dev zlib-dev php7-dev libedit-dev musl-dev pcre2-dev ncurses-dev \
expat xz-libs curl musl-utils make libedit zlib ncurses-libs libstdc++ pcre git bash musl argon2-libs
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
RUN rm -rf /cphalcon
WORKDIR /var/www/localhost/htdocs
RUN echo "<?php phpinfo(); ?>" > /var/www/localhost/htdocs/index.php
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
我正在尝试在 docker 中安装 phalcon,但我不知道该怎么做。
我正在网上搜索解决方案,但无法解决问题。
我为 windows 成功安装了 docker,它似乎工作正常,但我找不到安装 docker 的方法。
任何人都可以帮我在 docker 中安装 phalcon 吗?
提前致谢
可以通过Dockerfile安装 请根据您的操作系统获取此 link https://github.com/phalcon/dockerfiles
另外你可以通过回购 https://hub.docker.com/u/phalconphp
您可以创建一个为您编译 Phalcon 的 Dockerfile:
FROM php:7.2-fpm
ENV PHALCON_VERSION=3.4.2
RUN curl -sSL "https://codeload.github.com/phalcon/cphalcon/tar.gz/v${PHALCON_VERSION}" | tar -xz \
&& cd cphalcon-${PHALCON_VERSION}/build \
&& ./install \
&& cp ../tests/_ci/phalcon.ini $(php-config --configure-options | grep -o "with-config-file-scan-dir=\([^ ]*\)" | awk -F'=' '{print }') \
&& cd ../../ \
&& rm -r cphalcon-${PHALCON_VERSION}
如果您正在寻找带有 phalcon 3.4.2 的 php7+apache+mysql 那么这是我的解决方案。对于 phalcon 4,需要完成安装 psr 等附加步骤,否则它会给出所需依赖项的错误。 考虑以下结构并相应地放置文件
docker-compose.yml
www(directory where you will put your code)
index.php
.docker(目录)
Dockerfile
转储(用于保存您的 mysql 数据的目录)
这是您要放入 .docker 目录中的 Dockerfile
FROM php:7.1.2-apache
RUN docker-php-ext-install pdo_mysql
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list # Now archived
RUN apt update
RUN apt install -y \
apt-transport-https \
lsb-release \
ca-certificates \
wget \
curl \
nano \
dialog \
net-tools \
git \
sudo \
openssl \
libpcre3-dev
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
RUN apt update && apt install -y \
php7.1-curl \
php7.1-mbstring \
php7.1-gettext \
php7.1-gd \
php7.1-fileinfo \
php7.1-json \
php7.1-mcrypt \
php7.1-redis \
php7.1-intl \
php7.1-xml \
php7.1-zip
ARG PHALCON_VERSION=3.4.2
ARG PHALCON_EXT_PATH=php7/64bits
RUN set -xe && \
# Compile Phalcon
curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) ${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} && \
# Remove all temp files
rm -r \
${PWD}/v${PHALCON_VERSION}.tar.gz \
${PWD}/cphalcon-${PHALCON_VERSION}
RUN a2enmod rewrite
这将是给你的 php 和 phalcon 设置以及 apache 你可以使用 docker compose to 运行 所有你需要的容器来组成你的应用程序 这是您的 docker-compose 文件
version: "2"
services:
www:
build: ./.docker
ports:
- "8001:80"
volumes:
- ./www:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:5.7.13
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
之后只需在 www
中添加 index.php<?php echo phpinfo();?>
在此之后 localhost:8001 应该可以访问.. 编码愉快。以及是否需要对此进行任何改进。请让我知道。到目前为止,这个对我和我的第一个 phalcon 配置来说非常酷。浪费了很多时间.....
对于 phalcon,在相同的 hardware/cpu 上编译很重要。或者你将标志传递给
phpize \
&& ./configure CFLAGS="-O2 -g" \
&& make -B \
&& make install
不确定是否仍然相关但在这里 https://keepforyourself.com/coding/php/how-to-setup-phalcon-framework-in-a-docker-container-v2/ 有这个解决方案
FROM alpine:latest
RUN apk add --no-cache \
apache2-proxy \
apache2-ssl \
apache2-utils \
curl \
git \
logrotate \
openssl \
git bash php php7-dev apache2 gcc \
libc-dev make php7-pdo php7-json \
php7-session php7-pecl-psr \
php7-apache2
WORKDIR /
RUN git clone --depth=1 "git://github.com/phalcon/cphalcon.git"
WORKDIR /cphalcon/build
RUN ./install
RUN echo "extension=phalcon.so" > /etc/php7/conf.d/phalcon.ini
RUN apk del libc-dev zlib-dev php7-dev libedit-dev musl-dev pcre2-dev ncurses-dev \
expat xz-libs curl musl-utils make libedit zlib ncurses-libs libstdc++ pcre git bash musl argon2-libs
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
RUN rm -rf /cphalcon
WORKDIR /var/www/localhost/htdocs
RUN echo "<?php phpinfo(); ?>" > /var/www/localhost/htdocs/index.php
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]