FAQ: PHP, Perl, Python, CGI-скрипты, MySQL
- Путь до cli-интерпретатора php ?
- Путь до perl ?
- Как правильно выставлять аттрибуты для директорий, файлов, скриптов и т.д. ?
- Путь до программ ImageMagic ?
- После смены версии MySQL на 4.1 возникли проблемы с кодировкой
- Пытаюсь из скриптов скачать данные из сети и получаю ошибку "Network is unreachable"
- Не работает аутентификация через php. Переменные $PHP_AUTH_USER и $PHP_AUTH_PW не устанавливаются
- Закачиваю файлы на сервер через php-скрипты, а потом не могу их скачать через браузер - выводится 403 ошибка (доступ запрещен).
- Что такое исходящие соединения ?
- При подключении к MySQL через PDO возвращается ошибка Access denied.
- Как включить ZendOptimizer?
- Вопрос: Путь до cli-интерпретатора php ?
- /usr/bin/php
- Вопрос: Путь до perl ?
- /usr/bin/perl
- Вопрос: Как правильно выставлять аттрибуты для директорий, файлов, скриптов и т.д. ?
-
Права на все директории должны быть: 0755 (rwx r-x r-x)
Права на все файлы, включая все виды скриптов, исполняемые из-под веб-сервера: 0644 (rw- r-- r--), обращаем ваше внимание что бит execute на возможность выполнения скриптов не влияет. - Вопрос: Путь до программ ImageMagic ?
- /usr/bin/convert
- Вопрос: После смены версии MySQL на 4.1 возникли проблемы с кодировкой
-
MySQL версии 4.1 и старше отличаются от 4.0 расширенными возможностями по работе с кодировками. Если ваш сайт работает в кодировке Windows-1251, то после соединения с базой данных необходимо выполнить SQL-инструкцию "SET NAMES cp1251". Подробнее о борьбе с существующими проблемами можно прочесть здесь:
http://www.linux.by/wiki/index.php/FAQ_PHP_MySQL_charset
http://phpclub.ru/faq/Mysql41Rus
- Вопрос: Пытаюсь из скриптов скачать данные из сети и получаю ошибку "Network is unreachable"
-
По умолчанию для сайтов, расположенных на хостинге в Екатеринбурге, исходящие соединения закрыты. Для того, чтобы открыть исходящие соединения, необходимо активировать их в панели управления хостингом (раздел "Трафик") или написать соответствующую заявку в тех.поддержку (на адрес info@netangels.ru).
Стоимость одного мегабайта входящего внешнегородского трафика, скачиваемого вашими скриптами, составляет 1руб. Внутригородской трафик предоставляется бесплатно. Проверить, расположен хост внутри города или нет, можно с помощью формы на сайте Инсиса
- Вопрос: Не работает аутентификация через php. Переменные $PHP_AUTH_USER и $PHP_AUTH_PW не устанавливаются
-
Эта проблема связана с тем, что php на хостинге работает через CGI/FastCGI, а не как модуль apache. Для ее обхода можно воспользоваться следующим методом:
- В каталоге, для которого требуется вход по паролю, создать файл .htaccess со следующим содержимым:
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] - В начало php-скрипта, производящего проверку имени пользователя и пароля, поместить примерно следующий код:
$userpass = explode(":", base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)));
if ( count($userpass) == 2 ){
$PHP_AUTH_USER = $userpass[0];
$PHP_AUTH_PW = $userpass[1];
}
- В каталоге, для которого требуется вход по паролю, создать файл .htaccess со следующим содержимым:
- Вопрос: Закачиваю файлы на сервер через php-скрипты, а потом не могу их скачать через браузер - выводится 403 ошибка (доступ запрещен).
-
Проблема заключается в неверно выставленных правах на закачанный файл. Когда Вы закачиваете файл через php-скрипт, он получает права 600 (чтение и запись доступны только его владельцу). Для того, чтобы файлы могли быть прочитаны веб-сервером, необходима установка прав 644 (чтение и запись для владельца, всем остальным право только на чтение).
Решение заключается в изменении скрипта, закачивающего файлы на сервер - достаточно после вызова функции move_uploaded_file(...) вызвать функцию chmod("path/to/file.zip", 0644), где "path/to/file.zip" - абсолютный или относительный путь к файлу.
Для файлов, которые уже были закачаны старым способом, можно изменить права доступа через ftp-клиент. - Вопрос: Что такое исходящие соединения ?
-
Исходящие соединения - это соединения, которые инициирует ваше программное обеспечение, размещающееся на хостинге.
Например, ПО вашего сайта обращается к внешнему серверу, скажем, с тем чтобы скачать текущий курс валют и встроить эту информацию в код вашей страницы. При этом на php пишется код типа fopen("http://www.host.ru"). Это исходящее соединение.
Кроме того, исходящее соединение может возникнуть если вы зайдете в свой аккаунт по ssh и, например, выполните команду ping или wget на внешний сервер.
Когда вы закачиваете какую-то информацию со своего компьютера к себе на сайт по ftp или ssh, когда к вам на сайт заходят посетители и даже когда посетители через форму загрузки файлов на сайт что-то загружают, исходящие соединения не возникают. Точно так же они не возникают если вы встраиваете в html-код ваших страниц какие-то счетчики.
Другими словами, исходящее соединение всегда инициируется либо вами вручную, либо ПО вашего сайта, но не посетителями, заходящими к вам на сайты. - Вопрос: При подключении к MySQL через PDO возвращается ошибка Access denied.
-
При использовании PDO вместо параметра host=localhost нужно указывать unix_socket=/var/run/mysqld/www-data-socket5.0 (см. документацию). Точный путь к сокету зависит от тарифного плана и используемой версии MySQL и его всегда можно посмотреть в phpinfo();.
- Вопрос: Как включить ZendOptimizer?
-
Zend Optimizer доступен на всех тарифах, где возможно использование PHP, и включается установкой соответствующей галочки в панели управления хостингом (раздел "PHP"). Текущая версия ZendOptimizer на всех серверах хостинга: 3.3.3.
При необходимости обновить ZendOptimizer на сервере VDS можно написать заявку в службу техподдержки.
