홈 > IT > IT정보
IT정보

[Ubuntu 16.04] Nginx로 웹서버 설정하기2 - MariaDB설치,Nginx 설정

3 Selovic 1 384 1 0

1. PHP 및 PHP 모듈설치

 apt-get install php7.0-fpm 

PHP7버전을 사용할 예정입니다.

Ubuntu 16버전에서는 PHP7을 권장합니다.


 php -v 

 php-fpm7.0 -v 

PHP-FPM 프로그램 버전확인


 apt-get install php7.0-gd php7.0-curl php7.0-mbstring php7.0-xml php7.0-mcrypt 

자주 쓰이는 PHP 모듈설치


2. Nginx와 PHP-FPM 연동

 vi /etc/nginx/nginx.conf 

아래와 같이 변경합니다.


 vi /etc/nginx/conf.d/default.conf 

위 파일을 열어서 아래와 같이 내용을 변경합니다.(보안설정)

server {
    listen       80 default_server;
    server_name  localhost;
    root   /usr/share/nginx/html;


    location / {
        index  index.php index.html;
    }


    location ~ [^/].php(/$) {
        fastcgi_split_path_info ^(.+?.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }


        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}


 vi /etc/nginx/fastcgi_params 

이 파일도 보안성에 맞게 변경합니다.

아래와 같이.


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_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
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   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;


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_param   HTTPS                   $https;


# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200; 


 service nginx restart 

Nginx 재시작


3. PHP 정상작동 확인


 vi /usr/share/nginx/html/info.php 

파일을 생성해서 아래내용 삽입 후 저장


 <?php
phpinfo();
?> 


저장후 아이피주소뒤에 /info.php 입력해서 접속하면

아래와 같은 화면이 출력되는데 정상적으로 연동되었는지 확인하면 됩니다.


4. MariaDB설치


apt-get install mariadb-server



설치 중 생성할 root 계정의 패스워드를 물어보니

정확하게 입력하면됩니다.

ERROR 1524 (HY000): Plugin 'unix_socket'에러가 발생할 경우 아래명령어 실행


service mysqld stop
service mysql stop
service mariadb stop
mysqld_safe --skip-grant-tables &

1 Comments
2 realdragonhead 03.24 10:42  
계속 info.php 파일이 실행이 안되고 계속 다운로드 되는 문제가 발생해서 https://stackoverflow.com/questions/25591040/nginx-serves-php-files-as-downloads-instead-of-executing-them 참고했습니다. /etc/nginx/conf.d/default.conf  중간에
 location / {
        index  index.php index.html;
    }
 
 
    location ~ [^/].php(/$) {
        fastcgi_split_path_info ^(.+?.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
여기부분을
location / {
                index  index.php index.html index.htm;        #고친 부분
        }


        location ~ \.php$ {                #고친부분
                try_files $uri =404;          #추가한 부분
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;            #고친부분
                if (!-f $document_root$fastcgi_script_name) {
                        return 404;
                }
이렇게 고치니까 잘 되네요!! 혹시나 안되시는 분들 참고하시면 좋을꺼 같습니다!!