Обновлено согласно Use-политики: https://sourceforge.net/p/forge/documentation/Project%20Web%20and%20Developer%20Web/#outbound-connectivity
Из-за небрежности, исходящего доступа к другим хостам с веб-серверов строго запрещено, и блокируется правилами брандмауэра. Этот включает в себя доступ к другим хостам SourceForge.net; единственными исключениями для этой политики являются доступ к нашим серверам баз данных проектов и авторизованные исходящие письма . Доступ к серверу SCM недоступен из проекта веб-серверов. Любое содержимое, необходимое с других сайтов SourceForge.net , должно быть восстановлено и сохранено в виде файла или записи базы данных, которое может быть , после чего их можно получить из сценариев на веб-серверах проекта. В то время как наша установка PHP (и другие языки) включает поддержку таких вещей, как LDAP, IMAP и Postgres, мы не разрешаем подключение или исходящую связь с использованием этих протоколов.Эти компоненты включены так, что сторонний код может храниться при развертывании на веб-серверах SourceForge.net; и поддерживать тестирование проекта , который требует этих функций.
Таким образом, возможность подключения к внешним узлам блокируется брандмауэром и невозможен.
Пожалуйста, напишите свой phpinfo()
выход в ваш вопрос. В частности, информация о системе (верхняя часть), ядро, завиток, сокеты и стандартные значения раздела (оставьте любую конфиденциальную информацию, такую как пароли/соединения базы данных).
Есть много вещей, которые могут помешать ему сохранить, разрешения пользователя (на исполняемый файл), конфигурацию сервера, suPHP (изолированный пользователь), chrooted веб-каталог, конфигурацию php и т. Д. Нам нужно будет увидеть фактический код вы использовали для диагностики вашего specific issue
.
Что-то попробовать, используйте этот код.
<?php
if (file_put_contents('/home/project-web/my-own-project/htdocs/my-folder/test.txt', 'Hello World!')) {
echo 'File Saved Successfully!';
}
если test.txt
существует и говорит Hello World!
при загрузке и открыть его SFTP, попробуйте ниже.
Также большинство пользователей SFTP необходимо обновить после добавления нового контента на сервер. Поэтому, пожалуйста, убедитесь, что вы обновили свой SFTP-клиент.
<?php
umask(0000); //this sets everything this script interacts with as everyone writable/executable
//(same as chmod(0777))
$output_path = '/home/project-web/my-own-project/htdocs/my-folder';
$out_file = 'fun.mp4';
$source = file_get_contents('http://data.example.com/videos/fun.mp4');
if (empty($source)) {
die('No Content Received');
}
if ([email protected]($output_path, 0777, true) && !is_dir($output_path)){
die('Unable to create destination directory!');
}
if (file_put_contents($output_path . '/' . $out_file, $source)) {
echo 'File Saved Successfully!';
}
Я тестировал выше на моем веб-сервере с 5 MB
MP4 (в частности http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
- первый результат Google для mp4 скачать) и он работал отлично.
Это было бы последним усилием, чтобы заставить его работать.
Вы проверили запись пустого файла на хостинг веб-сервера, если вы можете вообще записать файл в свою файловую структуру. , например. попробуйте file_put_contents ('testfile.txt', 'success'); Поместите код в файл php и запустите этот файл php. Найдите файл testfile.txt в том же каталоге, где находится php-файл. Если вы вообще можете написать файл, его можно исправить. – Aditya
Хорошо. И я забыл спросить, если вы проверили в php.ini 'allow_url_fopen'? Сказав, что вы протестировали файл с 20 КБ, вы хотите сказать, что вы загрузили 20 КБ-файл с какого-то URL-адреса на сайт хостинга? – Aditya
Пожалуйста, проверьте это. – Aditya