1. 모든 소스화일 다운로드
컴파일러 및 관련 라이브러리화일들은 http://sunfreeware.com에서 다운로드 받아서 설치하였음.
Sun에서 배포하는 companion CD를 이용할때에는 LDFLAG 및 PATH등을 조정하여야 한다.
설치한 패키지화일
autoconf-2.57-sol9-sparc-local.gz
libgcc-3.3-sol9-sparc-local.gz
automake-1.7.2-sol9-sparc-local.gz
libpcap-0.7.2-sol9-sparc-local.gz
bison-1.75-sol9-sparc-local.gz
libpng-1.2.4-sol9-sparc-local.gz
coreutils-4.5.4-sol9-sparc-local.gz
libtool-1.5-sol9-sparc-local.gz
flex-2.5.4a-sol9-sparc-local.gz
libxml2-2.5.5-sol9-sparc-local.gz
freetype-2.1.2-sol9-sparc-local.gz
lsof-4.68-sol9-sparc-local.gz
gcc_small-3.3.2-sol9-sparc-local.gz
m4-1.4-sol9-sparc-local.gz
gd-2.0.12-sol9-sparc-local.gz
make-3.80-sol9-sparc-local.gz
gettext-0.11.5-sol9-sparc-local.gz
ncurses-5.3-sol9-sparc-local.gz
glib-1.2.10-sol9-sparc-local.gz
shutils-2.0.15-sol9-sparc-local.gz
gnupg-1.2.1-sol9-sparc-local.gz
tar-1.13.19-sol9-sparc-local.gz
gtk+-1.2.10-sol9-sparc-local.gz
xinetd-2.3.10-sol9-sparc-local.gz
iplog-2.2.3-sol9-sparc-local.gz
zip-2.3-sol9-sparc-local.gz
jpeg-6b-sol9-sparc-local.gz
zlib-1.1.4-sol9-sparc-local.gz
사용한 소스화일들.
httpd-2.0.48.tar.gz
mysql-4.0.16.tar.gz
php-4.3.4.tar.gz
2. mysql 컴파일
컴파일러는 gcc3.2를 이용했음(sunfreeware.com에서 다운로드 하였음).
환경변수의 설정
CC=gcc CFLAGS=”-O3 -m64 -fno-omit-frame-pointer”
CXX=gcc
CXXFLAGS=”-O3 -m64 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti”
LDFLAGS=’-R/usr/local/lib’
설정한 PATH는
PATH=/usr/sbin:/usr/bin:/usr/local/bin:/usr/ccs/bin:/usr/local/lib
./configure –prefix=/usr/local/mysql
–with-extra-charsets=complex –enable-thread-safe-client
–enable-local-infile –enable-assembler –with-named-z-libs=no –with-named-curses-libs=-lcurses –disable-shared
===========================================================================
sql_lex.cc: In function `void lex_init()’:
sql_lex.cc:85: error: `symbols’ undeclared (first use this function)
sql_lex.cc:85: error: (Each undeclared identifier is reported only once for
each function it appears in.)
sql_lex.cc:87: error: `sql_functions’ undeclared (first use this function)
sql_lex.cc: In function `int find_keyword(LEX*, unsigned int, bool)’:
sql_lex.cc:171: error: `get_hash_symbol’ undeclared (first use this function)
make[4]: *** [sql_lex.o] Error 1
make[4]: Leaving directory `/var/tmp/mysql-4.0.16/sql’
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/mysql-4.0.16/sql’
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/mysql-4.0.16/sql’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/mysql-4.0.16′
make: *** [all] Error 2
===================================================================================
에러발생.
LD_LIBRARY_PATH=/usr/local/lib 를 추가하고, 컴파일, 결과는 같은 에러..
웹사이트 참조한 결과,
환경 변수 추가후, make clean 또는 소스화일을 다시 풀고 make해야함..
그렇게 하여 이상 없이 make끝남..
make
cd
find /* > mysql1.txt
cd /
make install
cd
find /* > mysql2.txt
diff mysql1.txt mysql2.txt > Install-Mysql.txt
3. MySQL의 구동.
4. Apache, PHP의 컴파일
Apache precompile
apache2 소스 디렉토리에서,
./configure –prefix=/usr/local/apache2 –datadir=/exprot/home/apache –sysconfdir=/etc/apache\
아래 옵션은 openna사이트를 참고 해서 적당히 바꿨음.
–exec-prefix=/usr \
–bindir=/usr/bin \
–sbindir=/usr/sbin \
–mandir=/usr/share/man \
–sysconfdir=/etc/httpd/conf \
–includedir=/usr/include/httpd \
–libexecdir=/usr/lib/httpd/modules \
–datadir=/home/httpd \
–localstatedir=/var \
–with-mpm=prefork \
–enable-access=shared \
–enable-actions=shared \
–enable-alias=shared \
–enable-auth=shared \
–enable-auth-dbm=shared \
–enable-auth-digest=shared \
–enable-autoindex=shared \
–enable-cern-meta=shared \
–enable-cgi=shared \
–enable-cgid=shared \
–enable-dav=shared \
–enable-dav-fs=shared \
–enable-dir=shared \
–enable-env=shared \
–enable-expires=shared \
–enable-file-cache=shared \
–enable-headers=shared \
–enable-include=shared \
–enable-log-config=shared \
–enable-mime=shared \
–enable-mime-magic=shared \
–enable-negotiation=shared \
–enable-rewrite=shared \
–enable-setenvif=shared \
–enable-speling=shared \
–enable-ssl=shared \
–enable-unique-id=shared \
–enable-usertrack=shared \
–enable-vhost-alias=shared \
–enable-suexec=shared \
–with-suexec-caller=www \
–with-suexec-docroot=/home/httpd \
–with-suexec-logfile=/var/log/httpd/suexec.log \
–with-suexec-bin=/usr/sbin/suexec \
–with-suexec-uidmin=500 –with-suexec-gidmin=500 \
–disable-auth-anon \
–disable-charset-lite \
–disable-disk-cache \
–disable-mem-cache \
–disable-cache \
–disable-deflate \
–disable-ext-filter \
–disable-case-filter \
–disable-case-filter-in \
–disable-example \
–disable-proxy \
–disable-proxy-connect \
–disable-proxy-ftp \
–disable-proxy-http \
–disable-status \
–disable-asis \
–disable-info \
–disable-imap \
–disable-userdir \
–with-z \
–with-ssl \
–with-suexec
make
make install
환경화일 수정후 실행. 잘 된다…
PHP소스디렉토리에서,
옵션은 openna를 참조하여 적당히 바꿨음..
./configure –with-layout=Solaris –prefix=/usr/local/php \
–with-config-file-path=/etc/apache2 \
–enable-force-cgi-redirect \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-zlib \
–with-bz2 \
–with-gd \
–with-ttf \
–with-png \
–with-jpeg-dir=/usr/local \
–with-png-dir=/usr/local \
–with-freetype-dir=/usr/local \
–with-expat-dir=/usr/local \
–with-gmp \
–with-xml \
–with-imap=shared \
–with-mysql=shared,/usr/local/mysql \
–with-mysql-sock=/tmp/mysql.sock \
–with-pgsql=shared \
–with-ldap=shared \
–with-pspell \
–disable-debug \
–disable-rpath \
–disable-posix \
–enable-pic \
–enable-discard-path \
–enable-safe-mode \
–enable-magic-quotes \
–enable-bcmath \
–enable-dio \
–enable-gd-native-ttf \
–enable-sysvsem \
–enable-sysvshm \
–enable-track-vars \
–enable-wddx \
–enable-inline-optimization \
–enable-memory-limit
에러발생….
다른 방법을 찾아봄
참고 사이트는http://www.php.net/manual/en/install.apache2.php
apache2가 설치된것을 모두 제거하고 다시 컴파일.
이때, 옵션은 최소로 주었으며, –enable-so 옵션을 더 주었음.
./configure –enable-so –prefix=/usr/local/apache2 –datadir=/export/home/apache2 –sysconfdir=/etc/apache2 –enable-autoindex=shared –enable-vhost=shared –enable-userdir=shared
에러 없이 컴파일및 설치됨.
php컴파일
./configure –with-layout=Solaris –prefix=/usr/local/php \
–with-config-file-path=/etc/apache2 \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-gd \
–with-xml \
–with-mysql=shared,/usr/local/mysql \
–with-mysql-sock=/tmp/mysql.sock \
–enable-pic \
–enable-exif \
–enable-bcmath \
–enable-inline-optimization \
–enable-zlib
위의 옵션만 사용함.
에러는 없었으나, mysql지원이 안됨
다시 컴파일
위의 옵션중에서
–with-mysql=shared,/usr/local/mysql을 –with-mysql=/usr/local/mysql로 바꿈
잘 된다..
============================================================================
컴파일된 화일들
========================================
gen_lex_hash > lex_hash.h
ld.so.1: : fatal: libstdc++.so.6: open failed: No such file or directory
Killed
crle -l /usr/lib -l /opt/local/lib
cd ..
make
3 comments
./configure –enable-layout=GNU –prefix=/usr/local/apache2 –sysconfdir=/etc/httpd –datadir=/home/apache2 –enable-module=all –with-mpm=metuxmpm –with-z
요렇게 하면 모든 모듈을 사용가능한 상태로 컴파일 가능
Thank you for sharing!
./configure –prefix=/usr/local/apache2 –enable-mods-shared=most –enable-ssl –with-ssl=/usr/local/openssl
error:
ssl_engine_pphrase.c: In function `ssl_pphrase_Handle_CB’:
—>
solution.
http://www.mail-archive.com/debian-apache@lists.debian.org/msg06443.html
————–
Here is a patch to fix the problem:
— httpd-2.0.54.orig/modules/ssl/ssl_toolkit_compat.h 2005-02-04
12:21:18.000000000 -0800
+++ httpd-2.0.54/modules/ssl/ssl_toolkit_compat.h 2005-07-06
08:50:38.468750000 -0700
@@ -24,6 +24,12 @@
#ifdef OPENSSL_VERSION_NUMBER
+#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
+#ifndef PEM_F_DEF_CALLBACK
+#define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK
+#endif
+#endif
+
/*
* rsa sslc uses incomplete types for most structures
* so we macroize for OpenSSL those which cannot be dereferenced