Kłopoty z portami i z FLAVORS

Posted on Fri 25 November 2005 in SGI O2 z OpenBSD • 2 min read

Jak się nie chce człowiekowi czytać tylko szybko,s zybko chce mieć OBSDAMP-a (OpenBSD, Apache, MySQL i PHP) uruchomionego to naraża się na utratę wielu godzin życia. Aby nie powtarzać błędów i wreszcie pojąć o co chodzi z w kompilacji portów, zapisuję poniżej co i jak.

Zaczynając zabawę z kompilacją PHP z portów należałoby przede wszystkim odesłać każdego do manuala bsd.port.mk(5), bo tam znajduje się źródło WIEDZY.

Powiedzmy, że nie chce mi się teog czytać, a szybko chcę skompilować z portów PHP4 bez wsparcia dla X11, bez PostgreSQL-a i bez SNMP (tego ostatniego nie, bo na SGI O2 nie chce się toto skompilować).
ńÄ?¬Ö√Ä?Ň°ródła portu znajdują się w katalogu /usr/ports/www/php4,a dokładniej w podkatalogu extensions. Należy podać następujące komendy:
# cd /usr/ports/www/php4/extensions
# make show=FLAVORS
no_x11 no_bz2 no_curl no_dba no_dbase no_dbx no_domxml no_filepro no_gd no_gmp
no_imap no_ldap no_mcrypt no_mhash no_mysql no_ncurses no_odbc no_pdf no_pgsql
no_shmop no_snmp no_sybase_ct no_xmlrpc no_xslt
# FLAVOR="no_x11 no_snmp no_pgsql" ; export FLAVOR
# make package

A teraz długie czekanie... aż się cudeńko poprawnie skompiluje.

Miniuwaga: niektóre, wymagane przez PHP package są gotowe do pobrania z serwerów lustrzanych, ja używam:

# PKG_PATH="ftp://ftp-stud.fht-esslingen.de/pub/OpenBSD/3.8/packages/mips64/"
# export PKG_PATH

Po kompilacji warto upewnić się czy został zainstalowany pakiet z php-core, wydajemy komendę:

# pkg_info

i widzimy listę zainstalowanych pakietów. Jeśli jest wśród nich php-core nie zapominajmy o wydaniu polecenia:

# /usr/local/sbin/phpxs -s

w celu zainstalowania PHP. Teraz jeszcze należy sprawdzić zawartość pliku /var/www/conf/httpd.conf i w razie konieczności dodać następujące linijki:

AddType application/x-httpd-php .php
DirectoryIndex index.html index.php index.phtml index.php4 index.php3

Po zakończeniu operacji skompilowane pakiety znajdą się w /usr/ports/packages/mips64/ftp/, wystarczy więc zmienić zmienną PKG_PATH tak by wskazywała ten katalog i zainstalować potrzebne extensions:

# PKG_PATH="/usr/ports/packages/mips64/ftp/" ; export PKG_PATH
# pkg_add -v php4-mysql-4.4.0.tgz
# /usr/local/sbin/phpxs -a mysql

Teraz do pliku /var/www/conf/php.ini dopisujemy linię:

extension=mysql.so

coby nam się obsługa połączeń z MySQL-em ładowała.

Oczywiście restartujemy Apache'a i wykonujemy test, np. taki jaki opisany został na stronie http://freeyourbox.org/tutorials/bsd/obsd3.8_apache_php_mysql.html.
Finito!
Uwaga!
Apache w OpenBSD jest zchrootowany w katalogu /var/www, natomiast domyślna instalacja MySQL zakłada plik gniazda (socket) w katalogu /var/run, i Apache nie "widzi" socketa. Należy, jak napisano w tutorialu, dodać hardlinka do tego socketa:
# mkdir -p /var/www/var/run/mysql
# ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock