블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2016. 2. 18. 12:00 Linux

OS : Centos 6.7 x86_64

Apache : 2.2.20

Openssl : 0.9.8l


apache 컴파일 도중 아래와 같은 에러가 종종 뜬다

configure: error: ... Error, SSL/TLS libraries were missing or unusable


보통 64비트 운영체제 이거나 apache와 openssl 호환성이 떨어지는 경우인데


openssl 컴파일 후 


export LIBS=-ldl

export LD_LIBRARY_PATH="/usr/local/openssl/"
export LIBS="-L/usr/local/openssl"
export CPPFLAGS="-I/usr/local/openssl/include/openssl" 


다시 apache configure를 진행하면 된다

반응형
posted by Rootrator
2016. 2. 16. 16:11 Linux

OS : CentOS 6.7 32bit

Apache 2.2

PHP 5.5.32


.htaccess: php_value not allowed here


웹페이지에서 위 에러 발생


httpd-userdir.conf


<Directory /home/*/public_html >


아래에 Options 추가

Options : httpd.conf나 가상호스트 설정을 무시하고 특정 디렉토리의 .htaccess설정을 적용시킴

반응형
posted by Rootrator
2015. 7. 28. 17:20 Linux

byte 로 확인

ps aux | grep 프로세스명 | awk '{print $6}' | awk '{total = total + $1} END {print total}'


Mysql 메모리 상태 

[root@test ~]# ps aux | grep mysql | awk '{ print $6 }' | awk '{total = total + $1} END { print total}'

366776


Mbyte로 확인

ps aux | grep 프로세스명 | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'


[root@test ~]# ps aux | grep mysql | awk '{ print $6 }' | awk '{total = total + $1} END { print total/1024}'

358.191


리눅스든 윈도우든 유휴 메모리를 캐쉬로 잡아두기 때문에 캐시영역의 메모리도 같이 봐야


실제 메모리 사용량을 알수 있다.


[root@test ~]# free -m

             total       used       free     shared    buffers     cached

Mem:          7842       3920       3921          0        582       1820

-/+ buffers/cache:       1517       6325

Swap:         4095         36       4059



명목 여유 메모리는 3921

실질 여유 메로리는 6325(3921 + 582 + 1820)(근사치이다)




반응형
posted by Rootrator
2015. 1. 20. 13:59 Linux

rpm이 아닌 컴파일하여 설치하였을때


--with-config-file-path 경로를 수정하고 싶을경우 재컴파일을 하는 방식보단


간단히 심볼릭링크를 걸어두면 자동적으로 링크된 파일로 변경된다.




--with-config-file-path=/etc/httpd 옵션을 주어 컴파일 한 경우


/etc/httpd/php.ini 을 참조하지만..


ln -s 심볼릭 링크를 이용하여 링크를 걸어주면


phpinfo에서 자동으로 인식이 된다.

반응형
posted by Rootrator
2014. 8. 12. 16:21 Linux


설치전 필요한 인증서 파일들

개인키파일 / 개인인증파일 / 외부root인증파일


설치전 필요한 설정

httpd.conf에서

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Include conf/extra/httpd-ssl.conf


주석제거


vi로 httpd-ssl.conf 파일 수정


SSL포트 지정한다. 기본(443)외에 사용할 포트가 있다면 여기서 수정해주면 된다.

Listen 443


crt, crl 파일을 인식하게끔 추가한다.

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl    .crl



SSL시작시 패스워드를 자동으로 인식하게끔 쉘프로그램 등록

SSLPassPhraseDialog exec:쉘파일경로



[쉘파일 내용]

#!/bin/sh

echo 패스워드

*퍼미션은 700



가상호스트 설정
<VirtualHost 가상호스트네임:SSL포트번호>
ServerName SSL신청시 입력했던 도메인

SSLCertificateFile 개인인증파일 경로

SSLCertificateKeyFile 개인키파일 경로

SSLCACertificateFile 외부root파일 경로



httpd -t로 구문검사후 실행

반응형
posted by Rootrator
2014. 6. 24. 16:59 Linux

[root@localhost bin]# ./httpd -t

httpd: Syntax error on line 150 of /usr/local/apache/conf/httpd.conf: Cannot load modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: undefined symbol: unixd_config


아파치 시동시에 위와 같은 에러가 뜬다.


버전정보는

Server version: Apache/2.4.9 (Unix)

PHP 5.2.17 (cli)


보통 위 에러는 apache2와 php4.x로 컴파일 할때에 생기는 오류지만 apache2.4와 php5.2에서도 발생이 되기도 한다.

php압축해제경로/sapi/apache2handler/에서 php_functions.c 파일을 일부 수정한다.



>line 386

#if !defined(WIN32) && !defined(WINNT) && !defined(NETWARE)

        AP_DECLARE_DATA extern unixd_config_rec ap_unixd_config;

#endif


>line 417

#if !defined(WIN32) && !defined(WINNT) && !defined(NETWARE)

        snprintf(tmp, sizeof(tmp), "%s(%d)/%d", ap_unixd_config.user_name, ap_unixd_config.user_id, ap_unixd_config.group_id);

        php_info_print_table_row(2, "User/Group", tmp);

#endif


다시 컴파일 후 Syntax 테스트


[root@localhost bin]# ./httpd -t

Syntax OK




반응형

'Linux' 카테고리의 다른 글

php.ini PATH 변경  (0) 2015.01.20
apache 2.4.x SSL설치  (0) 2014.08.12
특정 사용자의 소유자 변경  (0) 2014.06.24
Note that the MySQL client library is not bundled anymore!  (0) 2014.05.27
soft raid 디스크 미러링  (0) 2014.05.21
posted by Rootrator
2014. 6. 24. 16:49 Linux


소유자가 userA인 파일들만 userB로 변경하고 싶을경우


find /경로 -user "userA" | xargs chown "userB"."groupB"


위와 같은 명령어 조합으로 가능하지만


파일 경로에 공백이 있을경우나, 파일수가 많은 경우 오류가 발생한다.


위 명령어보다 더 간단한게 chown 의 from옵션이 있다.


chown -R userB.groupB /경로 --from=userA.groupA





반응형
posted by Rootrator
2014. 5. 27. 15:34 Linux

php 컴파일시에 


Note that the MySQL client library is not bundled anymore!


위와 같은 에러가 뜨는 경우가 있는데,


apache를 컴파일 할때 --with-mpm-worker로 옵션을 줄 경우 


아파치는 Thread로 처리를 하지만 mysql은 컴파일 할 때 Thread-safe 옵션을 주지 않아서


libmysqlclient_r이 생성되지 않았기 때문이다.


prefork방식으로 처리시에는 에러가 뜨지 않는다.


mysql 컴파일시에 --enable-thread-safe-client 옵션을 추가한다.



또는 mysql을 설치하지 않았거나, rpm으로 설치 했을때


[root@localhost ~]# yum install -y mysql-devel


명령어로도 생성이 된다.

반응형
posted by Rootrator
2014. 5. 21. 15:36 Linux

mdadm를 이용한 Soft RAID 1 구성



아래 2개의 디스크를 미러링

/dev/sdb

/dev/sdc


기본적으로 2개의 디스크 모두 fdisk를 통해 파티셔닝을 진행하고


시스템 타입을 fd  (Linux raid auto)로 잡아준다.


[root@localhost ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x2a950de1.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.


Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)


The device presents a logical sector size that is smaller than

the physical sector size. Aligning to a physical sector (or optimal

I/O) size boundary is recommended, or performance may be impacted.


WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').


Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4):

Value out of range.

Partition number (1-4): 1

First cylinder (1-243201, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-243201, default 243201):

Using default value 243201


Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raid autodetect)


Command (m for help): l


 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris

 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-

 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-

 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx

 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data

 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .

 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility

 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt

 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access

 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O

 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor

 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs

 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT

 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/

10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b

11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor

12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor

14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary

16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS

17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE

18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto

1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep

1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT

1e  Hidden W95 FAT1


Command (m for help): p


Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes

255 heads, 63 sectors/track, 243201 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk identifier: 0x2a950de1


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1      243201  1953512001   fd  Linux raid autodetect

Partition 1 does not start on physical sector boundary.


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.


위와 똑같이 /dev/sdc도 파티셔닝을 끝나면 현재 시스템에 레이드노드를 확인한다.


[root@localhost ~]# ls -al /dev/md*

ls: cannot access /dev/md*: 그런 파일이나 디렉터리가 없습니다


레이드 노드가 없기 때문에 새로이 생성해 주며, 있을 경우 삭제후 재생성해 준다.


[root@localhost ~]# mknod /dev/md1 b 3 10


mknod의 옵션은 mknod (장치명) (옵션) [major] [minor]


옵션은 

b : 블록 디바이스 타입

c : 문자 디바이스 타입

u : c와 동일함

p : FIFO 타입


블록이나 디바이스 명은 파일의 주번호와 부번호를 지정해 줘야 하는데


0-256사이의 숫자로 지정이 가능하다. 주번호만 존재하면 장치 한계를 256개 이므로 부번호와 함께 사용한다.



이제 mdadm으로 레이드를 구성하자.


[root@localhost ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

mdadm: Note: this array has metadata at the start and

    may not be suitable as a boot device.  If you plan to

    store '/boot' on this device please ensure that

    your boot-loader understands md/v1.x metadata, or use

    --metadata=0.90

Continue creating array? y

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md1 started.


아래 명령어로 레이드 구성을 확인할 수 있다.

[root@localhost ~]# mdadm --detail /dev/md1


이제 파티션을 포멧후 파일시스템을 생성하고 마운트해서 사용하면 된다.


/etc/fstab에 기록하거나 마운트 후에 재부팅 하면 /dev/md1이 임의의 숫자로 변경이 될 경우가 있는데


이 경우는 /etc/mdadm.conf가 없어서 그러니


[root@localhost ~]# mdadm --detail --scan > /etc/mdadm.conf 


위 명령어로 설정 파일을 생성해 주면 재부팅 해도 정상적으로 잡혀있다.



레이드가 정상적으로 잡혀있으면 아래 명령어로 디스크 상태를 볼수 있는데

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]

md127 : active raid1 sdb1[1] sdc1[0]

      1953380736 blocks super 1.2 [2/2] [UU]


만약 디스크 2개의 디스크중 하나가 이상이 생겨 제기능을 하지 못할경우


[_U] 혹은 [U_] 로 표시가 된다.

반응형
posted by Rootrator
2014. 3. 24. 16:55 Linux



Setting up Group Process

Setting up repositories

not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet


위와 같은 에러가 뜨거나


Cannot find a valid baseurl for repo: update

Error: Cannot find a valid baseurl for repo: update



위와 같은 에러가 뜰 경우 repo수정을 통해서 사용가능케 해보자.


첫번째 방법은

[root@localhost ~]# vi  /etc/yum.repos.d/CentOS-Base.repo

 

파일을 열어서


mirrorlist를 주석처리 하고

baseurl을 아래와 같이 변경해준다.


32비트

baseurl=http://vault.centos.org/4.3/os/i386/


64비트

baseurl=http://vault.centos.org/4.3/os/x86_64/


[base], [update], [addons], [extras], [centosplus], [contrib] 모두 수정


두번째 방법은

/etc/yum.repo.d/CentOS-Base.repo 파일의 이름을 변경해 준 후에 CentOS에서 제공하는 repo파일을 받는것


[root@localhost ~]# mv /etc/yum.repo.d/CentOS-Base.repo /etc/yum.repo.d/CentOS-Base.repo.bak

[root@localhost ~]# wget http://vault.centos.org/4.9/CentOS-Base.repo -O /etc/yum.repo.d/CentOS-Base.repo


후에 혹시나 모르니 캐시 파일을 삭제

[root@localhost ~]# rm -rf /var/cache/yum/*




반응형
posted by Rootrator
prev 1 2 3 4 5 6 next