4

I use nginx with php5-fpm and I have problem with SOAP webservice. Magento returns wrong address in wsdl.

<service name="MagentoService">
  <port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding">
    <soap:address location="http://aaa.local/index.php/?type=soap"/>
  </port>
</service>

Should be something like that

<service name="MagentoService">
  <port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding">
    <soap:address location="http://aaa.local/api/soap"/>
  </port>
</service>

My vhost nginx configuration

server {
    listen 80; 
    server_name aaa.local;
    root   /var/www/aaa;

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

    location /api {
        rewrite ^/api/rest /api.php?type=rest last;
        rewrite ^/api/soap /api.php?type=soap last;
    }


    location /app/                { deny all; }
    location /includes/           { deny all; }
    location /lib/                { deny all; }
    location /media/downloadable/ { deny all; }
    location /pkginfo/            { deny all; }
    location /report/config.xml   { deny all; }
    location /var/                { deny all; }
    location /var/reports                { deny all; }

    location /var/export/ { ## Allow admins only to view export folder
        auth_basic           "Restricted"; ## Message shown in login window
        auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
        autoindex            on;
    }

    location  /. { ## Disable .htaccess and other hidden files
        return 404;
    }

    location @handler { ## Magento uses a common front handler
        rewrite / /index.php;
    }

    location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
        rewrite ^(.*.php)/ $1 last;
    }

    location ~ \.php$ {
        if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
        expires        off; ## Do not cache dynamic content
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/aaa$fastcgi_script_name;
        fastcgi_param MAGE_RUN_CODE aaa;
        }
}

Anybody know what is wrong?

  • So the solution was simple.... I have to use proper link for webservice aaa.local/index.php/api/soap?wsdl – kuba_ceg Jun 13 '14 at 9:57
  • You can add you answer, then accept your answer and this question will no longer show up without an answer. – brentwpeterson Sep 4 '14 at 14:12
2

So the solution was simple.... I have to use proper link for webservice

http://aaa.local/index.php/api/soap?wsdl

instead of

http://aaa.local/api/soap

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.