Pregunta

Estoy tratando de instalar Magento2(0.1.0-alpha107 ) en mi localhost alimentado por OSX 10.10 + cerveza instalado php-fpm + mysql + nginx.
Los pasos que he seguido para la instalación:

  • mkdir /path/to/magento2 && cd /path/to/magento2
  • git clone git@github.com:magento/magento2.git .
  • composer install
  • cd setup
  • composer install
  • php -f index.php install --base_url=http://magento2alpha.dev/ --backend_frontname=admin --db_host=localhost --db_name=magento2alpha --db_user=root --db_pass=root --admin_firstname=Raj --admin_lastname=KB --admin_email=magepsycho@gmail.com --admin_username=admin --admin_password=pass123 --language=en_US --currency=USD --timezone=America/Chicago

Hasta ahora todo funcionaba de maravilla.Pero cuando se carga la interfaz de usuario: http://magento2alpha.dev/ muestra de sólo texto sin formato (es decir,css/images/js faltan).
Ver código fuente te da la ruta de acceso como http://magento2alpha.dev/pub/static/frontend/Magento/blank/en_US/[css/images]/[css/images archivo] lo que llevó a la página de error 404
Mi nginx conf archivo se parece a:

server {
    listen 80;
    server_name magento2alpha.dev;
    root /Users/Raj/Sites/magento/magento2alpha;

    location /setup {
        try_files $uri $uri/ @setuphandler;
    }

    # Rewrite Setup's Internal Requests
    location @setuphandler {
        rewrite /setup /magento/magento2alpha/setup/index.php;
    }

    location / {
        index index.php index.html;
        try_files $uri $uri/ @handler;
    }

     # Rewrite Internal Requests
     location @handler {
        rewrite / /magento/magento2alpha/index.php;
     }

     # Rewrite magento2 static files
     #location /pub/static {
     #   rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
     #}

     location /pub/static {
          try_files $uri $uri/ @static;
     }

     location @static {
           rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
     }

     #location ~ .php/ {
     #    rewrite ^(.*.php)/ $1 last;
     #}

    location ~ \.php$ { ## Execute PHP scripts
        try_files $uri =404;
        expires        off;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_read_timeout 900s;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;

        ## Magento 2 Developer mode
        fastcgi_param MAGE_MODE "developer";
    }
}

Supongo que el problema radica en que los archivos estáticos de reescritura.Pero esto es lo que he seguido desde el github que no está funcionando.¿Hay alguna solución?

¿Fue útil?

Solución 2

Por último, tengo que modificar mi nginx conf archivo para trabajar como:
(REF: https://github.com/magento/magento2/issues/802)

server {
    listen 80;
    server_name magento2alpha.dev;
    root /Users/Raj/Sites/magento/magento2alpha;

    location /setup {
        try_files $uri $uri/ @setuphandler;
    }

    # Rewrite Setup's Internal Requests
    location @setuphandler {
        rewrite /setup /setup/index.php;
    }

    location / {
        index index.php index.html;
        try_files $uri $uri/ @handler;
    }

     # Rewrite Internal Requests
     location @handler {
        rewrite / /index.php;
     }

     location /pub/static {
          try_files $uri $uri/ @static;
     }

     location @static {
           rewrite ^/pub/static/(.*)$ /pub/static.php?resource=$1? last;
     }

     location ~ \.php$ { ## Execute PHP scripts
        try_files $uri =404;
        expires        off;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_read_timeout 900s;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;

        ## Magento 2 Developer mode
        fastcgi_param MAGE_MODE "developer";
        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=256M \n max_execution_time=18000";
     }
}

Una cosa que he notado es:Si usted crear host virtuales específicos de configuración de nginx del conf.d es el recurso más caros y más lento que el de mantener en sites-enabled dir.
[Editar]
Lo siento mi mal, xdebug fue el causante de la lentitud no la nginx conf.

Otros consejos

Cualquier archivo solicitado dentro de /pub/static que no existe actualmente necesita enrutarse a través de Magento.Esto se hace actualmente a través de /pub/static.php.

Puedes ver esta reescritura en /pub/static/.htaccess

RewriteEngine On
# Remove signature of the static files that is used to overcome the browser cache
RewriteRule ^version.+?/(.+)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* ../static.php?resource=$0 [L]

Mirando su configuración de NGINX que tiene esto comentado:

 # Rewrite magento2 static files
 #location /pub/static {
 #   rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
 #}

Presumiblemente haciendo que esas líneas sean ejecutables resolverían el problema, no estoy muy familiarizado con la configuración de NGINX, pero algo así como este podría también funciona:

location / {
    if (!-e $request_filename){ 
        rewrite ^(.*)$ /../static.php?resource=$0 last;
    }
}

Tomado de: https://magento.stackexchange.com/a/64808/3326

Cuando no en el modo de producción de Magento 2 intentará crear enlaces simbólicos para algunos recursos estáticos.Usted puede cambiar el comportamiento mediante la siguiente.

Abierto hasta app/etc/di.xml y encontrar la virtualType name="developerMaterialization" sección.En esta sección usted encontrará un elemento name="view_preprocessed" que necesita ser modificado o eliminado.Se puede modificar cambiando el contenido de Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink a Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Eliminar los archivos bajo pub/static para deshacerse de los enlaces simbólicos.Puede que desee tener cuidado de no borrar la .htaccess archivo.

Esto debería solucionar el error con el enlace simbólico.

Esta es la mejor respuesta hasta ahora

Puede modificarlo cambiando los contenidos de Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink a Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Tuve un problema similar después de ejecutar la instalación Magento 2 y encontré que la instalación no pudo implementar los archivos estáticos.Recibí 404 para muchos archivos de administración, incluido el bootstrap, etc. Para solucionar I corrí un comando desde la raíz del sitio para forzar la implementación del archivo estático:

php bin/magento setup:static-content:deploy -f

Esto regenerará los activos estáticos para los temas frontend y el backend adminhtml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top