Архив метки: apache

Debian Stretch и новое ядро на Cubietruck

Сидел как-то я, обновлял Debian на Cubietruck и вдруг в голову пришла мысль - а когда следующая версия? Наверное, в следующем году должна выйти. Полез в Википедию, удовлетворить своё любопытство. Как оказалось, уже полгода, как вышла.

Начал искать статьи про обновление до Debian Stretch, вдруг какие-нибудь подводные камни вылезут, все таки не rolling-release, как, например, Gentoo.

Нашёл эту статью. В принципе, ничего не изменилось, ничего сложного.

Обновился, но вот вылезла такая проблема - не запускался Apache, MySQL, TOR, и еще какой-то сервис. При запуске Apache выдавал такую ошибку:

systemd: apache2.service: Control process exited, code=exited status=226

Failed at step NAMESPACE spawning /usr/sbin/httpd: Bad file descriptor
Aug 27 22:48:39 cubie2 systemd: apache2.service: Main process exited, code=exited, status=226/NAMESPACE

На Cubieforums нашёл тему, у человека была такая же проблема, только не было решения.

А решение относительно простое - нужно обновить ядро. Начнём с того, что изначально на Cubietruck был установлен Cubian. Но постепенно я переехал на Debian Jessie, т.к. Cubian перестал обновляться. И при обновлении с Cubian/Wheeze до Jessie так же пришлось обновлять ядро, про это я уже писал.

Инструкция ниже, это смесь из нескольких статей с linux-sunxi.org - Mainline Kernel Howto, Display, и инструкции Miklós Aurél Rónai - Compiling mainline kernel for CubieBoard2 and CubieTruck ну и немного моих знаний 😉

Мой Cubietruck используется исключительно как домашний сервер, поэтому мультимедийные опции в ядре мне не нужны. По поводу загрузки - система начинает загружаться с SD карты, дальше загрузка идёт с HDD. Так же через USB подключён внешний жёсткий диск.

Я сначала опишу процесс сборки ядра и загрузчика, а уже потом будет подготовка SD карты для работы.

Всё делается на Cubietruck'e через SSH. Создаём директорию src для удобства работы и переходим в неё:

mkdir src && cd src

Прежде всего, установим U-boot:

wget ftp://ftp.denx.de/pub/u-boot/u-boot-2017.11.tar.bz2
bzip2 -d u-boot-2017.11.tar.bz2
tar xf u-boot-2017.11.tar
cd u-boot-2017.05
make Cubietruck_defconfig
make

Пока с u-boot всё. Переходим обратно в директорию src, скачиваем исходники ядра и распаковываем их:

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.68.tar.xz
xz -d linux-4.9.68.tar.xz
tar xf linux-4.9.68.tar

Устанавливаем пакеты для сборки ядра:

apt install gcc build-essentials swig libpython-dev libfdt-dev gcc-6-plugin-dev libncurses5-dev

Переходим с каталог linux-4.9.68 и конфигурируем ядро перед сборкой:

cd linux-4.9.68
make ARCH=arm sunxi_defconfig

Обязательно нужно поставить ARCH=arm перед menuconfig, иначе пропадут все специфичные для arm опции (следовательно, ядро не загрузится). Если забыли - нужно снова выполнить make ARCH=arm sunxi_defconfig

make ARCH=arm menuconfig

Ядро нужно обязательно сконфигурировать, по умолчанию в этой конфигурации нет поддержки NFS-сервера, устройств хранения USB, фреймбуфера, Bluetooth, Wi-FI, PPPoE, поддержки мыши, батареи и т.д. В общем много чего отключено по умолчанию.

Так же нет поддержки NAND - обязательно включите, если система загружается с NAND, а не с SD карты Device Drivers > Memory Technology Device (MTD) support > NAND Device Support > Support for NAND on Allwinner SoCs (*). Обязательно должен быть в ядре, а не собран модулем.

NFS сервер:

File Systems > Network File Systems > NFS Server Support (Собираем как модуль (М) или он будет прямо в ядре (*), кому как больше нравится)

Выходим обратно в File Systems, здесь ещё нужно активировать файловые системы, с которыми будет работать Cubietruck. По умолчанию включены лишь Ext4 с поддержкой Ext2 и FAT. Если будут подключаться диски/флешки с другими файловыми системами, их нужно включить здесь.

Работа с USB накопителями:

Device Drivers > SCSI device support > SCSI disk support (*)

Выходим обратно в Device Drivers > USB Support > USB Mass Storage Support (M) - можно собрать и модулем.

Выше можно включить OTG:

OTG Support.

Если не нужна поддержка звука и мультимедии:

Снять галочки с Sound Card Support и Multimedia Support.

Включение Framebuffer в консоли:

Device Drivers > Graphics support > Frame buffer Devices > Simple framebuffer support и в этом же меню включить Support for frame buffer devices > Enable firmware EDID.

В общем всё, настройка закончена, если кому нужно что-то еще подключить\отключить - всё в ваших руках, ничего сложного здесь нет.

Сохраняем конфиг. файл и выходим из menuconfig

Собираем ядро, dts, модули ядра и устанавливаем их:

# make zImage dtbs modules modules_install

Сборка на Cubietruck с таким конфигом займёт около 3-х часов.

После сборки ядра нужно подготовить SD карту к работе с новым ядром.

Если хотите очистить SD карту, сохранив таблицу разделов:

dd if=/dev/zero of=/dev/mmcblk0 bs=1k count=1023 seek=1

Если хотите очистить SD карту вместе с таблицой разделов:

dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=1

Лично я выбрал первый вариант. Далее, создаём таблицу разделов на SD карте, первый раздел будет смещён на 1МБ от "начала" SD карты (в это место будет записан загрузчик) и размером 16Мб, а второй займёт всё оставшееся место на карте.

blockdev --rereadpt /dev/mmcblk0
cat <<EOT | sfdisk /dev/mmcblk0
1M,16M,c
,,L
EOT

Создаём файловые системы:

mkfs.vfat /dev/mmcblk0p1
mkfs.ext4 /dev/mmcblk0p2

Теперь нужно установить загрузчик (u-boot). Возвращаемся обратно  в директорию u-boot-2017.11:

cd ../u-boot-2017.11

Записываем ранее скомпилированный загрузчик на SD карту:

dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

Монтируем загрузочный раздел SD карты и копируем туда dtb файл и образ ядра:

mkdir /mnt/bootprt
mount /dev/mmcblk0p1 /mnt/bootprt
cp linux-4.9.68/arch/arm/boot/zImage /mnt/bootprt
cp linux-4.9.68/arch/arm/boot/dts/sun7i-a20-cubietruck.dtb /mnt/bootprt

Переходим в примонтированный загрузочный раздел и создаём файл boot.cmd со следующим содержимым:

fatload mmc 0 0x46000000 zImage
fatload mmc 0 0x49000000 sun7i-a20-cubietruck.dtb
setenv bootargs console=tty0 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1920x1080p60 root=/dev/sda2 rootwait panic=10 ${extra}
bootz 0x46000000 - 0x49000000

Поменять здесь можно опцию root - в данный момент она указывает, что корневой раздел находится на /dev/sda2. Опция disp.screen0_output_mode устанавливает разрешение фреймбуфера.

И последняя команда, которая создаёт файл boot.scr:

mkimage -C none -A arm -T script -d boot.cmd boot.scr

Всё, можно перезагружать систему.

Так же можно скачать готовые скомпилированные ядра и модули отсюда. Они для десктопа, с поддержкой всякого - собиралось такое ядро на Cubietruck около 12 часов.

Правда у меня они так и не завелись, возможно я что-то не так делал. Грешу на файл boot.cmd и образ ядра - uImage, а не zImage. Для загрузки uImage ипользуется команда bootm, а я не помню, менял я её или нет 🙂 Попробую ещё на новых версиях, как их выложат.

Внезапно

Отвалился sshd. Я цепляюсь к Cubietruck через ssh, а мне в ответ "Write failed: broken pipe". Прогонял через Strace и GDB, первая кажет, что отваливается на этом:

privsep_preauth: preauth child terminated by signal 11

второй не кажет ничего. При перезапуске через "service" - Segmentation fault. Вручную, через "/etc/init.d/sshd start" запускается, но все равно толку нет. Начал лазить везде, читать всякое. Кто рекомендовал увеличить время ожидания сервера, кто переустановить либы Kerberos'a (libkrb5). Потом я еще решил обновить OpenSSH до версии в Jessie, вдруг заработает. Но поставить не получилось, т.к. ssh по прежнему не перезапускался через команду "service ssh restart", поэтому новая версия не ставилась.

Дальше решил вообще перейти на Jessie, мало ли, вдруг после обновления заработает. Поменял в файле apt.conf  "Default-Release" на "jessie", раскоментировал в source.list строку

"deb http://http.debian.net/debian/ jessie main contrib non-free"

и дальше apt-get upgrade. Обновлялось долго, 253 пакета нужно было обновить, плюс система работает на SD карте. Правда все эти танцы - как мертвому дрочить. При этом еще и Apache начал падать с Segmentation fault.

Поэтому решил перезагрузить кубик, по идее должно решить проблему. Перезагрузил, система загрузилась, хотя в другом посте я очковал по этому поводу. И все заработало, что радует. И да, таки разобрался с конфигом для DDclient, чтобы он обновлял IP адрес для noip.com. Конфиг:

use=web, web=http://ip1.dynupdate.no-ip.com/, web-skip='IP Address'
protocol=noip
login=login
password='password'
hostname

Но вообще думаю в начале апреля зарегать свой собственный домен. Стоит-то копейки, пачка сигарет в месяц, грубо говоря.

Обратно всплыть по рубку.

Наконец-то дошли руки в который раз поднять свой уютный бложек. Только уже на Cubietruck (Cubieboard 3). Однако обо всем попорядку.

Cubietruck пришел ко мне из Китая примерно в конце Октября. В это врямя я был сурьёзно занят употреблением пивных напитков и поэтому занялся этой коробочкой только в 2015 году, а так просто включил, посмотрел, что встроенный Android грузится, выключил, убрал все обратно в коробку и поставил на полку. Где-то в Январе веселье закончилось, я смахнул пыль с убранной на полку коробки и понеслось. Выцарапав из старой электронной книги sd карту объёмом 8 Гб, записал на нее Cubian. Есть еще дистрибутивы, например Lubuntu или Fedora, а так же основанные на Arch'е и Gentoo. Присовокупил внешний жесткий диск 3,5". Запитывал от такого блока питания. Поднял NFS, Nginx-Mysql-Wordpress-PHP, Transmission. Решил обновить Transmission, т.к. в версии 2.52 нельзя указывать путь для сохранения каждого торрента, задается только общий. И подключил Jessie репозиторий. И понеслось. Transmission потащил за собой всякое, конфликты, зависимостей udev, который не хотел ставится из-за старого ядра и т.д. В общем все пропало, форматнул флешку, начал жизнь с чистого листа. Потихоньку обновился, разобрался с udev, поставив новое ядро (правда не знаю, сможет оно загрузится или нет), ну а дальше по накатанной - NFS, Nginx-Mysql-Wordpress-PHP. Вот только теперь Nginx не захотел казать мой бложек. Делал все как в прошлый раз, ничего. Поставил Apache, такая же ситуация (правда я его не настраивал). Ну и плюнул на это дело. А где-то через месяц опять вбил IP моего мега-сервера и вуаля - стандартная страница Apache. Сразу же попробовать потыкать палочкой в Nginx, но он все равно не подавал признаков жизни, поэтому я его хладнокровно aptitude purge nginx. И начал ковыряться в настройках Apache. У него оказалось так же все разбросано по директориям, как и у Nginx (да, это стиль Debian, я знаю, просто когда первый раз ставил Nginx, был не в курсе и был несколько удивлен таким расположением настроек). Все заработало, правда теперь осталось подшаманить с WordPress, т.к. я скопировал конфиги, но не папку с плагинами и темами. Соответственно, при заходе на главную, показывает белый экран и все. Но если зайти на какую-нибудь другую страницу, например настроек, то все сразу отображается. Лечится просто установкой другой темы в настройках.

И да, Plex я не поднял, т.к. его нет в официальном репозитории. Собирать его ручками как-то не хотелось, а на официальном сайте только для ARM 6.x, поэтому остановился на MiniDLNA. Правда чуть-чуть пришлось подшаманить - у меня всё видео раскидано по директориям - Фильмы, Сериалы и, конечно, Аниме. А когда задаешь список путей до файлов в конфиге MiniDLNA, то все смешивается, т.е. телевизор кажет общую папку, где находятся Фильмы, Сериалы и, конечно, Аниме. Поэтому просто создал директорию Media и туда накидал символических ссылок на Фильмы, Сериалы, и, конечно, Понятно-Что.

Итог. За свои деньги (я брал за 3800 на Aliexpress) аппарат кошерный, занимает мало места, не издает шума. Я свой старый системник разобрал на запчасти, корпус упер в гараж, а на его место поставил тумбу. А Cubietruck вместе с жестким диском лежит на подоконнике у окна.

В работе

 

Wi-Fi, установка Gentoo и прочее

Давненько не писал сюда, хотя поводов хватало - всякое было с моей любимой генточкой. сейчас, пока сижу на больничном, можно и написать всякое, ибо делать совсем нечего.
Итак, 1-ое - на ноуте переехал с freeBSD на Gentoo. вроде все нормально, кроме одного - при входе в админку сайта, после ввода логина\пароля, апач просто напросто сегфолтится и залогинится не получается. На ноуте я был авторизован, поэтому в админку мог попасть спокойно, все работало, за исключения логина.
Потом удачно навернулся блок питания на ноуте, поэтому пришлось забрать блок питания со старого бука, пока пользуюсь им, соответственно поэтому сайт в ауте.
при переезде была одна особенность -  ядро на установочном диске Gentoo было старое, 2.6.18 или 19, и вот, после chroot'a и обновления coreutils до 8.8, перестали собираться программы, ругался touch, что не может создать файл. Сначала нашел на форуме такое решение - вытягивание и пересборка из исходников около 30 системных утилит. Поискал дальше - оказалось, что можно всего-то откатить coreutils на предыдущую версию - 8.5. После этого обновил ядро и coreutils - все нормально работает.
Теперь решил заняться Wi-Fi'ем на ноуте. Теперь его стали часто дергать в другую комнату, а у него появилась еще одна болячка - при выдергивании шнура он отключается. Причем, когда втыкаешь шнур обратно - загорается индикатор зарядки батареи. Ну а при каждом отключении, нужно заного настраивать подключение к Wi-Fi-сети. Скрипт /etc/init.d/net.wlan0 требует wpa_supplicant. Ставим его (причем сеть без шифрования). В /etc/wpa_supplicant/wpa_supplicant.conf достаточно добавить

network={
ssid="essid_name"
key_mgmt=NONE
}

а остальные параметры должны быть прописаны в /etc/conf.d/net.
И еще, чтобы не перезаписывался /etc/resolv.conf (без клиента dhcp) нужно в /etc/conf.d/net добавить такое
dns_servers_wlan0=("ip адрес DNS")
Вот как-то так.

FreeBSD + Apache + MySQL + PHP5 + WordPress

Собственно, почему решил переехать на свой собственный standalone блог:  завалялся у меня старый ноут, на котором стояла попеременна то винда, джента,
фря, винда и опять фря. Вообще хотел на нем продолжить изучение Фряхи, но каждый раз давал слабину и просто забивал на это и бук так и продолжал
пылиться дальше.  Ну а на этот раз решил так сказать простимулировать себя, чтобы не было желания в очередной раз забросить Фряху и бук. И начал
думать, что бы такое организовать на этом буке. Думал долго, минуты 3. И надумал такое – запустить свой собственный блог, а потом еще и форум докучи,
чтобы был хоть какой-то опыт в настройке Апача, Похапе и Мускуля. посмотрел, че да как, выбрал в качестве движка блога WordPress.
Собствеено, здест описывается процесс установки и настройки связки Apache + MySQL + PHP5 + WordPress на FreeBSD.
Т.к. сам делал все по различным руководствам, я просто дам ссылку на страницу с настройками, ибо смысла перепечатывать одно и то же нет.
Начинаем с установки MySQL
Опции сборки и пример конфига можно посмотреть здесь – http://www.lissyara.su/articles/freebsd/programms/mysql/
Хотя в первый раз, когда я все ставил, не пользовался ни опциями сборки, которые могут ускорить работу Мускуля, ни исправлял конфигурационный файл -
все работало и так. После пересборки и рихтовки конфига тоже все работает. Менять что-то или нет – на ваш выбор.
Ставим mysql50-server

cd /usr/ports/databases/mysql50-server
make install clean

После того, как все соберется, ставим mysql50-scripts

cd /usr/ports/databases/mysql50-scripts
make install clean

Дальше ставим клиент mysql50-client

cd /usr/ports/databases/mysql50-client
make install clean

Прописываем в /etc/rc.conf
mysql_enable=”YES”

Создаем таблицу

mysql_install_db

Нужно сразу дать права на каталог, иначе сервер просто не будет запускаться, ссылаясь, что не может создать файл в каталоге /tmp, я очень долго искал
причину, почему он не хотел запускаться. Оказалось все просто, нужно было всего лишь сделать

chown -R mysql:mysql /var/db/mysql

Далее, запускаем

mysql_secure_installation

Полезет всякое, полностью все приводить здесь не буду, только вопросы и возможные ответы при установке.

Ниже требуется пароль как бы рута, который будет рулить всем мускулем, но так как мы ставим Мускуль в первый раз и рутовый пароль для Мускуля еще не
установлен, просто жмем Ентер при запросе пароля

In order to log into MySQL to secure it, we’ll need the current
password for the root user.  If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

Далее спрашивается, нужно ли заводить пароль. Конечно же отвечаем да и задаем пароль.

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n]Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

Тут сообщается, что по умолчанию, есть вход для анонимных пользователей. Т.е. любой может присовокупиться к мускулю. Соответственно, это не гуд,
поэтому отвечаем утвердительно, чтобы отключить вход для анонимных пользователей.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]Y
… Success!

Говорится, что по идее рут пользователь Мускуля может подключаться к базе только локально. Конечно же отвечаем утвердительно. Для справки – можно
подключаться через SSH и заходить под рутом, при утвердительном ответе это все будет работать. Просто видел на форумах, что люди спрашивают – как же
тогда удаленно работать с базой, если отключить удаленный вход для рута.

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]Y
… Success!

По умолчанию создается база test, к которой имеет доступ любой пользователь. она нужна только для тестирования и ее можно удалить. Отвечаем
утвердительно.

By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]Y

В общем – отвечаем утвердительно :)
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Cleaning up…

All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Все, Мускуль чутка настроен и готов к работе.

Далее, нужно создать базу данных для работы WordPress.

mysql -uroot -p   здесь вводится пароль рута, который вводился при инсталяции MySQL, не обычного пользователя root.

появится приглашение MySQL

mysql>

вводим такое

mysql> CREATE DATABASE databasename; где databasename – имя вашей базы. Можете назвать blog, wordpress. На вышу фантазию. Не забудте точку с запятой
(;) после имени базы.

Далее, даем пользователю права на доступ к базе

mysql> GRANT ALL PRIVILEGES ON databasename.* TO “wordpressusername”@”hostname”
-> IDENTIFIED BY “password”; databasename – имя созданной выше базы, wordpressusername – имя пользователя, который будет работать с базой, например
vasia. В 99% случаеях hostname нужно заменить на localhost. password – пароль для доступа к базе datebasename. Опять же не забываем про (;) после
IDENTIFIED BY “password”.

Последний шаг

mysql> FLUSH PRIVILEGES;

и выходим отсюда

mysql> EXIT

Все, с MySQL разобрались.

Теперь ставим Apache

cd /usr/ports/www/apache22
make install clean

Апач поставился, пока ничего не трогаем, потом к нему вернемся ;)

Ставим PHP

cd /usr/ports/lang/php5

make install clean

В меню сборки отмечаем строчку “Build Apache module”

Жмем Ок, ждем, когда РНР соберется.

Ковыряемся в файле /usr/local/etc/apache22/httpd.conf

Там должна появится строчка в секции Dynamic Shared Object (DSO) Support

LoadModule php5_module        libexec/apache22/libphp5.so

В ServerAdmin вписываем адрес, по которому будут слать вам письма в случае чего
В ServerName адрес, который вы зарегестрировали. Я через DynDNS взял себе genideb.homeunix.org, соответственно вписываю его
В DocumentRoot пишем адрес до WordPress. Правда мы его еще не ставили, если будете куда-то его перемещать, то указываете нужную папку. Если нет, то по
умолчанию все ложится в /usr/local/www/data/wordpress/. Я лично ничего никуда не перемещал, все работает в стандартной папке.

Находим строчку <IfModule dir_module>

Она должна выглядеть так

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

Еще находим такую строчку

<Directory “/usr/local/www/data/wordpress/”>

Добавляем или меняем значения на

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

И в конец конфига добавить такую строчку

AddType application/x-httpd-php .php

Все должно работать. Для изменения других настроек, меняющих производительность Апача, можно посмотреть ссылки в конце данного поста.

Итак, теперь еще пару приложений

cd /usr/ports/databases/php5-mysqli/
make install clean

cd /usr/ports/www/wordpress
make install clean

Копируем конфиг WordPress’a

cd /usr/local/www/data/wordpress/
mv wp-config-sample.php wp-config.php

Открываем wp-config.php в текстовом редакторе и редактируем следующие строчки

define(‘DB_NAME’, ‘Здесь пишем имя созданной базы в MySQL’);
define(‘DB_USER’, ‘Здесь имя пользователя для работы с базой’);
define(‘DB_PASSWORD’, ‘Здесь пароль для доступа к базе’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);

Чуть ниже находим такие строчки

define(‘AUTH_KEY’,         ”);
define(‘SECURE_AUTH_KEY’,  ”);
define(‘LOGGED_IN_KEY’,    ”);
define(‘NONCE_KEY’,        ”);
define(‘AUTH_SALT’,        ”);
define(‘SECURE_AUTH_SALT’, ”);
define(‘LOGGED_IN_SALT’,   ”);
define(‘NONCE_SALT’,       ”);

В кавычки нужно ввести всякую белиберду, например вот так

define(‘AUTH_KEY’, ‘:dr+%/5V4sAUG-gg%aS*v;&xGhd%{YKC^Z7KKGh j>k[.Nf$y7iGKdJ3c*[Kr5Bg');
define('SECURE_AUTH_KEY', 'TufWOuA _.t>#+hA?^|3RfGTm>@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\\`39m_(‘);
define(‘LOGGED_IN_KEY’, ‘S~AACm4h1;T^\”qW3_8Zv!Ji=y|)~5i63JI |Al[(<YS<2V^$T])=8Xh2a:b:}U_E’);
define(‘NONCE_KEY’, ‘k1+EOc-&w?hG8j84>6L9v\”6C89NH?ui{*3\\(t09mumL/fFP_!K$JCEkLuy ={x{0′);

и т.д. Это сделано специально, чтобы осложнить подбор паролей. Чем длиней и позаковыристей – тем лучше.

Создаем в папке (если вы никуда не перемещали WordPress) /usr/local/www/date/wordpress/
файл .htaccess и прописываем в нем такое

DirectoryIndex index.php
Options -Indexes

Стартуем все это

запускаем MySQL

/usr/local/etc/rc.d/mysql-server start

Запускаем Apache

apachectl start

Для запуска установки WordPress запускаем браузер, набираем имявашегосайта/wp-admin/install.php – если только вы не перекинули файлы установки в
поддиректорию, например имявашегосайта/blog/ тогда адрес должен быть имявашегосайта/blog/wp-admin/install.php

Должен запуститься мастер установки. Все, дальше вы сами, завести пользователя и войти в систему можно и без подсказки :)

Ссылки по теме

Опции Apache и просто всякое интересное
Настройки MySQL
Установка WordPress, официальная документация
Быстрая установка WordPress