servidor lemp instalar nginx phpmyadmin fastcgi

lemp - nginx+fast-cgi: cómo hacer que phpmyadmin funcione



nginx php-fpm (3)

lea el comentario, la orden debe ser exacta, si aún error, lea el error.log

### first define phpmyadmin static files location ~ ^/phpmyadmin/.*/.(jpg|jpeg|gif|png|ico|css|js|woff|ttf)$ { root /usr/share/; expires max; #log_not_found off; } ### then your public_html static file location ~* /.(jpg|jpeg|gif|png|ico|css|js|woff|ttf)$ { root /path/public_html; expires max; #log_not_found off; }

porque phpmyadmin ruta fuera de public_html, por lo que necesita try_files para redirigir barra "/" a "/index.php"

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

y ahora el último, fastcgi

### Define phpmyadmin PHP files location ~ ^/phpmyadmin/(.*)/.php$ { ## optional, try uncomment if error #root /usr/share/phpmyadmin/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/$fastcgi_script_name; include fastcgi_params; } ### then your public_html files location ~ /.php$ { ##optional, try uncomment if error #root /path/public_html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /path/public_html/$fastcgi_script_name; include fastcgi_params; }

ahora puedes acceder a phpmyadmin en http://yoursite/phpmyadmin

Configuré mi servidor nginx + php. Todo funciona bien, excepto phpmyadmin.

Busqué en Google y encontré algunos trucos de alias, pero no me funcionaron.

Eso funciona genial:

location ~ ^/ololo/(.*/.php)$ { alias $root_path/img/$1; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } location /ololo/ { alias $root_path/img/; index index.php; }

Hay un directorio img en mi ruta de acceso al sitio y cuando solicito nombre de sitio sitename/ololo/ o nombre de sitio sitename/ololo/index.php todo está bien.

Pero eso:

location ~ ^/myadmin/(.*/.php)$ { alias /usr/share/phpmyadmin/$1; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; } location /myadmin/ { alias /usr/share/phpmyadmin/; index index.php; }

no funcionará!

cuando intento solicitar el mysite/myadmin/ o mysite/myadmin/index.php me lanza

Fichero de entrada no especificado.

mensaje de error. En /usr/share/phpmyadmin/ están todos los archivos .php .

¿Qué pasa con mi nginx.conf ?


De acuerdo, de acuerdo con lo que entendí de sus respuestas, estoy modificando esta respuesta, agregue esto a su servidor principal y debería funcionar.

location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+/.php)$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } }

EDITAR :

Ok, un vode abajo me hizo echar un vistazo a esto de nuevo. Ha pasado un tiempo desde que escribí esta respuesta y debería decir que no es así como escribiría el archivo de configuración si fuera hoy, aquí está la configuración que Yo usaría.

location /phpmyadmin { index index.php index.htm; root /usr/share; } location ~* /.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; }

si quiere usar un alias, reemplace el bloque phpmyadmin con este

location /phpmyadmin { index index.php index.htm; alias /usr/share/phpmyadmin; }

Nota: Si su bloque de servidor ya contiene el index entonces no necesita redefinirlo dentro del bloque phpmyadmin .


Esta es mi configuración:

location /phpmyadmin { alias /usr/share/phpmyadmin; index index.php; location ~ /([^/]+/.php)$ { try_files /$1 =404; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; location ~ /phpmyadmin/js/([^/]+/.php)$ { try_files /phpmyadmin/js/$1 =404; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } }