I am trying to create a podman compose of NGINX and PHP:FPM. I was able to get NGINX to work on its own using the docker.io./bitnami/nginx
image. I gotten close I believe to getting the PHP:FPM to work also but due to an issue with NGINX not cooperating with the PHP:FPM.
In the logs of the NGINX container, I get this error every time I load localhost:8080 in the browser…
10.89.4.2 - - [24/Jul/2024:20:18:35 +0000] "GET / HTTP/1.1" 404 47 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" "-"
2024/07/24 20:18:35 [error] 44#44: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 10.89.4.2, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://10.89.4.3:9000", host: "localhost:8080"
And when I load localhost:8080 in the browser, it displays a blank page which says “File not found.”.
I am using podman 5.1.2 on Linux Mint 21.3. My goal is to simply NGINX and PHP to work, to be able to have a web server that can use PHP.
Any advice would be most appreciated.
Directory structure
nginx-php/
compose.yml
nginx.conf
php.dockerfile
php.ini
www/
public/
compose.yml
version: '3'
networks:
app-tier:
driver: bridge
services:
nginx:
image: docker.io/bitnami/nginx
volumes:
- ./nginx.conf:/opt/bitnami/nginx/conf/server_blocks/my_server_block.conf:ro
- .:/app/
networks:
- app-tier
ports:
- 8080:8080
php:
build:
context: .
dockerfile: php.dockerfile
volumes:
- .:/app/
networks:
- app-tier
nginx.conf
server {
server_name localhost;
listen 0.0.0.0:8080;
root /app/www/public;
index index.php index.html index.htm;
autoindex on;
location / {
try_files $uri $uri/index.php;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
php.dockerfile (Will like to get debugging and databases to work later on…)
FROM docker.io/bitnami/php-fpm
# Install xdebug for nicer error messages and debugging
# RUN pecl install xdebug
# RUN docker-php-ext-enable xdebug
# Install mysqli
# RUN docker-php-ext-install mysqli
# RUN docker-php-ext-enable mysqli
# Install PDO
# RUN docker-php-ext-install pdo pdo_mysql
php.ini (Will like to get debugging and databases to work later on…)
[PHP]
extension=mysqli
extension=pdo_mysql
; xdebug settings for debugging
zend_extension=xdebug
xdebug.start_with_request = yes
xdebug.client_host=xdebug://gateway