2016-12-19 3 views
0

Le système est Fedora 25, avec Nginx 1.10.2 et PHP 7.0.14 fonctionnent en mode CGI.Faire fonctionner phpMyAdmin comme un alias dans Nginx + PHP-FPM

J'utilise dnf pour installer phpMyAdmin, l'emplacement est /usr/share/phpMyAdmin, donc j'essaie de le laisser fonctionner comme alias dans multi-site Web.

location /phpmyadmin { 
    alias /usr/share/phpMyAdmin; 
    include fastcgi_php.conf; 
} 

Et j'ajoute l'emplacement dans open_basedir.

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/usr/share/phpMyAdmin/:/var/lib/phpMyAdmin/:/etc/phpMyAdmin/:/usr/share/php:/usr/bin/pear:/dev/null:/var/lib/php"; 

Je l'URL et ouvrir le spectacle journal ce message:

2016/12/19 17:52:05 [error] 2241#0: *2 FastCGI sent in stderr: "Unable to open primary script: /usr/share/phpMyAdmin/phpmyadmin/index.php (No such file or directory)" while reading response header from upstream, client: 1.1.1.1, server:1.1.1.1 , request: "GET /phpmyadmin/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:" 

Comment la rendre correcte et le travail? Je vous remercie!

Mise à jour:

Je pense que peut-être causer par fastcgi_param, afin de résoudre le problème de la page blanche en PHP FastCGI, j'ajouter 2 ligne dans ce fichier.

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; 

nginx.conf:

user nginx nginx; 
worker_processes 2; 
pid /run/nginx.pid; 

include /etc/nginx/modules-enabled/*.conf; 

events { 
    use epoll; 
    worker_connections 2048; 
    multi_accept on; 
} 

http { 
    log_format main '$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 main; 
    error_log /var/log/nginx/error.log; 
    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 
    geoip_country /usr/share/GeoIP/GeoIP.dat; 

    charset UTF-8; 
    sendfile on; 
    send_timeout 10; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 30; 
    server_tokens off; 
    client_header_timeout 10; 
    client_max_body_size 64M; 
    client_body_timeout 10; 
    client_body_buffer_size 256k; 
    open_file_cache max=102400 inactive=20s; 
    open_file_cache_valid 30s; 
    open_file_cache_min_uses 5; 
    open_file_cache_errors off; 
    types_hash_max_size 4096; 
    reset_timedout_connection on; 
    fastcgi_buffers 16 32k; 
    fastcgi_buffer_size 32k; 
    fastcgi_intercept_errors on; 
    gzip on; 
    gzip_disable "msie6"; 
    gzip_vary on; 
    gzip_proxied any; 
    gzip_min_length 1024; 
    gzip_comp_level 6; 
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

fastcgi_php.conf:

location ~ \.php$ { 
    fastcgi_split_path_info ^(.+?\.php)(/.*)?$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    include fastcgi_params; 
} 

website.conf:

server { 
listen 443 ssl; 
server_name test.domain.com; 
root /var/www/site1; 
index index.html index.php; 
access_log /var/log/site1-access.log combined; 
error_log /var/log/site1-error.log warn; 
ssl_certificate /etc/nginx/ssl/xxx.crt; 
ssl_certificate_key /etc/nginx/ssl/xxx.key; 
ssl_dhparam /etc/nginx/ssl/dhparams.pem; 
ssl_session_cache shared:SSL:10m; 
ssl_session_timeout 10m; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 
ssl_prefer_server_ciphers on; 
add_header Strict-Transport-Security "max-age=31536000"; 
add_header X-Content-Type-Options nosniff; 

location/{ 
    try_files $uri $uri/ /error.html; 
    include fastcgi_php.conf; 
} 

location /phpmyadmin { 
    alias /usr/share/phpMyAdmin; 
    include fastcgi_php.conf; 
} 

location = /robots.txt { 
    allow all; 
    log_not_found off; 
    access_log off; 
} 

location ~ /\. { 
    deny all; 
} 

}

Répondre

0

Il fonctionnerait, mais Aucun fichier ou répertoire. Nginx ne peut pas trouver index.php dans/usr/share/phpMyAdmin/phpmyadmin/ car le dossier n'existe pas.

Vous devez éditer le chemin d'alias de l'emplacement de phpmyadmin (voir l'extrait de code comment je l'ai fait). Après cela, allez au chemin /usr/share/ et Renommez le dossier phpMyAdmin à phpmyadmin (minuscules) ou utiliser la même notation emplacement (par exemple Lieu/phpMyAdmin)

server { 
    listen 443 ssl; 
    server_name test.domain.com; 
    root /var/www/site1; 
    index index.html index.php; 

    # Configure Access and Error Logging 
    access_log /var/log/site1-access.log combined; 
    error_log /var/log/site1-error.log warn; 

    # Configure SSL Certification usage 
    ssl_certificate /etc/nginx/ssl/xxx.crt; 
    ssl_certificate_key /etc/nginx/ssl/xxx.key; 
    ssl_dhparam /etc/nginx/ssl/dhparams.pem; 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 
    ssl_prefer_server_ciphers on; 

    # Add Headers for security purposes 
    add_header Strict-Transport-Security "max-age=31536000"; 
    add_header X-Content-Type-Options nosniff; 

    # Define some page rules 
    location/{ 
     try_files $uri $uri/ /error.html; 
     include fastcgi_php.conf; 
    } 

    location /phpmyadmin { 
     alias /usr/share; 
     include fastcgi_php.conf; 
    } 

    location = /robots.txt { 
     allow all; 
     log_not_found off; 
     access_log off; 
    } 

    location ~ /\. { 
     deny all; 
    } 
+0

Oui, je sachez-le, j'essaie de copier le/usr/share/phpMyAdmin dans le répertoire du site et cela fonctionne parfaitement. mais je veux laisser Nginx alias à/usr/share/phpMyAdmin pour que chaque site puisse utiliser phpMyAdmin directement sans faire de copie. –

+0

Essayez de renommer le dossier phpMyAdmin dans/usr/share/en phpmyadmin (minuscules) et éditez l'alias à "alias/usr/share;" Je pense que cela pourrait fonctionner – Htaccess24

+0

Toujours faux, journal afficher Impossible d'ouvrir le script principal: /usr/share/phpmyadmin/phpmyadmin/index.php (Aucun fichier ou répertoire). –