| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
truefeel 카페 관리자
가입: 2003년 7월 24일 올린 글: 1277 위치: 대한민국
|
올려짐: 2003.10.06 월, 9:53 pm 주제: Re: apache+php 설치가 안되서 |
|
|
bird72님이 저에게 보낸 질문입니다.
| 인용: |
안녕하세요 ... 친절하신 답변에도 불구하고 설치가 안되었습니다....ㅠ.ㅠ
제가 설치한 순서는 다음과 같습니다.
[아파치 업그레이드]
1. /tmp에 파일을 업로드 후 압축을 해제한다.
]# tar zxvf apache_1.3.28.tar.gz
2. 설치될 디렉토리를 지정한다.
]# ./configure --prefix=/usr/local/apache_1.3.28
3. php설치
]# cd /tmp/php-4.3.3
]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=/tmp/apache_1.3.28 --with-gd --with-png --with-zlib \
--enable-track-vars=yes --disable-debug --with-mod-charset --with-language=korean --with-charset=euc_kr
]# make
]# make install
]# vi /tmp/php-4.3.3/php.ini-dist
zend 설정
[Zend]
zend_optimizer.optimization_level=15
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"
]# cp /tmp/php-4.3.3/php.ini-dist /usr/local/php.ini
4. apache 설치
]# ./configure --prefix=/usr/local/apache_1.3.28 --enable-module=all --enable-shared=max
5. 기존 apache Rename
]# mv /usr/local/apache
5. 심볼릭링크
]# ln -s /usr/local/apache_1.3.28 apache
5. httpd.conf 수정
]# vi /usr/local/apache_1.3.28/conf/httpd.conf
- AddType application/x-httpd-php .php4 .php3 .php .htm .html
- DirectoryIndex index.html index.htm index.php index.php3 index.cgi
위 방법으로 설정을 한 후에 재시작하고....
php파일을 브라우져로 불러보면 다운을 받으려고 하는군요...ㅠ.ㅠ
그래서..이번엔 다른 방법으로 설치를 했는데 거의 비슷하지만
심볼릭 링크를 걸지않고 apache_1.3.28와 apache를 둘다 놔둔상태에서
apache_1.3.28의 httpd.conf의 포트를 8000으로 바꾸고 아파치 서버를 실
행 했습니다.
두종류의 httpd가 생긴거지요...
nobody 1319 0.0 0.8 5108 2184 ? S 19:01 0:00 /usr/local/apache/bin/httpd
nobody 1340 0.0 0.7 4008 1856 ? S 19:05 0:00 /usr/local/apache_1.3.28/bin/httpd
근데 php는 설치를 따로 하지 않았는데...즉 덮어 씌웠는데도 기존에 설치되어있는 apache에서 phpinfo()를 브라우져상에서 호출해보면 새로설치하기 이전의 버젼이 나오고... 포트를 다른 것으로 한 것에서 웹브라우져에서 phpinfo()를 호출하면
여전히 다운받으려고 하네요...
에휴... 왜 그런것일까요???
|
휴~~ 그 설치한 과정을 한 눈에 보려고 하니 눈에 안들어오네요.
1. httpd.conf에는 libphp4.so 를 로딩하는 설정이 있나요?
먼저 httpd.conf에서 다음을 먼저 확인하세요.
| 코드: |
LoadModule php4_module libexec/libphp4.so
... 중략 ...
AddModule mod_php4.c
|
위 줄이 없다면 당연히 안될겁니다.
2. 그리고 컴파일 php4 -> apache 설치형태라면
apache 컴파일할 때 다음과 같이 libphp4 를 포함하도록 컴파일 하세요.
| 코드: |
./configure --prefix=/usr/local/apache_1.3.28 ... 중략 ... \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=php4
|
php는 설치한거니 그대로 두고 apache 설치 과정부터 하시면 됩니다.
3. apache+php가 제대로 된 것인가?
위와 같은 과정도 모두 했고, AddType도 넣었는데 안된다면 다음을 확인해보세요.
/usr/local/apache_1.3.28/ 에 설치했다면
apache 시작할 때 /usr/local/apache_1.3.28/logs/error_log 로그를 살펴보세요.
아파치 시작전에
창을 하나 띄워놓고 tail -f error_log로 로그를 보고 있고
다른 창에서는 아파치를 실행해보면 금방 알 수 있습니다. 다음과 같은 형태의 로그가 보여야 합니
다.
| 코드: |
[xxx xxx xx xx xx xx 2003] [notice] Apache/1.3.28 (Unix) PHP/4.3.3
|
만약 위와 같이 나오는데도 다운로드받을려고 한다면 AddType의 위치를 어디에 두었는지 의심이 됩니다.
---------------------------------------------------------------------------------------------------------
1. php 설정 파일 위치 (문제 해결과 무관)
php 컴파일할 때 --prefix=/usr/local/php을 지정하고 환경파일 경로를 지정안했으므로
/usr/local/php/lib/php.ini 가 맞습니다.
cp /tmp/php-4.3.3/php.ini-dist /usr/local/php.ini 가 아닙니다.
2. 참고 (문제해결과 무관)
AddType application/x-httpd-php .php4 .php3 .php .htm .html
참고로 여기에서 .php4, .php3 확장자를 가진 PHP파일을 사용하신가요? 없다면 지우세요.
PHP 실행가능 확장자를 최소한으로 하는게 좋습니다.
DirectoryIndex index.html index.htm index.php index.php3 index.cgi
DirectoryIndex 도 마찬가지입니다.
index.php3 index.cgi가 전혀 없는 경우라면 지우세요.
* 질문은 Q & A 게시판을 통해서... ^^  |
|
| 위로 |
|
 |
bird72
가입: 2003년 9월 24일 올린 글: 77
|
올려짐: 2003.10.09 목, 9:37 am 주제: 설치완료 후 궁금한점(감사합니다..^^) |
|
|
1. apache_1.3.27.tar.gz, php-4.3.2.tar.gz를 /tmp 혹은
압축을 풀 디렉토리로 이동하여 압축을 해제한다.(여기서는 /tmp)
cd /tmp
tar zxvf apache_1.3.27.tar.gz
cd /tmp/apache_1.3.27
2. 환경설정만 일단 해둔다.(php를 설치한 후에 재설치한다.)
[/tmp/php-4.3.2]# ./configure --prefix=/usr/local/src/apache : 설치할 폴더 지정(여기서는 /usr/local/src/apache)
3. php 압축해제하고 폴더로 이동한다.
cd /tmp
tar zxvf php-4.3.2.tar.gz
cd /tmp/php-4.3.2
4. php환경설정
[/tmp/php-4.3.2]# ./configure --prefix=/usr/local/src/php \ : 설치될 폴더지정
> --with-apache=/tmp/apache_1.3.27 \ : 현재 apache소스가 있는 위치 지정
> --with-mysql=/usr/local/mysql \ : 설치된 mysql위치 지정
> --with-config-file-path=/usr/local/src/apache/conf \ : php설정 파일 위치지정
> --with-exec-dir=/usr/local/src/apache/bin \ : apache실행파일 위치 지정
> --enable-track-vars=yes \ : php에서 값을 넘길 수 있도록 한다.
> --with-jpeg-dir=/usr/local \ : jpeg 라이브러리를 설치한 디렉토리 지정
> --enable-ftp \ : php에서 새로 도입된 FTP관련 함수를 사용하기 위한 옵션
> --with-mod-charset \
> --with-language=korean \
> --with-charset=euc_kr
5. 컴파일한다.
make
6. 인스톨한다.
make install
7. 인스톨이 이상없이 되었으면 apache폴더로 이동
cd /tmp/apache_1.3.27
8. 환경설정
[root@lubid /tmp/apache_1.3.27]# ./configure --prefix=/usr/local/src/apache \
--enable-rule=SHARED_CORE \
--enable-module=so \
--enable-shared=max \
--activate-module=src/modules/php4/libphp4.a : php를 apache 웹서버 모듈로 설치
9. 컴파일
make
10. 인스톨
make install
11. php환경설정 파일에 zend를 설정하고 관리할 폴더로 이름바꿔 복사한다.(설치시 지정한 폴더)
vi /tmp/php-4.3.2/php.ini-dist
zend_optimizer.optimization_level=15
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so" <-- 경로주의!
cp /tmp/php-4.3.2/php.ini-dir /usr/local/src/apache/conf/php.ini
12. apache설정
vi /usr/local/src/apache/conf/httpd.conf
기존과 동일한 apache설정
port 변경(기존서버가 운영시 테스트를 하기위해서)
: 80 => 8000
php환경설정
DirectoryIndex index.htm index.php index.cgi(cgi를 사용할 경우)
AddType application/x-httpd-php .php3 .php4 .php .htm .html .ph .inc 등등 필요한 것만...
AddType application/x-httpd-php-source .phps
그런데 궁금한 점이 있습니다....
위와같이해서 일단 서비스하는 것에는 이상이 없었습니다.
그런데 만약 위와같이 하는 것이 실무에서도 저런식으로 하는 것인지....
제생각에는 업그레이드라고 하기보다는 신규설치와 별 차이가 없다고 생각이 되는데 직접 호스팅을 해주는 업체에서도 저런식으로 하는 것일까요??
또 데몬을 내릴때 killall httpd 라는 명령을 사용했었는데 기존의 아파치 데몬들은 내릴 수 있었지만 새로 설치한 데몬들은 내려지지 않는데 그 이유가 무엇일까요?? _________________ ilovesusu |
|
| 위로 |
|
 |
truefeel 카페 관리자
가입: 2003년 7월 24일 올린 글: 1277 위치: 대한민국
|
올려짐: 2003.10.09 목, 1:04 pm 주제: Re: 설치완료 후 궁금한점 |
|
|
| bird72 씀: |
... 설치과정 중략 ...
그런데 궁금한 점이 있습니다....
위와같이해서 일단 서비스하는 것에는 이상이 없었습니다.
그런데 만약 위와같이 하는 것이 실무에서도 저런식으로 하는 것인지....
제생각에는 업그레이드라고 하기보다는 신규설치와 별 차이가 없다고 생각이 되는데 직접 호스팅을 해주는 업체에서도 저런식으로 하는 것일까요??
... 생략 ...
|
업그레이드가 위의 과정처럼 설치하는 것입니다.
어차피 소스 가져다가 하니 것니까 새로 하는게 맞습니다. (php만, apache만 하기도 합니다.)
* 사내 서버가 적은 경우라면
이전에 컴파일한 과정을 가지고 copy & paste 형식으로 컴파일을 합니다.
* 상당히 많은 호스팅의 경우는 쉘 스크립트를 작성을 해서 돌리거나,
한 서버에서 컴파일한 후(이미 검증이 되었으므로) 그대로 다른 서버로 rsync 나 tar등으로 옮겨서 서비스를 합니다. (물론 서버의 기본 환경 같아야 합니다.)
* 그리고
- 각 서버별로 달라지는 설정(버추얼 호스팅 설정 등),
- 디폴트 httpd.conf에서 수정해야하는 설정(AddType 등의 설정, log 설정 등)
은 별도의 .conf 파일을 만들어
httpd.conf 에서 Include 지시자를 통해 환경 파일을 읽어들입니다.
따라서 업그레이드할 때 httpd.conf 는 거의 수정없이 쉽게 가능한 것입니다.
| bird72 씀: |
또 데몬을 내릴때 killall httpd 라는 명령을 사용했었는데 기존의 아파치 데몬들은 내릴 수 있었지만 새로 설치한 데몬들은 내려지지 않는데 그 이유가 무엇일까요??
|
killall 을 사용하지 말고
Apache홈/bin/apachectl stop 으로 종료하고
Apache홈/bin/apachectl start 로 실행하세요.
이런식으로 도저히 내려가지 않으면 ps -ef 로 PID확인 후 kill -9 PID 하세요. |
|
| 위로 |
|
 |
bird72
가입: 2003년 9월 24일 올린 글: 77
|
올려짐: 2003.10.09 목, 2:39 pm 주제: 정말감사합니다...^^ |
|
|
안녕하세요...
이제야 가슴이 좀 편안해졌습니다.
초보관리자로서 한번도 호스팅업체에서 일해본적이 없는 저로서는 일을 하면서도 이게 과연 맞을까?? 하는 식의 질문에 항상 힘들었었습니다.
정말 친철하게 알려주셔서 감사드리구요...
염치 불구하고 다음에도 이런식의 부탁을 드려도 좋을지 모르겠네요...
사수가 없는 저로서는 이곳이 바로 사수와 같은 느낌입니다.
정말 감사합니다. _________________ ilovesusu |
|
| 위로 |
|
 |
|