Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Varsayılan olarak PHP-FPM ve Nginx belirli bir kullanıcı/grup kullanır. Yapılandırma ayarlarında PHP-FPM kullanıcısı ve grubu www-data olarak, Nginx kullanıcısı ise nginx olarak ayarlanmıştır. Biz bunu bu örneğimizde inanzzz olarak değiştireceğiz.


Mevcut yapılandırma


PHP-FPM


# www.conf

...
[www]

user=www-data
group=www-data

listen.owner=www-data
listen.group=www-data

...

Nginx


# nginx.conf

...

user nginx;

...

Yeni yapılandırma


PHP-FPM


# www.conf

...
[www]

user=inanzzz
group=inanzzz

listen.owner=inanzzz
listen.group=inanzzz

...

# Dockerfile

FROM php:7.2.13-fpm

....

# Create group "inanzzz"
# set group id "1000"
RUN groupadd -g 1000 inanzzz
# Create user "inanzzz"
# set user id "1000"
# assign to existing group id "1000"
# set home directory "/home/inanzzz"
# set shell "/bin/bash"
RUN useradd -d /home/inanzzz -s /bin/bash -u 1000 -g 1000 inanzzz
# Create home directory
RUN mkdir /home/inanzzz
# User and group own home directory
RUN chown -R inanzzz:inanzzz /home/inanzzz

USER inanzzz

CMD ["php-fpm", "--nodaemonize"]

Nginx


# nginx.conf

user inanzzz;

...

# Dockerfile

FROM nginx:1.15.7

...

# Create group "inanzzz"
# set group id "1000"
RUN groupadd -g 1000 inanzzz
# Create user "inanzzz"
# set user id "1000"
# assign to existing group id "1000"
# set home directory "/home/inanzzz"
# set shell "/bin/bash"
RUN useradd -d /home/inanzzz -s /bin/bash -u 1000 -g 1000 inanzzz
# Create home directory
RUN mkdir /home/inanzzz
# User and group own home directory
RUN chown -R inanzzz:inanzzz /home/inanzzz

# Necessary steps to avoid permission errors
RUN touch /var/run/nginx.pid \
&& chown -R inanzzz:inanzzz /var/run/nginx.pid /var/cache/nginx

USER inanzzz

Yeni kullanıcı inanzzz diğer kullanıcı nginx'in ayrıcalıklarına sahip olmadığından, varsayılan 80 ve 443 portlarını kullanamayız. Aşağıdaki değişikliklerden sonra docker-compose.yml dosyasında '8081:8080' ve '4431:4443' portlarını kullanabilirsiniz.


# Site virtualhost config

server {
listen 8080;
listen 4443 default_server ssl;

...
}

Uygulama klasörü eğer docker-compose.yml dosyası içindeki paylaşılan bir klasör olarak ayarlanmışsa, yeni kullanıcının bu uygulamanın sahibi olması için /home/inanzzz bölümünü paylaşılan klasör olarak değiştirebilirsiniz.