# yum install nginx php php-fpm php-common php-mysql php-eaccelerator php-pecl-sphinx php-pecl-memcache php-gd php-mbstring php-mcrypt php-xml php-process
yum 으로 한방 설치
sphinx api가 있다는 것이 마음에 드네요.
eaccelerator 역시..
세상 참 좋아졌어요.
/etc/php.ini 수정
short_open_tag = On
zlib.output_compression = Off 이부분은 nginx 에서 zip으로 압축하도록 설정 할 것임.
memory_limit = 128M .. 워낙에 내부적으로 돌리는 부분이 있는데 이미지 관련 작업하다보면 램이 필요함
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED 뭐 프로그램을 대충하다보니 메세지가 많이 출력
display_errors = On 개발 할 동안은 출력하고 하는것이 편안해서...
register_globals = On 이 부분이 보안에 문제? 정확히 어떤 문제일까요?
$_GET $_POST $_SERVER. 요렇게 코딩을eaccelerator.shm_size = "32" 해야하나?
----------------------------
/etc/php.d/eaccelerator.ini
eaccelerator.shm_size = "32" //메모리에 컴파일한 PHP를 저장하도록 설정, 일단 서버돌아가면 나면 용량 재조정하면 된다.
eaccelerator.cache_dir = "/var/cache/php-eaccelerator" //컴파일 된 파일이 저장...램 사이즈가 있어서 저장 안될 듯
eaccelerator.shm_only = "1" // 메모리에다만 저장..위 설정의 무의미하네.. 메모리 용량이 차면 오래된 것 부터 삭제.
eaccelerator.allowed_admin_path = "/home/bit/www/Admin/eaccelerator" // eaccelerator 관리자 디렉토리 경로인데.. 아래의 디렉토리에 있는 파일을 옮겨놔야 한다.
control.php을 열어 관리자 아이디와 패스워드를 입력하고 접속하면 된다.
아직은 웹서버가 가동 전이라 화면이 없음.
[root@search php.d]# ls /usr/share/doc/php-eaccelerator-0.9.6.1/
AUTHORS COPYING ChangeLog NEWS PHP_Highlight.php README README.win32 bugreport.php control.php dasm.php run-tests.php
------------------------------------------------------------
/etc/nginx/nginx.conf
user nginx;
worker_processes 4; // 1개에서 4개로..
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 512; //1024-> 512 워커당 접속 갯수인데 많으면 성능에 안좋다는 소문에
}
------------------------------------------
아래 설정의 bit.com은 제것이 아님... 하다보니..
그누보드를 기반으로 하는 홈페이지에서 rewrite하여 공개된 것 사용하는 모습을 감출 수 있음.
/etc/nginx/conf.d/default.conf
server {
listen 80;
gzip on;
server_name bit.com www.bit.com;
#charset koi8-r;
access_log /var/log/nginx/log/host.access.log main;
root /home/bit/bitwww;
index index.php index.html;
location /favicon.ico {
access_log off;
log_not_found off;
}
rewrite "^/search/(.*)$" "/plugin/united-search/index.php?stx=$1";
rewrite "^/attendance(.*)$" "/plugin/mw.attendance$1";
rewrite "^/doc/([a-zA-Z0-9]+)/(.*)_([0-9]+)\.html$" "/bbs/board.php?bo_table=$1&wr_id=$3"; // /doc/보드아이디/글 제목이나 뭐 잡다한_글아이디.html
rewrite "^/doc/(.*)$" "/$1";
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
rewrite "^/m(.*)$" "/plugin/mobile$1";
location ~ \.(gif|jpg|png|js|css|ico)$ {
expires 15d;
}
include /etc/nginx/php.conf;
}
----------------------------------------
/etc/nginx/php.conf
fastcgi_intercept_errors on;
# this will allow Nginx to intercept 4xx/5xx error codes
# Nginx will only intercept if there are error page rules defined
# -- This is better placed in the http {} block as a default
# -- so that in the case of wordpress, you can turn it off specifically
# -- in that virtual host's server block
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# A handy function that became available in 0.7.31 that breaks down
# The path information based on the provided regex expression
# This is handy for requests such as file.php/some/paths/here/
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param PHP_SELF http://$http_host$fastcgi_script_name;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
}
-----------------------------------------
/etc/php-fpm.d/www.ini
listen = /tmp/php-fpm.sock // tcp포트보다 유닉스 소켓이 더 좋은 성능을 내준다네요.
실제 서비스하면서 세부적인 조정이 필요.
[출처] php nginx php-fpm eaccelerator|작성자 무한돌파
'운영체제 > 리눅스' 카테고리의 다른 글
레드마인 설치(CentOS) (0) | 2013.07.25 |
---|---|
SVN 폴더 및 프로젝트 생성 방법 (0) | 2013.06.18 |
CentOS 6.2에서 phpMyAdmin mcrypt 오류 대처 방법 (0) | 2013.04.04 |
nginx PHP-FPM 어디까지 튜닝할 수 있을까? (0) | 2013.03.12 |
동시접속자 확인 방법 (0) | 2013.03.07 |