우분투Ubuntu 10.10에서 APM Synaptic만으로 가장쉬운 설치

편한길을 돌아가지말고 쉬운일은 쉽게 하라....

11버전이 나올때가 다되서 좀 늦은감은 있지만....
요며칠 재설치를 몇번인가 하다가 생각나서 기록해둔다.
별말없이 화살표 찍찍 해놓은건 GUI기준이다.
우분투 10버전 에서는 세 가지 설치 보조 툴이 들어있다.
1. 프로그램 -> 추가제거
응용 프로그램 추가 제거를 담당한다.
2. 시스템 -> 관리 -> 업데이트 관리자
모든 프로그램과 라이브러리 커널 등의 업데이트를 담당한다.
3. 시스템 -> 관리 -> 시냅틱 패키지 관리자
Synaptic Package 관리자;;
앞에 프로그램 추가 제거에 있는것들도 이걸로 설치 가능하다.
 프로그램라이브러리나 개발툴 등 자잘한것들이 많이 등록 돼 있다.
리눅스에서 쓸 수 있는 유명한 프로그램은 거의 다 여기 있다고 봐도 된다.
시냅팁 패키지 관리자에 등록된 소프트웨어 버전이 항상 최신은 아니라는게 좀 문제긴하지만...
꼭 최신버전을 써야하는게 아니라면 시간낭비 할 필요없이 그냥 쓰면 된다.
어차피 개인 서버같은거 소스코드로 설치하면 설치해놓고 업데이트도 안하고 몇달씩 쓰게되곤 하니까...
장기적으로 시냅틱으로 까는게 더 최신버전으로 쓰게되는것일수도 있다.
11버전에서 시냅틱이 없어진다고 하는 말도 있긴 한데... 모르겠다.
APM 설치 1단계
시냅틱 패키지를 실행시켜서 필수 라이브러리 설치

zlib
libpng
freetype
jpeg
gd라이브러리
libxml2
libiconv
mysql
apache2
php
ZendOptimizer

그냥 비슷해보이는걸 깔면된다.
아니 이렇게 할 필요도 없나...
apache, php, mysql 세가지 검색해서 깔면... 필요한거 알아서 다 깔린다.
설치후에.... 폴더 찾아가서 셋팅파일만 고치면 끝.
셋팅파일 고치는건.... php나 mysql은 별도로 고쳐야할게 없을 것 같고...
apache는 ubuntu apache셋팅이라고 치면 많이 나온다.
ftp는 proftpd하고 gadmin을 같이 설치하면 된다.
gadmin이라고 gui환경에서 ftp서버 설정하는 툴이 있는데.... 써보면 좀 편하다.
아무리 시냅틱이라도 역시 처음까는 사람한테 이정도 설명으로는 힘들래나...

PHP 프로그래밍.. 참고자료랑 간단한 설명.. 퍼올만한 자료 있으면 강좌도..

공부 자료
php는 http://www.php.net/ 에서 한글 설명서만 받아서 읽어보면 금방 한다고 배울 필요도 없다고 말해서 힘빠지게 만드는 사람들도 있다. 그런 말 하는 사람들은 보통 다른 프로그래밍 좀 해본 사람들이고, 데이터베이스가 필수인 php는 DB를 처음 만져본다면 그렇게 쉽지는 않은 것 같다.

공부를 시작하려면 뭔가 목표가 필요하다. 돈을 벌겠다, 취업을 하겠다, 게임을 만들겠다, 내 홈페이지를 만들겠다, 등등의... 책에 나온 홈쇼핑 사이트 만들기 같은 주제는 흥미를 갖기 힘들다. 뭘 만드는 것을 목표로 할까...? 그런데 뭐 마땅한게 생각이 안난다.

블로그에 정리될 자료들
공부하다가 잘 모르는 부분들을 찾아서 메모 해 놓는다.
기억 하기 힘든 부분을 저장 해 놓는 외부 메모리 역할을 한다.
연산자 우선순위 따위 잡스러운것을 추가한 후 적당한 예제가 있으면 넣어볼 생각이다.

실습 및 개발환경
최초로 공부 시작할때는 apm(Apache, Php, Mysql)을 깔아야 하는데 리눅스 시스템에서는 설치 가이드가 널렸으니 따라만 하면 쉽게 할 수 있다. 윈도우는 더 쉽다. 근사모 라는데 들어가서 다운받아서 깔면 끝난다. 그쪽에서 패키지로 만들어놨다.
http://www.apmsetup.com/

ftp를 통해 파일을 에디트하고 서버에서 php를 실행시키는 방법도 있지만.... 하드에서 하는게 편할 것 같다. 취향의 차이겠지만...

개발 툴
ssh로 접속해서 vi로 개발해야된다고 주장하는 사람들도 있는 것 같은데...
이건 아무래도 불편하다.
그래서 eclipse webtools+php로 개발하는게 좋을 것 같다.
울트라에디트나, 에디트플러스로 소스를 짜고 apm으로 돌리는 정도...
php 개발환경은 이 정도가 고작인 것 같다.

IIS와 매니저프로그램을 활용
php서버는 웬만하면 리눅스 서버로 돌릴텐데... 밑에 포스팅처럼 IIS와 매니저프로그램으로 이렇게 하면 의도치 않은 버그가 많이 발생하지 않을까 싶다.
http://blog.paran.com/goingtot/34416025
http://www.iiskorea.net

APM설치 방법

http://linuxex.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%9C%EB%B2%84%EC%9A%A9-%ED%95%84%EC%88%98%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8
클릭
위에것들을 먼저 한 다음에

apm이 리눅스 기본 설치할 때 다 설치가 되긴 하는데 작동이 잘 안된다.
뭐 어떻게 하는건지 더 어렵다. 그래서 수동으로 설치하는게 더 편하다.

rpm -qa httpd php mysql
깔려있는것을 확인하고

yum remove -y httpd php mysql
지운다.

그리고 수동으로 다시 깔기 위해 다운로드
cd /usr/local/src
mkdir apm
cd apm

www.apache.org ( httpd라고 된거 안정화 버전 다운로드 )
www.mysql.net ( 무료안정화버전 다운로드 )
www.php.net ( 안정화 버전 다운로드 )

wget 명령으로 다운로드
ls -al로 파일명을 확인 후
tar -zxvf 압축풀기

pwd
cd /usr/local/src/(mysql 압축푼폴더)

useradd -M -s /bin/false mysql (mysql 실행할 계정 생성)

./configure --prefix=/usr/local/server/mysql --with-charset=utf8 --with-extra-charsets=all (./configure \를 써넣으면 분할입력 가능, ./configure --help 가능 )

termcap 라이브러리 없다고 컴파일이 안됨..
configure: error: No curses/termcap library found
망할 rpm -qa로 검색하면 깔려있다.
termcap , libtermcap, libtermcap-devel
이 세개가 깔려있어야된다. 나는 세번째가 안 깔려있었다. centos 5.4
yum install libtermcap-devel ( 설치 )

make && make install (make와 make install 실행)

환경설정 시작
cp support-files/my-huge.cnf /etc/my.cnf (my-small, my-medium, my-large, my-huge 중에 메모리에 따라 선택 64m, 64~256m, 512m, 1g~)

db생성 및 디렉토리 권한

cd /usr/local/server/mysql (설치경로)
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var

cd /usr/local/server/mysql (설치경로)
(안되면 ./bin/mysql_install_db)
groupadd mysql
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
cd /usr/local/mysql
./bin/mysqld_safe --user=root &

ps -ef | grep mysql (mysql설치를 확인)

vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/server/mysql/bin (으로 수정)

source ~/.bash_profile (변경한 환경변수 재시작 전에 바로 적용)

cp share/mysql/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list | grep mysqld

mysql 실행 접속
/etc/init.d/mysqld start
mysql
   exit
mysqladmin -u root password (암호)
mysql (에러남.. 거부)
mysql -u root -p (암호 입력)

APACHE설치
cd httpd폴더
./configure \
--prefix=/usr/local/server/apache \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite (\는 줄바꿔서 치게 도와줌 ./configure --prefix=/usr/local/server/apache --enable-mods-shared=all --enable-so --enable-rewrite )

make && make install
pwd (현재폴더확인 httpd 압축파일 폴더)
cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd

chkconfig --add httpd ( 자동실행 등록 안되면 밑에거 따라감)

vi /etc/init.d/httpd
2째줄부터 등록
#chkconfig: 2345 90 90
#description: init file for Apache server daemon
#processname: /usr/local/server/apache/bin/apachectl
#config: /usr/local/server/apache/conf/httpd.conf
#pidfile: /usr/local/server/apache/logs/httpd.pid

chkconfig --add httpd
chkconfig --list | grep httpd

vi /usr/local/server/apache/conf/httpd.conf
<IfModule !mpm_netware_module>
User nobody (nobody로 변경)
Group nobody
</IdModule>
ServerName 127.0.0.1(서버가 있으면 서버명)

/etc/init.d/httpd start

vi /etc/sysconfig/iptables (포트 개방 해 놨으면 넘어가면 됨)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCETP
/etc/init.d/iptables restart

PHP설치
(잘못쓴게 아니고 이게 다 옵션이다)
./configure \
--prefix=/usr/local/server/php \
--with-apxs2=/usr/local/server/apache/bin/apxs \
--with-mysql=/usr/local/server/mysql \
--with-config-file-path=/usr/local/server/apache/conf \
--disable-debug \
--enable-safe-mode \
--enable-track-vars \
--enable-sockets \
--with-mod_charset \
--with-charset=utf8 \
--with-xml \
--with-language=korean \
--enable-mailparse \
--enable-calender \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-ftp \
--enable-magic-quotes \
--enable-gd-native-ttf \
--enable-url-includes \
--enable-trans-id \
--enable-illine-optimization \
--enable-bcmath \
--with-jpeg \
--with-png \
--with-zlib \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/lib \
--with-freetype-dir=/usr \
--with-libxml-dir=/usr \
--enable-exif \
--with-gd \
--with-ttf \
--with-gettext \
--enable-sigchild \
--enable-mbstring

libxml2-config 인가 때문에 에러가 난다.
configure: error: xml2-config not found. Please check your libxml2 installation.
(xm12라고 검색하는 경우도 있겠지...xm12-config, xm12,xm12-devel)
이것들을 최신으로 설치
yum install libxmli libxml2 libxml-devel libxml2-devel
설치된건 업데이트도 되고 알아서 된다.

make && make install

설치폴더 /usr/local/sever/php
환경설정 /usr/local/server/apache/conf

cp php.ini-dist /usr/local/server/apache/conf/php.ini

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

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
<IfModule mime_module>
   AddType application/x-httpd-php .php
   AddType application/x-httpd-php-source .phps
</IfModule>

/etc/init.d/httpd restart

chcon -t texrel_shlib_t
/usr/local/server/apache/modules/libphp5.so

php의 정보를 보여주는 함수
vi /usr/local/server/apache/htdocs/phpinfo.php
<? phpinfo(); ?>
   ecs :wq

웹페이지로 사용할 때 설정파일을 손봐서 htdocs폴더를 이동하면 된다.

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

extra/httpd-userdir.conf (일반 사용자 홈디렉토리 설정)
extra/httpd-vhosts.conf (여러개 계정 쓸때)

<VirtualHost 000.000.000.000:80> (도메인이 아닌 ip를 쓰는칸)
   ServerName first.naver.com
   DocumentRoot /usr/local/server/apache/htdocs
</VirtualHost>
<VirtuallHost 000.000.000.111:80>
   ServerName second.naver.com
   DocumentRoot /home/second/public_html
</VirtualHost>

이외에는 보면 알기 쉽게 돼 있다 패스