No Image

php-fpm.sock failed (13: Permission denied) on nginx

2016-01-12 KENNETH 0

환경 OS : linux(centos6) WEB : nginx-1.8 PHP : php-fpm php-fpm은 포트가 아닌 소켓을 오픈   기본값 : listen = 127.0.0.1:9000 변경값 : listen = /var/php/php-fpm.sock   로그 2016/01/12 07:20:21 [crit] 15637#0: *1 connect() to unix:/var/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 141.101.83.235, server: greatuser.net, request: “GET /index.php HTTP/1.1”, upstream: “fastcgi://unix:/var/php/php-fpm.sock:”, host: “greatuser.net”, referrer: “https://www.google.co.kr/”   원인 및 처리 php-fpm 과 nginx 의 실행 유저가 맞지 않기 때문에 발생하는 에러.. php-fpm.conf 에 다음과 같이 지정을 해줘야함… user = nobody group = nobody listen.mode = 0666 예제에서는 저렇게 나와 있지만.. nginx 를 구동하는 유저와 동일하게 설정하면 되겠다. listen.mode 역시 0660 이상이면 된다…   그런데 왜 listen 값을 포트에서 유닉스 소켓으로 변경했냐고???? 그건 다음에 알랴줌…

No Image

php 에러 메세지 확인

2015-10-22 KENNETH 0

서버에서 php구문을 실행하다보면, 별다른 이유없이 실패하는 경우가 있다. 환경에 따라서 에러메세지를 출력하는 경우도 있으나.. 사이트에 에러메세지가 출력되지 않았으면 무시해되 되는 수준의 에러는 그냥 무시 보안상의 이슈 (나는 개발자가 아니라서 잘은 모르지만)등의 이유로 error_reporting = E_ALL & ~E_DEPRECATED display_errors = Off 이러한 설정을 통해.. 정확히는 display_error만.. 오류가 나오지 않도록 처리하기 때문이다.   php.ini에서 설정을 변경하는 방법도 있으나.. 그랬다가는 기존에 미처 확인하지 못한 에러 메세지들이 주욱~ 나올 수 있기 때문에.. (물론 내 서버에서는 display_errors=on 모드로 사용한다..) error_reporting(E_ALL); ini_set(“display_errors”, 1); 오류가 발생하여 확인하고자 하는 페이지에 이처럼 함수를 넣어서 임시적으로 사용하면 되겠다. display_error 옵션이야 on/off 둘중 하나지만.. 그 위에 잠시 안내한 error_reporting 은 여러 설정이 존재하므로.. http://php.net/manual/kr/errorfunc.configuration.php#ini.error-reporting 에서 확인을 해보시면 되겠다.  

PHP 함수의 mysql 데이터베이스 확장 함수의 고찰

2015-10-13 KENNETH 0

  PHP 함수의 mysql 데이터베이스 확장 함수의 고찰 PHP에서 지원하는 mysql 함수 mysql mysqli pdo-mysql     습관 난 몇년동안 리눅스상에서 APM을 설치할때 mysql을 컴파일해서 설치하고 php설치시 ”–with-mysql=/usr/local/mysql” 등의 옵션을 사용했다. –with-mysql=/usr/local/mysql –with-pdo-mysql=/usr/local/mysql (필요시 추가) 형태로 설치한뒤 추가로 mysqli가 필요한 경우 별도의 모듈형태로 mysqli 를 설치해서 사용했다.. 특별히 큰 이유가 있었던것은 아니고, 그냥 mysql3 + php4.0 시절부터 그렇게 해왔기 때문에 의례 그렇게 했다는게 맞다.   새로운것 헌데 PHP5.3 부터 변경된점중.. mysqlnd 라는것이 있다. 출처 : http://php.net/manual/en/book.mysqlnd.php 위에서 설명한 mysql의 3가지 지원함수의 사용을 위해서 mysql 라이브러리 (컴파일이든 yum, apt 를 이용한 클라이언트/라이브러리 설치) php컴파일시 libmysqlclient 를 사용 해야 했던 전통적인 방식대신 mysql Native Driver 라는 새로운 방식을 php-5.3 부터 지원하게 되었다고… (솔직히 몰랐다;;;;)   라이센스 문제(라기 보다는 주체랄까..) 해결 libmysqlclient 라이브러리가 더이상 필요 없음 같은 얘기지만 내장되어있는 기능을 활성화 시키는 것이기 때문에 설치가 쉽다. PHP의 메모리 관리 시스템의 사용하기 때문에 성능개선(이 있을수 [ more… ]

No Image

eAccelerator 설치 및 연동

2015-07-21 KENNETH 0

1. 다운로드 공식사이트 : http://eaccelerator.net 다운로드페이지 : https://github.com/eaccelerator/eaccelerator/tarball/master (2015/07/20 기준) 메뉴얼 : https://github.com/eaccelerator/eaccelerator/wiki   2. 설치 wget https://github.com/eaccelerator/eaccelerator/tarball/master tar zxvpf eaccelerator*tar.gz cd eaccelerator-* phpize ./configure –enable-shared –with-php-config=/usr/local/bin/php-config make cp modules/eaccelerator.so /usr/local/lib/php/extensions/   3. 설정 php.ini 파일에 아래내용 추가 (extension_dir = “/usr/local/lib/php/extensions” 상황을 가정함) extension=eaccelerator.so eaccelerator.shm_size=”16″ eaccelerator.cache_dir=”/tmp/eaccelerator” eaccelerator.enable=”1″ eaccelerator.optimizer=”1″ eaccelerator.check_mtime=”1″ eaccelerator.debug=”0″ eaccelerator.filter=”” eaccelerator.shm_ttl=”0″ eaccelerator.shm_prune_period=”0″ eaccelerator.shm_only=”0″   4. 디렉토리 생성 원래는 eaccelerator.cache_dir 항목에 설정해준 디렉토리를 생성하라고 설명되어 있으나.. 내가 설치했던 42067ac (출력버넌 1.0-dev)버전에서는 디렉토리를 생성하지 않아도 아파치 재시작후 알아서 생성되는것을 확인할 수 있었다. * 디렉토리 구조 # ls -al /tmp/eaccelerator/99/ total 72 drwx—— 18 nobody nobody 4096 Jul 19 21:30 . drwxrwxrwx 3 root root 4096 Jul 19 21:30 .. drwx—— 18 nobody nobody 4096 Jul 19 21:30 0 drwx—— 18 nobody nobody 4096 Jul 19 21:30 1 drwx—— 18 nobody nobody 4096 Jul 19 21:30 2 drwx—— 18 nobody nobody 4096 Jul 19 21:30 3 drwx—— 18 [ more… ]