NetBSD 4.0.1 Связка Apache22+Mysql+PHP5

tzar аватар

1. Установить из системы пакетов: www/apache22, databases/mysql-server, lang/php5, www/ap-php, databases/php-mysql. Я устанавливаю всё без дополнительной конфигурации (./configure --параметры...)
2. Настроим mysqld.
2.1. cp /usr/pkg/share/examples/rc.d/msqld /etc/rc.d
2.2. Добавить в /etc/rc.conf: mysqld=yes. Перезагрузиться
2.3. Минимально настроить безопасность mysql:
#mysql
> use mysql;
> delete from user where user='';
> grant all on * to root identified by 'новыйпароль';
> grant all on * to root@localhost identified by 'новыйпароль';
> grant all on * to root@127.0.0.1 identified by 'новыйпароль';
> flush privileges;

Совет. Если нужно создать таблицы и базы в нужных кодировках и представлениях нужно:
- Посмотреть доступные кодировки и представления
> show character set;
Созание базы данных (пример)
> create database AAA default character set cp1251 collate cp1251_general_ci; (так я перетаскивал joomla'у)
Создание таблиц
> create table TTT (str varchar(20)) default character set cp1251 collate cp1251_general_ci;
Замечу также, что для переноса joomla'ы мне даже не понадобилось создавать my.cnf, mysqld грузится по-умолчанию.
3. Дл настройки интерфейса php для mysql в конфиге php (/usr/pkg/etc/php.ini) дописать одно расширение:
extension=mysql.so
4. Настройка и запуск apache
4.1. В rc.local прописать для автозапуска:
if [-f /usr/pkg/sbin/httpd]; then
    /usr/pkg/sbin/httpd -k start
fi

4.2. Запуститьиз командной строки, чтоб проверить работоспособность apache
# /usr/pkg/sbin/httpd -k start
Если при запуске были ошибки:
httpd: apr_sockaddr_info_get() failed for server.my.domain.name
httpd: Could not reliably determine the server's fully qualified name, using 127.0.0.1 for ServerName

a) проверить hostname:
# hostname
server.my.domain.name
b) прописать hostname в /etc/hosts:
192.168.0.111 server.my.domain.name
4.3. Настроим apache для работы с php в паре. Правим конфг /usr/pkg/etc/httpd/httpd.conf
В конец конфига добавляем:
LoadModule php5_module /usr/pkg/lib/httpd/mod_php5.so
AddHandler application/x-httpd-php .php

Найти раздел < IfModule dir_module> и отредактировать содержимое так (пробелы убрать после <):
< IfModule dir_module>
    DirectoryIndex index.php index.html
< /IfModule>

Поменять корень вэб-документов на что-нибудь покороче, параметр DocumentRoot, например,
DocumentRoot "/var/www"
Если используются виртуальные хосты, расскоменировать строку
Include etc/httpd/httpd-vhosts.conf
оные прописывать в нём
4.4. Переапустить apache
# /usr/pkg/sbin/httpd -k restart
4.5. Проверим работу
# vi /var/www/phpinfo.php
забить в него (пробелы убрать после <):
< ?php
    phpinfo();
?>

И в браузере ввести: http://localhost/phpinfo.php - должна выдаться конфигурация апача, пхп. Файл phpinfo.php удалить, чтоб не смущать хацкеров.

P.S. Если при попытке зайти на страницу ловим "You don't have permission to access / on this server.", скорее всего изменён DocumentRoot и для этого каталога не прописана секция Directory, например так (пробелы убрать после <):
< Directory "/var/www">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory>

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
rmx аватар

В wiki добавьте.

В wiki добавьте.

tzar аватар

Добавил.

Добавил.

v102o аватар

4.1. В rc.local прописать для

4.1. В rc.local прописать для автозапуска:
if [-f /usr/pkg/sbin/httpd]; then
/usr/pkg/sbin/httpd -k start
fi

У меня apache по нормальному запускается:
просто добавить rc.conf apache=YES
а с локали так...
/etc/rc.d/apache start

Да и корень менять не обязательно вовсе

>>Поменять корень вэб-документов на что-нибудь покороче, параметр >>DocumentRoot, например,
>>DocumentRoot "/var/www"

Достаточно в vhost добавить новый "сайт(ы)"

<VirtualHost *:80>

ServerName sitename.ru.yourdomain

ServerPath /YOUPATH/sitename.ru

DocumentRoot /YOUPATH/sitename.ru

ServerAdmin webmaster@sitename.ru

ScriptAlias /cgi-bin/ /YOUPATH/sitename.ru/cgi-bin/

</VirtualHost>


<Directory /YOUPATH/sitename.ru>

AllowOverride All

Options Indexes Includes IncludesNOEXEC MultiViews Indexes FollowSymlinks

Order allow,deny

Allow from all

</Directory>


<Directory /YOUPATH/sitename.ru/cgi-bin>

Options ExecCgi Includes MultiViews FollowSymlinks

</Directory>

Я так для себя делаю, можно внести любые изменения

а в X:\WINDOWS\system32\drivers\etc\hosts другой машине прописать
(если таковая машина есть)

YOURNETBSD IP sitename.ru.yourdomain

Пишите в Вашем броузере sitename.ru.yourdomain и Вы там...

tzar аватар

Это, конечно, да. Можно и

Это, конечно, да. Можно и VirtualHost'ами на другие каталоги, но мне нравится, когда всё в одном месте, а не разбросано по винту и ищи потом через конфиг, где у тебя живёт собака.точка.ру

А по поводу apache=yes согласен полностью, можно и так))

v102o аватар

Просто у меня сайтов много...

Просто у меня сайтов много... :)

tzar аватар

Возможно я не совсем

Возможно я не совсем корректно выразился))
У меня тоже всё в VirtualHost'ах но лежит по пути /var/www)) (/var/www/site1,/var/www/site2,/var/www/site3)

tzar аватар

Проверил оба варианта.

Проверил оба варианта. Этот:
- прописать в rc.local: apache=yes оказался 100% правильным,
- а мой:
if [-f /usr/pkg/sbin/httpd]; then
/usr/pkg/sbin/httpd -k start
fi
не всегда поднимал apache
вот такие пироги :)

tzar аватар

Было бы нечестно не выложить

Было бы нечестно не выложить ссылку источник по данному вопросу, просто когда писал статью, ссылки под рукой не было (она осталась на работе).

Источник: http://bsdnetwork.blogsome.com/2007/10/03/mysql-netbsd/