AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message 안보이게 하기 

 

1. 서버 환경

OS : Ubuntu 14.04 LTS

 

Apache2 :

 

Server version: Apache/2.4.7 (Ubuntu)

Server built: Apr 3 2014 12:20:28

Server's Module Magic Number: 20120211:27

Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3

Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3

Architecture: 64-bit

Server MPM: prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=256

-D HTTPD_ROOT="/etc/apache2"

-D SUEXEC_BIN="/usr/lib/apache2/suexec"

-D DEFAULT_PIDLOG="/var/run/apache2.pid"

-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

-D DEFAULT_ERRORLOG="logs/error_log"

-D AP_TYPES_CONFIG_FILE="mime.types"

-D SERVER_CONFIG_FILE="apache2.conf"

 

2. 오류 메시지 

아파치 서비스 재시작중 가끔 아래와 같은 메시지를 볼수 있다.

 

물론 아래와 같은 메시지가 있다고 해서 서비스가 안되는건 아니지만 찝찝하므로 3.번과 같이 조치하도록 하자

 

root@test:/etc/apache2/sites-enabled# service apache2 restart

* Restarting web server apache2

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message [ OK ]

root@test:/etc/apache2/sites-enabled#

3. 해결 방법

root@test:/etc/apache2/sites-enabled# vi /etc/apache2/apache2.conf

ServerName localhost

 

 

/etc/apache2/apache2.conf 파일의 가장 마지막 부분에 ServerName localhost 값을 추가하고 아파치 서비스를 재시작 하면

위와 같은 메시지는 출력되지 않는다.

 


 

 

 

 

 

 

 

 

 

우분투 환경에서의 apache SSL 인증서 설치 방법 

 

구성 환경

* 서버환경 Ubuntu 14.10 LTS / apache 2.4

* apache2 기본 경로 : /etc/apache2/

 

* 인증서 타입 : wildcard

 

설치 방법

1. 인증서 파일 업로드


# mkdir /etc/apache2/ssl
# cd /etc/apache2/ssl
SSL 인증서 파일을  /etc/apache2/ssl 경로에 업로드

 

 

2. 인증서 파일 이름 변경(안해도 무방)
- SSL 인증서 받은 도메인이 hosts.tistory.com 일 경우 CA-1, CA-2 인증서 파일을 아래처럼 변경한다.
- CA-1,CA-2 인증서 파일 정보는 발급업체 메일 또는 파일에 명시되어 있으며 파일 이름을 변경하는 이유는

  루트 인증서와 체인인증서의 이름을 알기 쉽게 함이다.

  파일이름을 변경하지 않을 경우 "4. apache SSL 모듈 활성화" 부분의 주황과, 보라색 부분을 잘 맞춰 설정하자.

 

CA-1 정보(chanin 인증서) :  xxxxxx_CA_G3.crt -> hosts.tistory.com.chain-bundle
CA-2 정보(root 인증서)  : xxxxxx_CA.crt  -> hosts.tistory.com.com.root-bundle
key 파일 : hosts.tistory.com.key
crt 파일 : hosts.tistory.com.crt

 


3. SSL 패스워드 제거
- 해당 작업을 하지 않을 경우 Apache 서비스 재시작시 SSL 인증서의 패스워드를 넣어야 함
 
# cd /etc/apache2/ssl
# openssl rsa -in hosts.tistory.com.key -out hosts.tistory.com.key

Enter pass phrase for hosts.tistory.com.key: SSL 인증서 패스워드 입력(SSL 인증서 발급업체 메일 또는 발급받은 파일내 있음)

 

- 확인방법 : 다시한번 openssl rsa -in hosts.tistory.com.key -out hosts.tistory.com.key 명령어 실행 인증서 패스워드를 물어보지 않으면 정상적으로 제거됨

 


4. apache SSL 모드 활성화
# a2enmod ssl
# a2ensite default-ssl
# cd /etc/apache2/sites-enabled
# vi default-ssl.conf

- default-ssl.conf 파일에 SSLCertificate로 시작하는 굵은 폰트 4줄 추가

- 파랑폰트 : 서버 환경에 맞게 수정

 

<IfModule mod_ssl.c>
        <VirtualHost *:443>
        ServerName hosts.tistory.com
        ServerAdmin webmaster@localhost
        DocumentRoot /www/
        ErrorLog ${APACHE_LOG_DIR}/ssl-error.log
        CustomLog ${APACHE_LOG_DIR}/ssl-access.log combined

        SSLEngine on

        SSLCertificateFile      /etc/apache2/ssl/hosts.tistory.com.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/hosts.tistory.com.key
        SSLCertificateChainFile /etc/apache2/ssl/hosts.tistory.com.chain-bundle
        SSLCACertificateFile    /etc/apache2/ssl/hosts.tistory.com.root-bundle

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
</IfModule>

 

 

5. apache2 설정 검증

# apachectl -t

정상일 경우 : ok
설정에 문제가 있을경우 : 문제가 있는 설정 내용 표시

 


6. SSL 인증서 적용

# apachectl restart 또는 service apache2 restart

 

SSL 인증서 적용 확인

# echo "" | openssl s_client -connect localhost:443 | openssl x509 -noout -dates

- 위처럼 입력하면 인증서 알고리즘 및 시작일/만료일이 표시된다.

 

depth=1 C = US, O = GeoTrust Inc., CN = RapidSSL SHA256 CA - G3
verify error:num=20:unable to get local issuer certificate
verify return:0
DONE
notBefore=Jan  1 11:11:11 2016 GMT  -> 인증서 시작일
notAfter=Jan  2 22:22:22 2017 GMT   -> 인증서 만료일

 


 

 

 

 

 

 

  1. hello2017 2016.04.04 15:16 신고

    발급시 https://www.securesign.kr/ 여기도 참고해 보시면 어떨까 합니다~

 

 

 

 

x-frame-options header missing

 

Clickjacking 이란?

Click + Hijacking 의 합성어로 ClickJacking 또는 UI Redress 공격이라 부르기도 함

 

2008년 Robert Hansen, Jeremiah Grossman 이 취약점에 대해 발표

 

 

 

쉽게말하면 사용자가 네이버 홈페이지에서 메일을 클릭했을경우 공격자가 지정한 페이지로 넘어가거나 로그인 폼의 정보 탈취 등

Clickjacking 공격 차단 설정

환경 : OS : Ubuntu, Apache 2

 

1. headers 사용 활성화 

#a2enmod headers

 

 

2. 아파치 설정파일에 밑줄친 부분을 추가 하며 IfModule headers_module 부분이 없다면 아래의 3줄 전체를 추가

#vi apache2.conf

 

<IfModule headers_module>

Header always append X-Frame-Options SAMEORIGIN

</IfModule>

 

 

3. 설정값 확인 apachectl 명령어를 통해 설정값을 확인해 보고 OK로 나오면 서비스 재시작하여도 문제가 없다는 뜻

#apachectl -t

OK

 

 

4. Apache 서비스 재시작 및 적용

#apachectl restart

 

 

X-Frame-Options 설명

 

 DENY : 해당 페이지는 iframe 내에서 호출할 수 없음

SAMEORIGIN : 해당 페이지와 동일한 도메인 페이지안에서는 frame 또는 Iframe을 호출 할 수 있다.

ALLOW-FROM uri : 해당 페이지는 지정된 도메인 페이지에서 frame을 호출 할 수 있다. 

 

 

 

ClickJacking 공격 데모 영상 

 

 


 

 

 

 

 

 

 

 

 

아파치 버전 정보 숨기기

 

설정의 필요성

404 Not Found 페이지에서 아파치 버전과 OS 정보가 노출됨

 

설정 방법

#vi /etc/apache2/conf/apache2.conf (또는 파일명이 httpd.conf 일수 있음)

 

아래의 2줄을 설정 끝에 추가 하거나 이미 있는경우 아래처럼 변경


ServerSignature Off  -> On 설정되어 있다면 Off로 변경
ServerTokens ProductOnly

 

적용방법(서비스 재시작 필요)

         apachectl restart
         service httpd restart
         service apache2 restart

 

참고 : ServerTokens 옵션 상세 설명

Prod 또는 ProductOnly : 아무내용없이 Apache 글짜만 표시
Min 또는 Minimal : Apache 버전 정보만 표시
OS : Apache버전 및 OS 정보 표시
Full : Apache버전(컴파일 정보 포함) 및 OS 정보 표시
        기본값(ServerTokens 설정 지정 안해도)

 

 

참고 : ServerSignature 옵션 상세 설명

On: 웹브라우저에 서버 정보를 표시
Off: 웹브라우저에 서버 정보를 표시하지 않음
EMail: ServerAdmin에서 설정된 이메일 정보 표시

 

마무리 : ServerSignature ServerTokens 두 설정을 추가해야 하는 이유

많은 사람들이 ServerSignature Off 설정만 하는대 해당 설정은 웹브라우저에서 서버정보를 표시를 하지 않는 설정이다.

이말은 웹브라우저가 아닌 분석툴이나 curl 같은 명령어를 사용하면 서버 정보 및 apache 정보를 확인 할 수있다는 뜻이다.

따라서 아래의 설정은 항상 같이 설정하도록 하자!


ServerSignature Off
ServerTokens ProductOnly

 


 

 

 

 

 

 


 

 


오류 메시지

[Tue Feb 11 03:53:24.658775 2015] [proxy:warn] [pid 2131:tid 140513274051348] [client 111.111.111.111:13242] AH01144: No protocol handler was valid for the URL /index.php. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.


[Tue Feb 11 03:53:31.466936 2015] [proxy:warn] [pid 2131:tid 140513265658124] [client 111.111.111.111:5536] AH01144: No protocol handler was valid for the URL /index.php. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.


[Tue Feb 11 03:53:38.498005 2015] [proxy:warn] [pid 2131:tid 140513116056400] [client 111.111.111.111:2786] AH01144: No protocol handler was valid for the URL /index.php. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.



해결방법(ubuntu)

sudo a2enmod proxy  

sudo a2enmod proxy_http  

sudo a2enmod proxy_fcgi


적용 후 서비스 재시작


sudo service apache2 restart


 


 

 

 

 

PHP 타임존 설정 방법

PHP 타임존의 경우 예전에는 서버에 설정된 타임존을 상속받아 사용했으나

 

PHP 5.3 버전부터는 date 함수를 사용하기 위해서는 타임존을 지정해야 한다.

 

타임존 설정이 서버의 타임존 도시국가와 겹치는 것도 있고 그렇지 않은 것도 있다만 없다면 동일 시간대의

다른국가의 타임존을 선택하여 적용하면 된다.

 

예) 서버 타임존에는 Asia/Seoul 로 설정하였으나 PHP 타임존에는 Asia/Seoul 없고 동일 타임존인 Asia/Tokyo 만 있는 경우

 

타임존 적용은 PHP.ini 파일내 아래의 2줄을 추가! 

 

 

 

php.ini 파일 항목중 아래의 2줄을 추가한다([date] 부분이 없다면 신규 추가)

 

[Date]
date.timezone = America/New_York
 
 

 

PHP 타임존 적용을 위해서는 Apache 또는 php의 재시작이 필요하다.

 

 

아래에 타임존 목록이 없다면  http://kr.php.net/manual/kr/timezones.php 에서 추가로 확인해 볼것

아시아 타임존 

Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau
Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Baghdad Asia/Bahrain
Asia/Baku Asia/Bangkok Asia/Beirut Asia/Bishkek Asia/Brunei
Asia/Calcutta Asia/Chita Asia/Choibalsan Asia/Chongqing Asia/Chungking
Asia/Colombo Asia/Dacca Asia/Damascus Asia/Dhaka Asia/Dili
Asia/Dubai Asia/Dushanbe Asia/Gaza Asia/Harbin Asia/Hebron
Asia/Ho_Chi_Minh Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Istanbul
Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka
Asia/Karachi Asia/Kashgar Asia/Kathmandu Asia/Katmandu Asia/Khandyga
Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait
Asia/Macao Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila
Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk
Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar
Asia/Qyzylorda Asia/Rangoon Asia/Riyadh Asia/Saigon Asia/Sakhalin
Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk
Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Tel_Aviv
Asia/Thimbu Asia/Thimphu Asia/Tokyo Asia/Ujung_Pandang Asia/Ulaanbaatar
Asia/Ulan_Bator Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok
Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan

아프리카 타임존

Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara
Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau
Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca
Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti
Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare
Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali
Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda
Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru
Africa/Mbabane Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena
Africa/Niamey Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome
Africa/Timbuktu Africa/Tripoli Africa/Tunis Africa/Windhoek

 

아메리카 타임존

America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina
America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/ComodRivadavia America/Argentina/Cordoba America/Argentina/Jujuy
America/Argentina/La_Rioja America/Argentina/Mendoza America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan
America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion
America/Atikokan America/Atka America/Bahia America/Bahia_Banderas America/Barbados
America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota
America/Boise America/Buenos_Aires America/Cambridge_Bay America/Campo_Grande America/Cancun
America/Caracas America/Catamarca America/Cayenne America/Cayman America/Chicago
America/Chihuahua America/Coral_Harbour America/Cordoba America/Costa_Rica America/Creston
America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek
America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe
America/El_Salvador America/Ensenada America/Fort_Wayne America/Fortaleza America/Glace_Bay
America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe
America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana
America/Hermosillo America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg
America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis
America/Inuvik America/Iqaluit America/Jamaica America/Jujuy America/Juneau
America/Kentucky/Louisville America/Kentucky/Monticello America/Knox_IN America/Kralendijk America/La_Paz
America/Lima America/Los_Angeles America/Louisville America/Lower_Princes America/Maceio
America/Managua America/Manaus America/Marigot America/Martinique America/Matamoros
America/Mazatlan America/Mendoza America/Menominee America/Merida America/Metlakatla
America/Mexico_City America/Miquelon America/Moncton America/Monterrey America/Montevideo
America/Montreal America/Montserrat America/Nassau America/New_York America/Nipigon
America/Nome America/Noronha America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem
America/Ojinaga America/Panama America/Pangnirtung America/Paramaribo America/Phoenix
America/Port-au-Prince America/Port_of_Spain America/Porto_Acre America/Porto_Velho America/Puerto_Rico
America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Resolute
America/Rio_Branco America/Rosario America/Santa_Isabel America/Santarem America/Santiago
America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Shiprock America/Sitka
America/St_Barthelemy America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas
America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay
America/Tijuana America/Toronto America/Tortola America/Vancouver America/Virgin
America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife  

 

호주 타임존

Australia/ACT Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Canberra
Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/LHI
Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/North Australia/NSW
Australia/Perth Australia/Queensland Australia/South Australia/Sydney Australia/Tasmania
Australia/Victoria Australia/West Australia/Yancowinna

유럽 타임존

Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belfast Europe/Belgrade
Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest
Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar
Europe/Guernsey Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey
Europe/Kaliningrad Europe/Kiev Europe/Lisbon Europe/Ljubljana Europe/London
Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk
Europe/Monaco Europe/Moscow Europe/Nicosia Europe/Oslo Europe/Paris
Europe/Podgorica Europe/Prague Europe/Riga Europe/Rome Europe/Samara
Europe/San_Marino Europe/Sarajevo Europe/Simferopol Europe/Skopje Europe/Sofia
Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Tiraspol Europe/Uzhgorod
Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd
Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich

 

인도 타임존

Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro
Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte
Indian/Reunion      

 

Easy Display Manager 상세 옵션

Pacific/Apia Pacific/Auckland Pacific/Bougainville Pacific/Chatham Pacific/Chuuk
Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji
Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam
Pacific/Honolulu Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein
Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue
Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn
Pacific/Pohnpei Pacific/Ponape Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan
Pacific/Samoa Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Truk
Pacific/Wake Pacific/Wallis Pacific/Yap


 

 

 

 

 

 

 

 

 

PHP 컴파일 에러 해결법

 

컴파일시 에러 메시지

아래의 오류는 php 컴파일시 --with-imap 옵션을 지정할때 발생되며 libc-client.a 파일이 있을경우 경로지정을 통해

 

간단히 해결할 수 있다.

 

configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

서버내 libc-client.a 파일이 없다면?

해당 파일이 없다면 C-Client 라이브러리를 설치해야 하며 자세한 설명은 아래와 같다.

 

원본글 : http://students.kiv.zcu.cz/doc/php5/manual/kr/ref.imap.php.html

 

 

위에 말이 무슨말인지 모르겠다면?

아래의 명령어를 그냥 넣자.!

 

wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz

 

tar xvfz imap-2007f.tar.gz

 

cd imap-2007f/src/c-client

 

cp *.h /usr/local/include/

 

이후 php 재컴파일 진행

 

 

 

 

 

 

 

 

apache/php mbstring.so 모듈 추가하기

 

설치정보 요약

1. php 소스 디렉토리로 이동
cd /php-5.2.5/ext/mbstring

*혹시 php소스 경로가 기역이 안난다면 find / -name mbstring 로 검색

 


2)phpize를 실행하여 확장 모듈파일 생성을 위한 준비 시작
/usr/local/bin/phpize

 *configure 를 위한 파일이 생성됨

 

 

3) 추가 컴파일 진행
./configure --with-php-config=/usr/local/bin/php-config

 

 

4) so 파일 생성
make

*mbstring.so 파일은 make한경로 아래의 modules경로 밑에 mbstring.so 파일이 생성됨

 

5) mbstring.so 모듈 복사
cat php.ini | grep extension_dir
extension_dir로 나온 경로가 모듈을 인식하는 경로이다.
기본 경로는 /usr/local/php/module/ 이다.

cp /php-5.2.5/ext/mbstring/modules/mbstrings.so /usr/local/php/module/

 

 

 

6) php.ini 편집
vi php.ini
extension=mbstring.so // 내용추가

 

7) 이후 apache 재시작

./apachectl restart


8) phpinfo 페이지 생성 후 웹에서 확인

   PHP 설치 정보 확인 방법은 아래의 phpinfo내용을 php 파일로 저장하여 웹으로 실행 시키면 된다.

   그럼 내용중 mbstring 이란 항목을 볼 수 있음

 

<? phpinfo(); ?>

 

 

설치 정보 상세 

[root@hosts /]#cd /php-5.2.5/ext/mbstring

[root@hosts mbstring]#/usr/local/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
[root@hosts mbstring]#

[root@hosts mbstring]# ./configure --with-php-config=/usr/local/bin/php-config
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether gcc and cc understand -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for PHP prefix... /usr/local
checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM

-I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/lib/php/extensions/no-debug-non-zts-20060613
checking for PHP installed headers prefix... /usr/local/include/php
checking for re2c... no
configure: WARNING: You will need re2c 0.12.0 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking whether to enable multibyte string support... yes, shared
checking whether to enable multibyte regex support... yes
checking whether to check multibyte regex backtrack... yes
checking for external libmbfl... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for variable length prototypes and stdarg.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking for int... yes
checking size of int... 4
checking for short... yes
checking size of short... 2
checking for long... yes
checking size of long... 4
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for working memcmp... yes
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag  works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

 

[root@hosts mbstring]#make
*내용생략*

so
creating mbstring.la
(cd .libs && rm -f mbstring.la && ln -s ../mbstring.la mbstring.la)
/bin/sh /install_source/src/php-5.2.5/ext/mbstring/libtool --mode=install cp ./mbstring.la

/install_source/src/php-5.2.5/ext/mbstring/modules
cp ./.libs/mbstring.so /install_source/src/php-5.2.5/ext/mbstring/modules/mbstring.so
cp ./.libs/mbstring.lai /install_source/src/php-5.2.5/ext/mbstring/modules/mbstring.la
PATH="$PATH:/sbin" ldconfig -n /install_source/src/php-5.2.5/ext/mbstring/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /install_source/src/php-5.2.5/ext/mbstring/modules  // mbstings.so 파일이 존재하는 경로

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.


[root@hosts mbstring]#cp /php-5.2.5/ext/mbstring/modules/mbstrings.so /usr/local/php/module/

[root@hosts mbstring]#vi /usr/local/apache2/conf/php.ini

[root@hosts mbstring]#/usr/local/apache2/bin/apachectl restart

 


 

 

  1. 2012.11.28 23:14 신고

    덕분에 해결되었습니다.


 

압축 푼 디렉토리에서 컴파일~

 

# ./configure

# make

# make install

/root/cronolog-1.6.2/src/cronolog 경로에 생성

 

httpd.conf 파일 수정

CustomLog "|/usr/local/sbin/cronolog /usr/local/apache2/logs/%Y/%m/access_log.%Y%m%d" common

 

 

 

 

+ Recent posts