Lychee Photo Gallery Docker镜像无法在Railway.app部署求助
解决Railway.app部署Lychee Photo Gallery显示默认Apache页面的问题
问题分析
Apache正常启动但显示默认页面,核心原因通常是:
- Apache未启用
.htaccess解析,导致Lychee的路由规则无法生效 - Lychee所需的可写目录权限配置不足
- 代码包提取不完整或路径错误
修复步骤及修订后的Dockerfile
修订后的Dockerfile
# Base image FROM php:7.4-apache # Set the working directory WORKDIR /var/www/html # Install dependencies RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ libwebp-dev \ libzip-dev \ zip \ unzip \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install -j$(nproc) gd mysqli zip exif # Enable Apache Rewrite module and configure .htaccess support RUN a2enmod rewrite # 修改Apache配置允许.htaccess覆盖规则 RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/sites-available/000-default.conf # 确保PHP文件作为默认索引页 RUN echo "DirectoryIndex index.php index.html" >> /etc/apache2/apache2.conf # Download and install Lychee(建议使用稳定版本,此处替换为v4.10.2示例) RUN rm -rf /var/www/html/* # 使用稳定发行版替代master分支,避免开发版潜在问题 RUN curl -L https://github.com/LycheeOrg/Lychee/archive/refs/tags/v4.10.2.tar.gz | tar xz --strip-components=1 -C /var/www/html # 设置Lychee所需目录的权限 RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/public/uploads /var/www/html/public/sym RUN chmod -R 755 /var/www/html/storage /var/www/html/public/uploads /var/www/html/public/sym # Set ServerName directive RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf # Expose port 80 EXPOSE 80 # Start Apache service CMD ["apache2-foreground"]
关键修改说明
- 启用
.htaccess支持:通过sed命令修改Apache虚拟主机配置,将AllowOverride None改为AllowOverride All,确保Lychee的URL路由规则生效。 - 使用稳定发行版:替换master分支为具体稳定版本(如v4.10.2),避免开发分支的未完成功能导致异常。
- 细化权限配置:针对Lychee必须的可写目录(存储、上传目录)单独设置权限,确保Web服务用户
www-data拥有读写权限。 - 明确默认索引页:显式指定
DirectoryIndex优先加载index.php,避免Apache优先显示默认index.html。
验证与后续步骤
- 重新构建镜像并部署到Railway.app
- 查看部署日志,确认无文件提取、权限配置类错误
- 访问部署URL,此时应显示Lychee的初始化页面(需后续配置数据库连接)
内容的提问来源于stack exchange,提问作者SpicyyRiice
相关产品推荐
相关产品推荐

