Problemă permisiune & 404 în WordPress via Nginx

Salut. :wave:

Pentru început, folosesc CentOS 8.1 și DirectAdmin ca panou de control iar recent am trecut de la Apache la Nginx, însă m-am lovit de două probleme:

  1. Nu pot instala nimic din WordPress admin din cauza unor permisiuni:


Am încercat să selectez prin FTP:

  • Foldere: 755
  • Fișiere: 644

…și prin SSH:

chown www-data /home/admin/domains/site.com/public_html
chgrp www-data /home/admin/domains/site.com/public_html
chmod g+w /home/admin/domains/site.com/public_html

Nu funcționează.


  1. Am o eroare 404 Not Found (Nginx) la toate link-urile permanente, însă dacă le dezactivez, funcționează corect.

Din ce am citit pe Google, trebuie să adaug în nginx.conf:

location / {
try_files $uri $uri/ /index.php?$args;
}

Dar nici asta nu funcționeză. O mână de ajutor? :smiley:

$ getenforce

Dacă zice Enforcing atunci:

$ chcon -R -t httpd_sys_content_t  /home/admin/domains/site.com/public_html
1 Like

Comenzile trebuie rulate recursiv, altfel dai drepturi doar la directorul părinte. De genul:

find /home/admin/domains/site.com/public_html -type f -exec chmod 644 {} ';'
find /home/admin/domains/site.com/public_html -type d -exec chmod 755 {} ';'
chown -R www-data:www-data /home/admin/domains/site.com/public_html

Şi vezi şi ce zice @Cornel de SELinux, dezactivează-l temporar de probă, să fii sigur că problema nu-i din el:

setenforce  0
1 Like

LE: uite mai in detaliu (e pt CentOS 7):
https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

@Cornel

[root@server1 ~]# getenforce
Permissive

Mulțumesc @serghei, a funcționat însă cu o mențiune pentru cei care vor întâmpina această problemă:

chown -R admin:admin /home/admin/domains/site.com/public_html

Pentru că www-data este pentru Ubuntu iar eu foloseam CentOS. :man_facepalming:


Cu eroarea 404 Not Found (Nginx) care este rezolvarea? În tot Google-ul, rezolvarea este aceasta:

location / {
try_files $uri $uri/ /index.php?$args;
}

Însă nu funcționează.