우분투 아파치 웹서버에서 index.php 다운로드창이 뜰 경우

리눅스/APACHE|2015. 1. 16. 16:54
반응형

아래 파일에서 옵션을 수정합니다.

 

[root@sysdocu]# vi /etc/apache2/mods-enabled/php5.conf

 

<IfModule mod_userdir.c>
   <Directory /home/*/public_html>
       #php_admin_value engine Off        // 주석처리
   </Directory>
</IfModule>

 

그리고 apache 재시작을 하면 php 가 잘 인식됩니다.

 

* 참고 : php_admin_value engine 옵션은 On 이라는 값으로 사용할 수 없습니다.

 

반응형

댓글()

/usr/local/apache/bin/apachectl: line 81: 29654 파일 크기 제한을 초과함 $HTTPD -DSSL

리눅스/APACHE|2015. 1. 16. 16:54
반응형

[증상]

ssl 을 구동하려고 아래와 같은 명령어를 내렸을때 나타나는 에러 메세지.

 

[root@sysdocu]# /usr/local/apache/bin/apachectl startssl
/usr/local/apache/bin/apachectl: line 81: 29654 파일 크기 제한을 초과함 $HTTPD -DSSL
/usr/local/apache/bin/apachectl startssl: httpd could not be started
 

[원인]

ssl 로그파일 사이즈가 2G를 넘어섰을때 발생되는 문제입니다.

 

[해결]

ssl 설정파일에서 (ssl.conf) 아래와 같이 로그가 쌓이도록 설정이 되어 있습니다.

 

SSLLog      /usr/local/apache/logs/ssl_engine_log

 

logs 디렉토리로 이동하여 해당 로그파일의 이름을 바꾸거나 삭제하면 ssl 구동이 가능해집니다.

 

반응형

댓글()

웹접속 통계 도구 (TraceWatch)

리눅스/APACHE|2015. 1. 16. 16:53
반응형

http://pat.im/829
http://www.tracewatch.com/doc/#install
http://www.dejkam.com/twatch/?lang=Korean

반응형

댓글()

APM 설치 (httpd 2.4.x PHP 5.3.x or 7.3 MySQL 5.5.x)

리눅스/APACHE|2015. 1. 16. 16:53
반응형

설치하려는 버전은 아래와 같습니다.

httpd 2.4.10

PHP 5.3.8 (7.3 동일)

MySQL 5.5.14 (5.7.x 이상은 설치 방법이 다르므로 다른 매뉴얼 참조)

 

설치를 진행하기에 앞서 아래 패키지들을 설치해줍니다.

(필수 구성 요소)
yum -y install openssl openssl-devel mhash mhash-devel libtool libtool-ltdl libtool-ltdl-devel imap-devel imap zlib-devel zlib freetype-devel freetype libpng-devel libpng libjpeg-devel libjpeg libtiff-devel libtiff gd-devel gd pcre-devel pcre libxml-devel libxml libxml2-devel libxml2 gdbm-devel gdbm ncurses-devel ncurses curl-devel curl expat-devel expat bzip2-devel bzip2-libs bzip2 libc libc-devel libc-client-devel wget gcc gcc-c++

 

 

[ httpd 2.4.10 ]

 

1. 설치 환경 구성

# cd /usr/local/src
# wget http://archive.apache.org/dist/apr/apr-1.4.2.tar.gz
# tar xvzf apr-1.4.2.tar.gz
# cd apr-1.4.2
# ./configure
   cp -arp libtool libtoolT      // libtoolT 지우지 못한다는 에러메세지 나타났지만 생략해주어도 되었음

   ln -s /usr/bin/libtool /          // 생략해주어도 되었음
# make
# make install

# cd ..
# wget http://archive.apache.org/dist/apr/apr-util-1.3.9.tar.gz
# tar xvzf apr-util-1.3.9.tar.gz
# cd apr-util-1.3.9
# ./configure --with-apr=/usr/local/apr
# make
# make install

 

 
2. 아파치 설치

# cd ..

# wget https://archive.apache.org/dist/httpd/httpd-2.4.10.tar.gz

# tar xvzf httpd-2.4.10.tar.gz

# cd httpd-2.4.10
# ./configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-modules=shared --enable-ssl --enable-rewrite --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
# make
# make install

 

 

[ MySQL 5.5.14 ]

 

1. cmake 설치

 

# cd ..

# wget 

http://pkgs.fedoraproject.org/lookaside/pkgs/cmake/cmake-2.8.5.tar.gz/3c5d32cec0f4c2dc45f4c2e84f4a20c5/cmake-2.8.5.tar.gz

# tar xvzf cmake-2.8.5.tar.gz

# cd cmake-2.8.5

# ./bootstrap

# make

# make install

 

 

2. 계정 생성

# groupadd -g 400 mysql
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql

 

 

3. MySQL 설치

# cd ..

# wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.14.tar.gz

# tar xvzf mysql-5.5.14.tar.gz

# cd mysql-5.5.14

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306

# make

# make install

 

[참고]

euckr 로 설치를 원할 경우 옵션을 변경해줍니다.

-DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci

 

 

4. DB생성 및 기본 보안 설정

# cp -arp scripts/mysql_install_db /usr/local/mysql
# cd /usr/local/mysql

# rm -rf data

// data폴더를 지우는 이유는 기본폴더가 있긴한데 기본테이블이 없습니다.

    그대로 진행하시면 테이블이 없다며 mysql 이 구동되지 않습니다.

    때문에 data폴더를 삭제하고 아래 명령어로 재설치를 해줍니다.
# sh ./mysql_install_db

// 위 명령어로 data 폴더가 생성되지 않을 경우 아래 명령어로 생성해보세요.

    perl ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/data
cp support-files/my-huge.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
chown root.root /etc/init.d/mysqld
chkconfig --add mysqld
chmod 711 /usr/local/mysql
chmod 700 /usr/local/mysql/data
chmod 751 /usr/local/mysql/bin
chmod 750 /usr/local/mysql/bin/*
chmod 755 /usr/local/mysql/bin/mysql
chmod 755 /usr/local/mysql/bin/mysqldump

 

 

[ PHP 5.3.8 or PHP 7.3 ]

 

필수 구성 요소를 설치합니다.

# cd /usr/local/src

wget https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz


# tar zxvf mhash-0.9.9.9.tar.gz
# cd mhash-0.9.9.9
# ./configure
# make
# make install

 

# cd /usr/local/src
# wget 

https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz


# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure
# make
# make install

 

# cd /usr/local/src
# wget http://pkgs.fedoraproject.org/repo/pkgs/libjpeg/jpegsrc.v6b.tar.gz/dbd5f3b47ed13132f04c685d608a7547/jpegsrc.v6b.tar.gz

# tar xvzf jpegsrc.v6b.tar.gz
# cd jpeg-6b

# cp -f /usr/share/libtool/config/config.guess .    // 덮어 쒸우기 (CentOS 5.6 이하 일때는 /usr/share/libtool/config.guess 에 있습니다)
# cp -f /usr/share/libtool/config/config.sub .

# ./configure --enable-shared --enable-static

# make

아래와 같은 에러 메세지가 출력될 경우

make: ./libtool: 명령을 찾지 못했음

# ln -s /usr/bin/libtool libtool

# make clean

# make

# make install

아래와 같은 에러 메세지가 출력될 경우

'/usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1': 그런 파일이나 디렉토리가 없음' 

조치방법

mkdir -p /usr/local/man/man1
make clean

make

make install

 

# cd /usr/local/src

wget https://www.mirrorservice.org/sites/ftp.cac.washington.edu/imap/imap-2007f.tar.gz

# tar xvzf imap-2007f.tar.gz

# cd imap-2007f

# yum -y install pam-devel

make lr5 PASSWDTYPE=std SSLTYPE=unix.nopwd EXTRACFLAGS=-fPIC IP=4

# mkdir /usr/local/imap-2007f/

# mkdir /usr/local/imap-2007f/include/

# mkdir /usr/local/imap-2007f/lib/

# cp c-client/*.h /usr/local/imap-2007f/include/

# cp c-client/*.c /usr/local/imap-2007f/lib/

# cp c-client/c-client.a /usr/local/imap-2007f/lib/libc-client.a

 

[참고]

64비트 운영체제에서는 아래 심볼릭 링크 진행 해주어야 합니다. (필요시)

 
ln -sf /usr/lib64/libpng12.so.0 /usr/lib/libpng12.so.0      // 이부분은 CentOS 6, fedora 15 이상에서 해당되는 내용입니다.

ln -sf /usr/lib64/libpng12.a /usr/lib/libpng12.a
ln -sf /usr/lib64/libpng.so.3 /usr/lib/libpng.so.3
ln -sf /usr/lib64/libpng.so /usr/lib/libpng.so
ln -sf /usr/lib64/libpng12.so /usr/lib/libpng12.so
ln -sf /usr/lib64/libc-client.so /usr/lib/libc-client.so
ln -sf /usr/lib64/libgssapi_krb5.so /usr/lib/libgssapi_krb5.so
ln -sf /usr/lib64/libkrb5.so /usr/lib/libkrb5.so
ln -sf /usr/lib64/libkrb5support.so /usr/lib/libkrb5support.so

 

[참고]

MySQL 5.7 설치시 "libmysqlclient_r* 관련 에러가 출력됩니다. 이경우 아래와 같은 옵션을 사용해보세요.
php 컴파일 옵션을 "mysqlnd" 로 줍니다."./configusr --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd"

 

 

사용할 버전 다운로드

# wget http://museum.php.net/php5/php-5.3.9.tar.gz

# wget https://www.php.net/distributions/php-7.3.11.tar.gz

 

# tar xvzf php-5.3.8.tar.gz

 

# cd php-5.3.8

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mod-charset --with-config-file-path=/usr/local/apache/conf --enable-sigchild --enable-magic-quotes --with-libxml-dir --with-openssl --with-zlib --with-zlib-dir --with-bz2 --enable-calendar --with-curl --enable-dba --with-gdbm --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-imap --with-imap-ssl --with-kerberos --enable-mbstring --with-mhash --with-mcrypt --with-mysql=/usr/local/mysql --enable-sockets --with-regex=php --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zend-multibyte

 

* php 컴파일중 

에러 : configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

해결 : imap-2007f 설치 후 --with-imap=/usr/local/imap-2007f 옵션을 사용합니다.

방법 : https://sysdocu.tistory.com/165

 

# make
# make install
# cp php.ini-development /usr/local/apache/conf/php.ini

 

아파치 설정파일 수정

# vi /usr/local/apache/conf/httpd.conf
 

DirectoryIndex index.html index.htm index.php

 

# PHP Enable

AddType application/x-httpd-php .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc

AddType application/x-httpd-php-source .phps

 

<Directory /home/*>

    AllowOverride None

    Require all granted

 

</Directory>

 

PHP 설정파일 수정

# vi /usr/local/apache/conf/php.ini

date.timezone = "Asia/Seoul"
short_open_tag = On

 
 

ZendGuardLoader 설치
# cd ../ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x
# cp -arp ZendGuardLoader.so /usr/local/php/lib/
# vi /usr/local/apache/conf/php.ini

[Zend]
zend_extension=/usr/local/php/lib/ZendGuardLoader.so

short_open_tag = On
date.timezone = Asia/Seoul 도 입력
register_globals = On

 

* ZendGuardLoader 는 아래 조건이 맞아야 설치 가능합니다.

- httpd 2.2.x 이하 버전 (prefork 방식)

- php 5.3.x 버전

 

반응형

댓글()

APM 설치 (Apache 1.3.x PHP 5.2.x MySQL 5.1.x)

리눅스/APACHE|2015. 1. 16. 16:53
반응형

openssl 설치

openssl: http://www.openssl.org/source/ 에서 다운로드 후 압축을 풉니다.

풀려진 디렉토리로 이동 후 아래 명령을 순차적으로 입력합니다.

./config
make
make install

 

 
mod_ssl 설치 (apache 1.3.x 에서만)

mod_ssl: http://www.modssl.org/source/ 에서 아파치 버전에 맞는 것으로 다운로드 후 압축을 풉니다.

풀려진 디렉토리로 이동 후 아래 명령을 입력합니다.

./configure --with-apache=../apache_1.3.41 --with-ssl=/usr/local/ssl;

 

 

httpd, php, mysql 설치

 

1) 아파치 max_client 1024 가능하도록 설정

 

파일 : 소스디렉토리/server/mpm/prefork/prefork.c

#define DEFAULT_SERVER_LIMIT 1024 으로 수정

 

파일 : 소스디렉토리/server/mpm/worker/worker.c
#define DEFAULT_SERVER_LIMIT 64 으로 수정
 

 
2) 설치 진행

apache 1.3.42
[root@sysdocu]# ./configure --prefix=/usr/local/apache --enable-module=so --enable-shared=max --enable-module=rewrite --enable-module=ssl --enable-shared=rewrite --enable-shared=ssl

 

httpd 2.2.34
[root@sysdocu]# ./configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-modules=shared --enable-ssl --enable-rewrite --with-mpm=worker

[root@sysdocu]# make
[root@sysdocu]# make install

 

mysql 5.1.x

[root@sysdocu]# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euckr --with-mysql-user=mysql --with-extra-charsets=all --enable-thread-safe-client
[root@sysdocu]# make
[root@sysdocu]# make install

 

* mysql DB생성 및 보안 설정

[root@sysdocu]# groupadd -g 400 mysql
[root@sysdocu]# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql

[root@sysdocu]# scripts/mysql_install_db
[root@sysdocu]# chown -R mysql:mysql /usr/local/mysql
[root@sysdocu]# chown -R mysql.mysql /usr/local/mysql/data
[root@sysdocu]# cp support-files/my-huge.cnf /etc/my.cnf
[root@sysdocu]# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
[root@sysdocu]# chmod 700 /etc/init.d/mysqld
[root@sysdocu]# chown root.root /etc/init.d/mysqld
[root@sysdocu]# chkconfig --add mysqld
[root@sysdocu]# chmod 711 /usr/local/mysql
[root@sysdocu]# chmod 700 /usr/local/mysql/data
[root@sysdocu]# chmod 751 /usr/local/mysql/bin
[root@sysdocu]# chmod 750 /usr/local/mysql/bin/*
[root@sysdocu]# chmod 755 /usr/local/mysql/bin/mysql
[root@sysdocu]# chmod 755 /usr/local/mysql/bin/mysqldump
 

php 5.2.x

- php 4.x 버전도 동일

- httpd 2.x일때의 설치 옵션

[root@sysdocu]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-language=korean --with-kerberos --with-imap-dir --with-imap-ssl --with-mysql=/usr/local/mysql --with-tiff-dir --with-pdflib --with-cpdflib --with-mhash --enable-sockets --with-regex=php --with-mod_charset --enable-track-vars --enable-ftp --enable-modules=so --enable-inline-optimization --disable-debug --with-config-file-path=/usr/local/apache/conf --with-zlib --with-zlib-dir --with-curl --with-iconv --with-dbx --with-gdbm --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --enable-mbregex --enable-sigchild --with-xml --enable-dba --with-zend-multibytei --enable-safe-mode --enable-magic-quotes --enable-debugger --enable-sysvsem --enable-sysvshm
[root@sysdocu]# make
[root@sysdocu]# make install

 

* 64bit에서 에러발생시
/usr/lib/libexpat.so: could not read symbols: File in wrong format 의 경우 아래 옵션 추가

--with-expat=builtin

 
* 설치 완료 후, httpd 에서 아래 내용 추가

DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.phtml index.cgi index.jsp

 
# PHP Enable
AddType application/x-httpd-php .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc
AddType application/x-httpd-php-source .phps

 
<Directory /home/*>
    AllowOverride All
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>

 

반응형

댓글()

[그누보드] 관리자 패스워드 분실

리눅스/APACHE|2015. 1. 16. 16:52
반응형

그누보드 설치 디렉토리 기준으로

/그누보드/bbs/login_check.php 파일을 열으신뒤

 

아래의 소스를 주석처리 합니다.

if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
    alert("가입된 회원이 아니거나 패스워드가 틀립니다.\n\n패스워드는 대소문자를 구분합니다.");
}

 

위의 소스를 주석처리 하시면..

 

관리자 비밀번호를 아무거나입력하셔도 로그인에 성공하게 되니 사용하신후 반드시 주석을 해제 해주세요~

 

[출처] 지식인 | quddnr145 (http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=119899713&qb=6re464iE67O065OcIO2MqOyKpOybjOuTnCDrtoTsi6Q=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=Rux/pU5Y7vCssvj6fb0ssc--297644&sid=UCw5@s0qLFAAAAzhFL8)

반응형

댓글()

failed to open stream: Too many open files in

리눅스/APACHE|2015. 1. 16. 16:52
반응형

[증상]

페이지가 간헐적으로 아래같은 오류 메세지를 보이면서 정상출력이 되지 않을때.

 

failed to open stream: Too many open files in /home/sysdocu/public_html/common.php on line 152.

 

[해결]

아파치 실행파일을 vi 에디터로 열고 내용을 수정합니다.

그리고 아파치를 재시작하면 문제가 해결됩니다.

 

vi /usr/local/apache/bin/apachectl

 

#ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"        <- 기존의 값을 주석처리합니다.
ULIMIT_MAX_FILES="ulimit -n 65535"                          <- 새로운 값으로 입력합니다.

반응형

댓글()

[error] (28)No space left on device: Cannot create SSLMutex Configuration Failed

리눅스/APACHE|2015. 1. 16. 16:52
반응형

[증상]

아파치 로그에 이와같은 에러메세지가 출력되며 아파치 가동이 되지 않을때

[error] (28)No space left on device: Cannot create SSLMutex Configuration Failed

 

[해결]

[root@sysdocu ~]# ipcs -s | grep nobody | perl -e 'while (<STDIN>) { @a=split(/s+/); print `ipcrm sem $a[1]`}'

[root@sysdocu ~]# /usr/local/apache/bin/apachectl start

 

반응형

댓글()

특정 디렉토리 php 실행 금지 설정

리눅스/APACHE|2015. 1. 16. 16:51
반응형

<DirectoryMatch "/home/sysdocu/public_html/bbs/upload">
    AddType application/x-httpd-php-source .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc

    AddType application/x-httpd-php3-source .html .htm .php .php3 .php4 .php5 .phtml .cgi .inc

    <Files ~ ".*.ph$">
      Order allow,deny
      Deny from all
    </Files>
</DirectoryMatch>
 

반응형

댓글()

[에러] Unable to open logs

리눅스/APACHE|2015. 1. 16. 16:51
반응형

Unable to open logs

 

위 메세지가 에러로그에 찍힐 경우

CustomLog 및 ErrorLog 파일 설정부분을 모두 주석처리 하면 아파치가 가동됩니다.

그후 하나씩 주석해제하여 원인이되는 파일을 찾아서 조치하면 됩니다.

 

반응형

댓글()

httpd 2.2.17 + tomcat 6.0 연동

리눅스/APACHE|2015. 1. 16. 16:51
반응형

1. JK커넥터 다운로드

 

아래 URL 에서 OS bit수와 httpd 버전에 맞는 JK커넥터를 다운로드 합니다.

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/

 

JK커넥터는 금일 날짜(2012-05-07)로 검색해보니 2010-11-01 일자 파일이 최신파일로 나오고 있습니다.

JK커넥터를 다운받는 URL 이 끊어질지 몰라서 4개 파일을 다운받아 본게시물에 첨부하였습니다.

 

※ 다운받아 놓은 JK커넥터 버젼

- 32bit 용 : httpd 2.0.x / httpd 2.2.x

- 64bit 용 : httpd 2.0.x / httpd 2.2.x

 

 

2. 연동 설정

 

다운받은 JK커넥터를 아파치 모듈 디렉토리로 이동 시키면서 파일명을 변경합니다.

 

mv mod_jk-1.2.31-httpd-2.2.x.so /usr/local/apache/modules/mod_jk.so

 

아파치 설정파일 httpd.conf 에서 아래와 같이 모듈 추가 설정을 합니다.

 

LoadModule jk_module modules/mod_jk.so

 

<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /* ajp13
</IfModule>

 

/usr/local/apache/conf/workers.properties 파일을 생성하여 아래 내용을 입력합니다.

 

workers.tomcat_home=/usr/local/tomcat        // tomcat 설치 디렉토리
workers.java_home=/usr/java/jdk1.7.0_04      // java  설치 디렉토리

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

 

 

3. 구동 및 확인

httpd 및 tomcat 을 중지 시킨 후 아래 순서대로 다시 웹서버를 구동 시킵니다.

 

tomcat 구동 > apache 구동

 

웹사이트로 접속하여 jsp 샘플이 동작하는지 확인합니다.

 

http://sysdocu.tistory.com/examples/jsp/



반응형

댓글()