fopen & cURL на веб-сервере php ubuntu

0

ли im пытается создать файл или использовать file_get_contents на внешнем url, я просто не могу заставить fopen (или curl) код работать. Я проверил phpinfo и allow_url_fopen, allow_url_include & curl все включено и даже посмотрел на php5/apache2/php.ini, и все они включены. Но не важно, что я делаю без PHP-кода. Ниже приведены некоторые примеры (которые работают с wamp/localhost, но не при переносе на веб-сервер)

создать html файл в папке (работает на localhost/wamp-сервере Windows)

if (!file_exists('media/folder')) {
 mkdir('media/folder', 0755, true);
 }
 $config_file = 'media/folder/config.html';
 $config_file_handle = fopen($config_file, 'w') or die('Cannot open file:  '.$config_file); //implicitly creates file

 $config_file = 'media/folder/config.html';
 $config_file_handle = fopen($config_file, 'w') or die('Cannot open file:  '.$config_file);
 $config_data = 'add to my file content'.PHP_EOL.'

';
fwrite($config_file_handle, $config_data);

Не работает на реальном сервере. Довольно сложно, так как это необходимо для работы, и попробовал много вариантов завитка, но не удалось.

Ниже приведен фрагмент кода PHP, который работает локально, но не работает.

<?php

//works locally if external url used
//works locally if local file used
//Does not work live server if external url used
//Does work live server if local server url used
$string = file_get_contents('my url');
$json_a = json_decode($string, true);

foreach ($json_a as $person_name) {

//Person Name
echo $person_name['PersonName'];

}
?>

Не могу добиться того, что намеревалось сделать, если я не могу заставить это работать.

Любая помощь

  • 0
    И mkdir() будет успешным, только если веб-сервер уже имеет разрешение на запись в родительский каталог того, который вы пытаетесь создать. Это означает, что ваш веб-сервер должен иметь разрешение на запись в текущий каталог, где работает этот код - это немного опасно. Если mkdir() не работает, вы сразу увидите предупреждения об этом.
  • 0
    Я получаю предупреждение: fopen (config.html): не удалось открыть поток: отказано в разрешении в / var / www / my url / public_html / write.php в строке 7 Не удается открыть файл: config.html при попытке записать файл в корневую папку
Показать ещё 7 комментариев
Теги:
curl
fopen

1 ответ

1

Чрезвычайно распространенная ошибка, возможно, вам придется разрешить пользователям www-data получать доступ к вашим нужным файлам. Просто щелкните правой кнопкой мыши по файлу или папке, которую вы хотите настроить, перейдите на вкладку "Разрешения" и установите www-данные владельцу.

  • 0
    Спасибо, чувак, но у меня нет возможности щелкнуть правой кнопкой мыши графический интерфейс, который можно использовать только на терминале. Но да, я использовал команду sudo chown -R www-data: www-data / path к папке www, и скрипт php работает (создание файла / запись)
  • 0
    если это был ответ, можете ли вы щелкнуть галочку рядом с ним, спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню