Nginx 이전에는 주로 Apache를 사용 했었습니다. 물론 지금도 Apache를 많이 사용합니다.
Apache는 많은 기능을 포함하고 있어 대부분을 구성에 호환가능하게 사용할 수 있습니다.
상대적으로 Nginx의 경우 꼭 필요한 기능만 구현하여 높은 성능을 낼 수 있다고 합니다.
제가 설치하는 환경은 리눅스 버전이 우분투 16.04LTS 입니다. 다른 리눅스도 비슷합니다.
sudo su
위 과정을 진행 안할 경우는 지금부터 나오는 명령어의 앞에 항상 sudo를 붙여서 사용하면 됩니다.
es) apt-get install mysql --> sudo apt-get install myql
apt-get -y install mysql-server mysql-client
아래 그림이 나오면 root 패스워드를 2번 입력하고 ok클릭
Nginx의 경우 웹서버이기 때문에 Apache서버가 이미 설치된 경우 삭제하고 설치하는것이 충돌을 피 할 수 있습니다.
1) 삭제방법
//아파치 서탑service apache2 stop
//아파치 삭제
apt-get remove apache2
2) 설치방법
//nginx 설치
apt-get -y install nginx
//nginx 시작
service nginx start
3) 웹브라우저에서 localhost 입력하여 젒속하여 아래와 같은 화면이 나오면 정상적으로 설치된 경우 입니다.
Nginx의 경우 PHP-FPM을 설치해야합니다. PHP-FPM은 PHP에 FastCGI Process Manager이 추가된것입니다.
설치방법
apt-get -y install php7.0-fpm
vi /etc/nginx/nginx.conf
vi 에디터에 익숙하지 않은 유저는 메모장처럼 사용 가능한 gedit를 사용하여 익숙한 편집툴로 수정이가능합니다.
사용방법 : gedit /etc/nginx/nginx.conf
// 수정 할 부분
[...] keepalive_timeout 2; [...]
vi /etc/nginx/sites-available/default
[...] server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;# 웹루트 기본 경로
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]
환경 설정이 끝나고 서비스를 리로드 합니다.
service nginx reload
Nignx를 재시작한 후 /etc/php/fpm/php.ini 열어 cgi.fix_pathinfo 설정값을 1에서 0 으로 변경합니다.
vi /etc/php/7.0/fpm/php.ini
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...]
PHP-FPM을 재시작 합니다.
service php7.0-fpm reload
설정완료 후 테스트 페이지를 만들어 접속 가능 여부를 확인 합니다.
vi /var/www/html/info.php
<?php phpinfo(); ?>
웹브라이저에서 http://localhost/info.php 로 접속해서 아래와 같은 화면이 나오면 정상적으로 설치가된것입니다.
PHP 에서 Mysql을 지원하기위해서 일반적으로 php7.0-mysql package 를 설치합니다.
관련 Package를 쉽게 찾기위해서 Search 명령어를 사용 하여 확인 할 수 있습니다.
apt-cache search php7.0
확인 후 아래 명령어를 사용하여 설치
(전 다 설치했습니다. 아래 패키지의 사용용도를 정확히 안되면 필요한것만 골라서 설치하면 됩니다.)
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
추가로 APCu 설치
:APCu는 PHP의 Opcache 모듈을 확장하는데 필요하다고 합니다.
예를 들면 위더프레스 같은 cache plugins 지원하는 소프트웨어를 좀더 안정적으로 지원하게 해준다고 합니다.
apt-get -y install php-apcu
위명령어로 설치 후 PHP_FPM을 재시작 합니다.
service php7.0-fpm reload
그리고 Nginx 의 환경 설정을 아래와 같이 변경합니다.
vi /etc/nginx/site-available/default
[...] location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
} [...]
이제 마지막으로 nginx 을 재시작합니다.
service nginx reload
이것으로 Nginx LEMP 서버 설치가 완료 되었습니다.
다음 강좌는 설치된 LEMP서버에 그누보드(G5)를 올려 보도록 하겠습니다.
PS. 이유는 모르겠으나 vi 명령으로 수정시 readonly 오류가 발생하면서 수정이 안되는 경우가 있습니다.
readonly 오류가 발생할경우 vi 를 nano로 변경하여 수정하면 정상적으로 수정이 됩니다.
우분투 사용자 계정 생성방법 (0) | 2017.07.19 |
---|---|
LEMP에 그누보드(G5) 설치하기 (0) | 2017.07.18 |
우분투 SSH Telnet 설치 방법 (0) | 2017.07.14 |
Centos 7.x - FTP(Vsftpd) 설치 방법 (0) | 2016.07.15 |
[CentOS] DNS 서버 구축 방법 (0) | 2016.07.15 |
Blog is powered by kakao / Designed by 미스터짱