2015-01-24 3 views
0

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

создать HTML файл в папке (работает на окнах LOCALHOST/WAMP сервер)

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()' будет успешным только в том случае, если веб-сервер _already_ имеет разрешение на запись в родительский каталог того, который вы пытаетесь создать. Это означало бы, что ваш веб-сервер должен иметь разрешение на запись в текущую директорию, где работает этот код - это немного опасно. Если 'mkdir()' то, что не удается, вы сразу увидите предупреждения об этом. –

+0

Я получаю Предупреждение: fopen (config.html): не удалось открыть поток: Permission denied in/var/www/my url/public_html/write.php в строке 7 Не удается открыть файл: config.html при попытке записать файл в root folder – BENN1TH

+1

Это означает, что пользователь веб-сервера не имеет права на запись в файл config.html. –

ответ

1

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

+0

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

+0

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

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