Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP для Ubuntu
 
 автор: yulsav15   (16.08.2017 в 15:22)   письмо автору
 
 

Была поставлена задача написать код для создания папки на сервере sqlsrv15 и ее автоматическом открытии. Краткий алгоритм такой: нажали на кнопку на сайте в специальной форме (форма написана на javascript) - создается на серваке папка - автоматически данная папка открывается.
Решение выполнено и работает локально на моем пк (установлена операционная система Windows). Но когда на сайт переношу все изменения - кнопка не работает! Сервак уже используется Ubuntu 12.10. Как запустить мой код на Ubuntu?
Код следующий:
1) Работа кнопки для более приемлемого понимания вынесена в отдельный файл AjaxWebna.php:
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
//Работа с ajax-запросом с передачей параметра в файл *.php
$.ajax({
type: 'POST',
url: "/FoldOpen.php",
data: 'tkpName='+84389,
success: function(data) {
$('.results').html(data);
}
});
</script>


2) Сам промежуточный файл FoldOpen.php
<?php
$str = iconv('utf-8', 'cp1251', 'Сектор подготовки ТКП\БАЗА ТКП\ТКП');
$str3 = iconv('utf-8', 'cp1251', 'ТКП № ');
mkdir("//sqlsrv1" . '/' . $str . '/' . $str3. $_POST['tkpName'], 0777);
$cmd = '//sqlsrv15/TkpExe/FoldCreateOpen.exe';
$desc = [["pipe", "r"], ["pipe", "w"]];
$proc = proc_open($cmd, $desc, $pipes);
fwrite($pipes[0], $_POST['tkpName']);
fclose($pipes[0]); // закрываем поток ввода
$result = stream_get_contents($pipes[1]); // считываем результат
fclose($pipes[1]); // закрываем поток вывода
?>


3) Ну и сам FoldCreateOpen.exe. Приводить его код не буду. Смысла особого нет. Exe-файл не вызывается.

Директорию mkdir пробовал тестить отдельно - не работает вообще. Файл не создается. Когда проверяю на echo - сообщение выводится на сайте.

  Ответить  
 
 автор: Grays   (17.08.2017 в 09:58)   письмо автору
 
   для: yulsav15   (16.08.2017 в 15:22)
 

PHP всего лишь запускает внешние программы, но не исполняет их. B ubuntu для выполнения сценариев экзэшников используется дополнительный модуль wine, который хостерам, как правило, без надобности.
Шифровать собственные скрипты можно с помощью кодеров-обфускаторов, которых уже предостаточно как для РНР, так и для Javascript

  Ответить  
 
 автор: Grays   (18.08.2017 в 11:33)   письмо автору
 
   для: yulsav15   (16.08.2017 в 15:22)
 

...
>Директорию mkdir пробовал тестить отдельно - не работает вообще. Файл не создается...

Установите права доступа на дир. 777, а на исполняемый файл 666 (который используете для листинга директории и создания новых файлов) - на некоторых хостингах достаточно, соответственно, 770 и 660.

Настройки РНР и сервера на хостинге и на вашем компьютере безусловно различны, к тому же будут сказываться и особенности файловых систем, к примеру, сортировка файлов с помощью функции natsort может отличаться, проблемой может оказаться и работа с сессиями и т.д. - то, что нормально работает дома, на хостинге надо по-началу предварительно проверять, кстати, надо ещё учитывать и версии РНР

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования