вторник, 30 октября 2012 г.

Создать пользователя MySql

Для начала - немного отсюда:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
        -> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
Эти команды GRANT создают трех новых пользователей:
monty
Полноценный суперпользователь - он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass. Обратите внимание на то, что мы должны применить операторы GRANT как для monty@localhost, так и для monty@"%". Если не добавить запись с localhost, запись анонимного пользователя для localhost, которая создается при помощи mysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host, и она расположена раньше в таблице user.
admin
Пользователь, который может подсоединяться с localhost без пароля; ему назначены административные привилегии RELOAD и PROCESS. Эти привилегии позволяют пользователю запускать команды mysqladmin reloadmysqladmin refresh и mysqladmin flush-*, а также mysqladmin processlist. Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив оператор GRANT).
dummy
Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение 'N'-тип привилегии USAGE, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.

После создания dummy, надо дать ему права с помощью GRANT:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,EXECUTE,ALTER on бд.* TO пользователь@localhost IDENTIFIED BY 'пароль';

Подробнее о GRANT - тут
После создания dummy, надо дать ему права с помощью GRANT:

Посмотреть всех пользователей можно так:
select User from mysql.user;

воскресенье, 28 октября 2012 г.

Виртуальные хосты Apache

Для поддержания нескольких доменов 3 уровня, необходимо настроить в apache виртуальные хосты.
Обычно, их настройка производится в отдельном файле, а в httpd.conf производится его include.

1 делом, надо включить поддержку виртуальных хостов директивой NameVirtualHost.

NameVirtualHost адрес:порт

Потом - настроить сами хосты:

<VirtualHost адрес:порт>
    DocumentRoot путь_к_корневому_каталогу_для_этого_домена(например /mysite/subdomain)
    ServerName доменное_имя(например subdomaain.mysite.ru)
    ServerAlias альтернативное_имя(для всяких www, ww1 и т.д.. например www.subdomain.mysite.ru)
    ErrorLog "путь_к_логам"(например "/var/logs/error_log")
    CustomLog "путь_к_логам" common(например "/var/logs/access_log"common)
</VirtualHost>


Основной сайт тоже нужно прописать в виртуальных хостах.

среда, 10 октября 2012 г.

PHP к Apache как CGI

Информация взята отсюда.

Добавляем в секцию <Directory>

Options +ExecCGI
AddHandler cgi-script  .php
что делает все .php файлы в ней cgi скриптами

Если вызвать обычный php файл, то получим Internal Server Error.
Для решения этой проблемы:
1)Добавим  начало #!/путь-к-пхп/php
2)Первая выводимая скриптом информация должна быть "Content-type: text/html\n\n;" (добавить после <?php  echo "Content-type: text/html\n\n;";)

Проверка: скрипт должен срабатывать простым вызовом, например ./tst.php