2015-06-22 4 views
0

Я экспериментировал с созданием небольшой CMS для проекта. Частью этого было то, что при нажатии на save-button ваши текущие изменения будут сохранены.Сообщение Ajax работает на localhost, но не на сервере nginx

$('.save-button').click(function() { 

    var speisekarte_content = $(".speisekarte-content").html(); 
    console.log(speisekarte_content); 
    var ajaxurl = 'save.php', 
    data = { 
     'content': speisekarte_content 
    }; 
    $.post(ajaxurl, data, function(response) { 
    alert("action performed successfully"); 
    }); 

}); 

save.php выглядит так:

<?php 

$post_data = $_POST['content']; 

if (function_exists('fopen')) { 
    if (!empty($post_data)) { 
     $filename = 'speisekarte-content.php'; 
     $handle = fopen($filename, "w"); 
     fwrite($handle, $post_data); 
     fclose($handle); 
     echo $file; 
    } 
}; 

?> 

Так что в основном только добавляет контент, который должен быть сохранен в файл с именем speisekarte-content.php ... Это работало отлично на локальном хосте - до Я загрузил его на свой nginx-сервер и прекратил работать как предполагалось. Это журнал ошибок, которые я нашел в консоли JavaScript:

POST 
http://www.myurl.com/editable/save.php net::ERR_TIMED_OUT 

k.cors.a.crossDomain.send @ jquery.min.js:4 
n.extend.ajax @ jquery.min.js:4 
n.(anonymous function) @ jquery.min.js:4 
(anonymous function) @ main.js:99 

Nginx журналы ошибок являются следующие

2015/06/22 08:43:45 [error] 6804#0: *63817 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: content in /var/www/myurl.com/html/editable/save.php on line 2 
PHP message: PHP Warning: fopen(autosave.php): failed to open stream: Permission denied in /var/www/myurl.com/html/editable/save.php on line 27 
PHP message: PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/myurl.com/html/editable/save.php on line 28 
PHP message: PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/myurl.com/html/editable/save.php on line 29 
PHP message: PHP Notice: Undefined variable: file in /var/www/myurl.com/html/editable/save.php on line 30" while reading response header from upstream, client: 176.0.1.54, server: myurl.com, request: "POST /editable/save.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.myurl.com", referrer: "http://www.myurl.com/editable/" 

Это связано с Nginx или мой код?

+0

Что говорит 'console'? – Tushar

+0

@Daan Позволяет задать две переменные в строке. Retador, вы проверяете разрешения файлов, htacess и т. Д.? –

+0

@Tushar Я разместил там журнал ошибок ... в противном случае он регистрирует содержимое моего div с классом 'speisekarte-content' :) – Retador

ответ

0

В вашем журнале указано, что ваше приложение не имеет права писать в его текущей установке. Вы должны проверить право на свой файл можете ли вы опубликовать вывод ls -al в папке вашего приложения?

+0

Хорошо, я поставил вывод в файл пиратской панели: http://piratepad.net/ep/pad/view/ro.tHwqX$uuO1T/latest – Retador

+0

Все ваши файлы принадлежат для root, так что я думаю, что папка, содержащая его. Nginx не может создать файл, если владелец является корневым, вам необходимо изменить владельца или группу папки, содержащую ваше приложение – jbduzan

+0

oh ok ... и к какому владельцу я должен его изменить? просто случайный?Я думал, что root будет «суперпользователем», который может выполнять в основном любое действие – Retador

Смежные вопросы