воскресенье, 14 декабря 2008 г.

chmod - права

Для установки прав доступа используется команда chmod (CHange MODe). Права удобнее указывать в числовом формате: 4 — это право на чтение, 2 — на запись, 1 — на выполнение. Сумма этих чисел дает окончательный набор прав, например 6 — это чтение и запись, но без выполнения, 7 — все права, 5 — чтение и выполнение... Таким образом, для скриптов, например, удобно указывать "chmod 755 myscript.cgi" — вы оставляете себе все права, а всем остальным разрешаете скрипт читать и выполнять (вы же не хотите, чтобы веб-сервер мог ваш скрипт изменить?). Для обычных файлов можно указывать 644 — вы сами можете файл модифицировать, а остальные — только читать.

пятница, 12 декабря 2008 г.

Как решить проблемы с доступом к файлам площадки, созданным PHP-скриптами?

Дело в том, что PHP-сценарии, запущенные модулем mod_php, выполняются от имени пользователя wwwserver. Соответственно, если на чтение/модификацию не были выставлены разрешения для всех (достаточно 666 — для файлов, 777 — для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю uXXXX (id площадки) будет запрещена (при доступе по SSH, по FTP).

Исключить проблему можно, установив достаточные для модификации файлов посредством функции chmod.

Сделать это рекурсивно можно, исполнив PHP-сценарий: function chmod_R($path, $perm) {

$handle = opendir($path);
while (
false !== ($file = readdir($handle)) ) {
if ( (
$file !== ".") && ($file !== "..") ) {
if (
is_file($path."/".$file) ) {
chmod($path . "/" . $file, $perm);
}
else {
chmod($path . "/" . $file, $perm);
chmod_R($path . "/" . $file, $perm);
}
}
}
closedir($handle);
}

$path = $_SERVER["QUERY_STRING"];

if (
$path{0} != "/" ) {
$path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;
}

chmod_R($path, 0777);
echo
$path;
?>

Разместите этот файл на площадке, в директории, доступной веб-серверу, например, как domain.tld/www/chmod.php
где domain.tld/www — корневая директория (DocumentRoot) вашего сайта на сервере.

Вызывать скрипт нужно так: http://domain.tld/chmod.php?путь_к_нужной_директории
или так: http://domain.tld/chmod.php?
/home/uXXXXX/domain.tld/www/путь_к_нужной_директории

В первом случае указывается путь относительно DocumentRoot для вашего сайта (domain.tld/www/ в данном примере). Во втором случае (uXXXXX — идентификатор вашей площадки) — абсолютный путь от корневой директории сервера.

При запуске скрипта без параметров будут изменены права для всех файлов и директорий, располагающихся в DocumentRoot.

Joomla в Masterhost

  1. Заходим в корень домена и скачиваем дистрибутив Joomla с сайта разработчика: cd /home/uXXXXX/domain.tld/www/
    wget http://joomlaportal.ru/downloads/joomla/Joomla_1.0.15-Stable-Full_Package.tar.gz

    Распаковываем архив: tar -zxvf Joomla_1.0.15-Stable-Full_Package.tar.gz

  2. Создаём файл .htaccess (если он ещё не создан) и прописываем в нём следующие строки: php_flag display_errors on
    php_value error_reporting 2047
    php_flag register_globals off
    php_value session.save_path /home/uXXXXX/domain.tld/tmp/

    • php_flag display_errors on включает вывод ошибок в браузер
    • php_value error_reporting 2047 определяет уровень отображаемых ошибок
    • php_flag register_globals off отключает директиву register_globals
    • php_value session.save_path /home/uXXXXX/domain.tld/tmp/ переопределяет путь к каталогу хранения временных файлов «tmp»
  3. Далее для корректной установки потребуется выставление определённых прав на директории и файлы. Воспользуемся коммандой «chmod»: chmod 777 administrator/backups/ administrator/components/
    administrator/modules/ administrator/templates/ cache/ components/
    images/ images/banners/ images/stories/ language/ mambots/
    mambots/content/ mambots/editors/ mambots/editors-xtd/
    mambots/search/ mambots/system/ media/ modules/ templates/

  4. Для установки вам потребуется открыть ваш домен в любом обозревателе: http://domain.ltd

    В процессе заполнения требуемой информации вам будут необходимы реквизиты доступа к базе данных:

    • Host Name — Имя сервера базы данных. Пример: uXXXXX.mysql.masterhost.ru
    • MySQL User Name — Имя пользователя базы данных. Пример: uXXXXX
    • MySQL Password — пароль для пользователя, который имеет доступ к базе данных.
    • Verify MySQL Password — подтверждение пароля.
    • MySQL Database Name — Имя базы данных вида uXXXXX.
    • MySQL Table Prefix — префикс для таблиц вашей базы данных.

    Создаём в корневой директории вашего домена файл configuration.php и записываем в него сгенерированные в ходе установки настройки.

  5. Для корректного отображения сайта нужно удалить из корневой директории домена /home/uXXXXX/domain.tld/www/ папку installation.

среда, 10 декабря 2008 г.

Установка NetCat на хостинг в Ru-Center

Особенности:
1. При установке имя сервера - идентификатор хостинга, наример fdbuir.mysql. Обычно стоит localhost.
2. Для работы необходимо включить использование .htaccess в настройках сайта в панели управления хостингом. В этой системе управления при ошибке 404 вызывается обработчик php, который и загружает необходимую страницу.