Apache 和 PHP 是常见的 Web 开发组合,用于构建动态网站和应用程序。Docker 容器是一种轻量级的虚拟化技术,可以将应用程序及其依赖项打包在一起,以便在任何环境中一致地运行。
如果 Apache / PHP Docker 容器只是为 PHP 源文件提供服务,而不是正确地执行 PHP 文件,可能是以下几个原因:
确保 Apache 和 PHP 的配置文件正确无误。例如,Apache 的 httpd.conf
和 PHP 的 php.ini
文件。
# httpd.conf
LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php
DirectoryIndex index.php index.html
# php.ini
extension=php_mbstring.dll
extension=php_gd2.dll
确保 PHP 文件和目录的权限设置正确。例如,使用以下命令设置权限:
chmod -R 755 /path/to/php/files
chown -R www-data:www-data /path/to/php/files
确保所有必要的 PHP 扩展和库都已安装。例如,使用以下命令安装扩展:
apt-get update
apt-get install php7.4-mbstring php7.4-gd
确保文件路径配置正确。例如,在 Apache 配置文件中指定正确的文档根目录:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
以下是一个简单的 Dockerfile 示例,用于构建一个包含 Apache 和 PHP 的 Docker 镜像:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
apache2 \
php7.4 \
libapache2-mod-php7.4 \
php7.4-mbstring \
php7.4-gd \
&& rm -rf /var/lib/apt/lists/*
COPY . /var/www/html
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
通过以上步骤,您应该能够解决 Apache / PHP Docker 容器只是为 PHP 源文件提供服务,而不是正确地执行 PHP 文件的问题。
领取专属 10元无门槛券
手把手带您无忧上云