Кажется, что на моем сервере popen()
не работает вообще. Я получаю доступ test.php
через браузер и файлы postt1.php
а также postt2.php
не быть казненным. article1.txt
а также article2.txt
файлы не пишутся. Все файлы находятся в одном каталоге.
В чем может быть проблема?
В файле test.php
Я имею:
<?php
$pipe1 = popen('postt1.php', 'w');
$pipe2 = popen('postt2.php', 'w');
pclose($pipe1);
pclose($pipe2);
echo "end";
?>
Внутренние файлы postt1.php
Я имею:
<?php
$tosave = "Hello there";
$file = fopen("article1.txt","w");
fwrite($file,$tosave);
fclose($file);
echo $tosave;
echo "<br>done";
?>
и в postt2.php
У меня то же самое, кроме того, что я пишу в файл article2.txt
,
postt1.php
конец postt2.php
необходимость метки шебанга (#!) и выполнить разрешения.
Добавьте тег shebang, сообщив файлу, где интерпретатор PHP находится в первой строке файла (перед <?php
!). Лучшие практики требуют, чтобы вы получали доступ к переводчику через env
команда:
#!/usr/bin/env php
<?php
$tosave = "Hello there";
$file = fopen("article1.txt","w");
fwrite($file,$tosave);
fclose($file);
echo $tosave;
echo "<br>done";
?>
Вы также можете использовать шебанг, который указывает прямо на php
: #!/usr/bin/php
, Но это менее переносимо по всем системам.
Вы также должны убедиться, что оба файла имеют исполняемые права доступа:
$ chmod +x posttl.php
Других решений пока нет …