deci rulez un server ubuntu 20.04, cu Nginx pe el.
După o săptămână grea, am reușit să o fac să ruleze normal, inclusiv php prin php-fpm.
Problema mea este că nu vreau sute de foldere în rădăcina site-ului meu web (setat la /var/www/www.my-domain.com/), așa că aș dori să pun toate extensiile legate de php pe care le instalez (cum ar fi ca phpmyadmin și IceCoder până acum) într-un alt folder (să spunem /var/php/) și leagă toate cererile de index php din folderul rădăcină (ca dacă aș tasta https://domeniul-meu.com/icecoder sau https://my-domain.com/phpmyadmin) pentru a mă redirecționa către folderul în care sunt fișierele lor index.php.
Problemele cu asta sunt:
- mai întâi, nu știu cum să fac legătura simbolică să funcționeze (cunosc comanda „ln -s target destination”) dar nu funcționează niciodată.
- în al doilea rând, că nu știu cum să configurez fișierul default.conf pentru a face acest lucru.
Am încercat să fac un simplu index.php cu <?php phpinfo();?>
într-un folder /php din folderul meu rădăcină, dar când îl accesez prin browser, primesc o eroare „No file input setup”. Dacă încerc să accesez doar folderul menționat (de exemplu https://domeniul-meu.com/icecoder) Ajung pe site-ul meu, iar pentru acesta, adresa directă la acest fișier index.php funcționează... doar că primesc o stare „de lucru” pentru ore, textul dar nu css. Instrumentele de dezvoltare nici măcar nu se încarcă.
Iată fișierele mele de configurare (domeniul meu real este anonimizat sub domeniul meu):
nginx.conf
utilizator www-date;
worker_proceses auto;
error_log /var/log/nginx/error.log notificare;
pid /var/run/nginx.pid;
evenimente {
conexiuni_muncitor 1024;
}
http {
includ /etc/nginx/mime.types;
#include /etc/nginx/sites-available/*.conf;
#default_type application/octet-stream;
#root /var/www;
log_format principal „$remote_addr - $remote_user [$time_local] „$request” '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log principal;
sendfile activat;
#tcp_nopush on;
keepalive_timeout 65;
#gzip activat;
includ /etc/nginx/conf.d/*.conf;
}
implicit.conf
Server {
nume_server domeniul_meu.com;
#access_log /var/log/nginx/host.access.log principal;
root /var/www/www.my_domain.com;
index index.html index.php;
Locație / {
try_files $uri /index.html index.php =404;
}
# redirecționează paginile de eroare ale serverului către pagina statică /50x.html
#
pagina_eroare 500 502 503 504 /50x.html;
locație = /50x.html {
root /var/www/www.my_domain.com;
}
error_page 404 /40x.html;
locație = /40x.html {
root /var/www/www.my_domain.com;
}
# proxy scripturile PHP către Apache care ascultă pe 127.0.0.1:80
#
#locație ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# treceți scripturile PHP către serverul FastCGI care ascultă pe 127.0.0.1:9000
#
locație ~ [^/]\.php(/|$) {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param PHP_VALUE open_basedir="/var/www/www.my_domain.com/:/var/www/www.my_domain.com/php/";
include fastcgi_params;
}
# Parametrul SCRIPT_FILENAME este utilizat pentru determinarea PHP FPM
# numele scriptului. Dacă nu este setat în fișierul fastcgi_params,
# adică /etc/nginx/fastcgi_params sau în contextele părinte,
# vă rugăm să comentați pe următorul rând:
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
locație ~ /\.{ # le "~" indique une regex que "/" démarre, ici tout ce qui a un "." alt php sau html
nega totul;
access_log off;
log_not_found off;
}
asculta 443 ssl; # gestionat de Certbot
ssl_certificate /etc/letsencrypt/live/my_domain.com/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/my_domain.com/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
asculta 80;
nume_server www.domeniul_meu.com;
returnează 301 https://$server_name$request_uri; # redirecționează solicitările http către site-ul web https
}
Server {
asculta 80;
asculta 443 ssl;
nume_server domeniul_meu.com;
returnează 301 http://www.my_domain.com$request_uri;
}
aici este un ls -l al folderului rădăcină
-rw-r--r-- 1 www-data www-data 507 21 sept 20:03 40x.html
-rw-r--r-- 1 www-data www-data 507 21 sept 20:04 50x.html
drwxr-xr-x 6 www-data www-data 4096 26 august 23:45 active
-rw-r--r-- 1 www-data www-data 83243 Aug 27 02:19 favicon.ico
-rw-r--r-- 1 www-data www-data 25942 Aug 27 02:19 favicon.png
drwxr-xr-x 13 www-data www-data 4096 21 septembrie 17:34 ICE
-rw-r--r-- 1 www-data www-data 63175 21 septembrie 15:58 index.html
-rw-r--r-- 1 www-data www-data 19 sep 20 22:24 index.php
drwxr-xr-x 2 www-data www-data 4096 27 august 00:31 întreținere
drwxr-xr-x 15 www-data www-data 4096 21 septembrie 16:08 pagini
lrwxrwxrwx 1 root root 12 septembrie 21 21:36 php -> /var/www/php
drwxr-xr-x 6 www-data www-data 4096 8 septembrie 16:13 secțiuni
și a folderului /var/php
drwxr-xr-x 13 www-data www-data 4096 21 septembrie 17:34 icecoder
-rw-r--r-- 1 www-data www-data 19 sep 21 21:39 index.php
lrwxrwxrwx 1 root root 12 septembrie 21 21:48 php -> /var/www/php
drwxr-xr-x 2 www-data www-data 4096 21 septembrie 21:37 phpmyadmin
Toate folderele mele sunt în 755 și fișierele din interior în 644 mod.
Vă mulțumesc pentru orice ajutor pe care mi-l puteți oferi