|
|
|
|
|
для: andry
(19.07.2004 в 08:47)
| | PHP на Apache можно установить 2 способами - как модуль и как внешнюю программу (как CGI-скрипт)
PHP как модуль - это по сути библиотека Apache.
Как CGI - это когда php-скрипты выполняются как внешнее приложение.
Основное отличие - когда PHP установлен как CGI, то каждый раз для выполнения скрипта запускается новый процесс со своими правами.
Если же PHP установлен как модуль, то он всегда висит в памяти и работает с права назначенными самому серверу.
Установливать PHP как модуль нужно если необходимо работать с заголовками (headers) и функциями авторизации. А также если вы хотите управлять некоторыми настройками PHP из файлов .htaccess. В противном случае для этого нужно всегда лезть в PHP.INI.
Определить как установлен - просто.
Посморите httpd.conf. Вот этот блок кода устанавливает PHP, как CGI
AddType application/x-httpd-php phtml php
<Directory "c:/php">
Options ExecCGI
</Directory>
ScriptAlias "/__php_dir__/" "c:/php/"
Action application/x-httpd-php "/__php_dir__/php.exe"
|
А вот - как модуль.
AddType application/x-httpd-php phtml php php3
LoadModule php5_module modules/php5apache2.dll
|
| |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 17:02)
| | Спасибо, я нашла Apache 2.0.44, попробую его поставить.
Наши ребята мне дали архивчик (выдернутый, естественно, где-то в инете), где все было: и PHP, и MySQL, и Apache, и все это под WINDу. И еще, я только начинаю осваивать web-программирование, и мне непонятна фраза PHP установлен как модуль или как внешний CGI-скрипт , как это можно узнать??? | |
|
|
|
|
|
|
|
для: andry
(15.07.2004 в 15:43)
| | Хм... Всё чисто... Сходная ситуация была у нашего Дизайнера - тоже не работал upload под Windows на Apache 1.3.x, он тогда все конфигурационные файлы перерыл - помогла только установка более новой версии Apache и PHP. Нет возможности поставить их более новые версии? Тем более как показывает практика Apache 2.0 менее капризен…
PS Кстати, PHP установлен как модуль или как внешний CGI-скрипт? Если он установлен как внешний CGI-скрипт вы можете прислать нам конфигурационные файлы Apache (http.conf) и PHP (php.ini) и мы попробуем смоделировать ситуацию (Только вряд ли я уже смогу достать PHP 4.0.3 и Apache 1.3.29 :().
PPS Кстати, в логах Apache (logs/*.log) ничего интересного нет, когда происходит обработка запроса POST? Но у меня уже подозрение, что там тоже код возврата 200 (успешная обработка). Я один раз такое видел у себя в Университете: Apache под Windows прекрасно работал в качестве локального сервера и совершенно не был виден из сети, при всё при том, в логах рапортовал, что все внешние запросы обработаны (код 200). | |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 13:59)
| | Сервер Apache Web Server Version 1.3.29, порт 80.
| |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 14:26)
| | В php.ini:
variables_order = "GPCS"
post_max_size = 8M
upload_max_filesize = 2M
Ни FireWall, ничто подобное не стоит. | |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 13:53)
| | Хотя вот ещё что может быть, посмотрите в php.ini значение директивы
variables_order = "EGPCS"
|
Ну и на всякий случай post_max_size и upload_max_filesize, хотя в этих директивах всё нормально, иначе вообще ничего не работало бы... | |
|
|
|
|
|
|
|
для: andry
(15.07.2004 в 13:14)
| | Меня смущает 777... Windows разве поддерживает систему безопасности UNIX, в любом случае лучше установить 644, или ещё ниже, так как исполняться во временных папках нечему и не зачем...
Под Windows мы имеем дело только с локальными серверами и как следствие проблемам безопасной работы Apache внимания не уделяли...
PS А версия сервера Apache какая и на каком он порту висит?
PPS Apache в UNIX обычно выполняется с минимальными правами, чтобы в случае переполнения буффера, получив, права apache злоумышленник не смог ничего поделать. Но что бы apache работал у него должно быть право чтения и записи в его рабочих и верменных директориях. | |
|
|
|
|
|
|
|
для: andry
(15.07.2004 в 13:22)
| | Понятно, значит сервер отфутболивает где-то файл и PHP тут скорее всего не причём - в логах Apacha что-нибудь интересное есть? FireWall никакой не применяется? | |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 10:24)
| |
<?echo "Путь к файлу на сервере следующий: ".$_FILE['foto']['tmp_name']."<br>";
echo "Путь к файлу на клиентской машине следующий: ".$_FILE['foto']['name']."<br>";
echo "Размер файла в байтах следующий: ".$_FILE['foto']['size']."<br>";
echo "Тип файла следующий: ".$_FILE['foto']['size']."<br>";?>
|
Этот код выдает только сожержание ковычек (например, Путь к файлу на сервере следующий: ), а дальше пустота..... | |
|
|
|
|
|
|
|
для: cheops
(15.07.2004 в 10:36)
| | Нет, сейчас речь идет о сервере Apache, работающим под управлением Windows. Так правильно я указала права или нет??? И что значит установить право записи во временную папку для сервера Apache, который вообще никаких прав на сервере не имеет... | |
|
|
|
|