Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[5] : PHP-FPM,MariaDB
php, MariaDB 설치
#php7.0-fpm 설치 sudo 명령어가 귀찮다면? sudo su:루트권한 획득을 해보자 #aptitude search php7.0 #apt-get install php7.0-fpm //php-fpm7.0 설치 숫자 7.0 위치에 주의 #php -v //php 버전 확인 #php-fpm7.0 -v //php-fpm7.0 버전 확인 # apt-get install php7.0-gd php7.0-curl //널리 쓰이는 php모듈 설치 //설치가 완료되면 자동으로 PHP-FPM 프로그램을 재시작 한다. # vi /etc/php/7.0/fpm/php.ini //PHP Default timezone 설정하기. //PHP Default timezone 을 설정하는 것은 필수는 아니지만 매우 권장하는 작업입니다. 설정해주세요. Vi 편집기 사용법을 모르신다면... Vi 사용법 //문서가 열렸으면 /Module해서 Module 이라는 단어를 찾아서 아래 내용을수정을 한다. ;date.timezone = 주석(;)제거--> date.timezone = Asia/Seoul # service php7.0-fpm restart // php7.0-fpm 재시작
#MariaDB 설치 # apt-get install mariadb-server-10.1 mariadb-client-10.1 //MariaDB10.1 설치 //설치시에 데이터베이스 root 사용자의 비밀번호를 설정할 수 있다. //설치와 동시에 MariaDB 가 실행되며, 재부팅시에도 자동 시작되도록 설정된다. # service mysql status //서비스 상태 확인 # apt-get install php7.0-mysql //PHP-FPM 에 DB 연동관련 모듈설치
#기본 언어셋 설정(중요) # vi /etc/mysql/my.cnf 또는 #vi /etc/mysql/mariadb.conf.d/50-server.cnf //이 단계를 건너뛰면 DB가 latin1 으로 생성되며 추후 DB작업에 문제가 생길 수 있다. [mysqld] 항목 * Basic Settings 소항목에서 skip-external-locking 밑에줄에 다음 2 줄을 추가한다.
vi 편집기에서 Ecc -> /set-server Enter 하면 set-server가 검색된다.
세팅이 되어 있다면 추가하지 않아도 된다. 2017.07.22 edited character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci #service mysql restart //mysql을 재실행해서 변경사항 적용
#Nginx 와 PHP-FPM 연결 // Nginx 프로그램은 기본적으로 nginx 사용자 권한으로 실행되고, //PHP-FPM 프로그램은 기본적으로 www-data 사용자 권한으로 실행된다. //둘의 사용자 권한을 www-data 로 일치시키자. 이 사용자는 운영체제 설치시 자동으로 생성되는 특수목적 사용자이다. nginx 의 설정값만 바꾸면 된다. # vi /etc/nginx/nginx.conf //Nginx 사용자 권한 변경 //첫줄의 user nginx; 를 user www-data; 로 바꿉니다.
// ubuntu 17 이후로 기본 www-data로 되어있음 2017.07.21 edited # service nginx restart //nginx를 재실행해서 변경사항 적용 # vi /etc/nginx/conf.d/default.conf
//ubuntu 17부터 /etc/nginx/sites-enabled/default 로 변경 2017.07.21 edited //Nginx 에서 PHP 확장자에 대해서 PHP-FPM 프로그램으로 요청을 전달하게 설정하기 과정 설명 #1. 기본 값에서 주석 제거 #2. 커스텀 에러페이지 구문 제거 #3. Nginx - PHP-FPM 구문 추가 Nginx phpCGI 참조 결과적으로 다음의 구문을 적용하시면 됩니다. server { listen 80; server_name localhost; root /usr/share/nginx/html; location / { index index.php index.html; } location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
# vi /etc/nginx/snippets/fastcgi-php.conf
fastcgi_split_path_info ^(.+\.php)(/.+)$;
if (!-f $document_root$fastcgi_script_name) { return 404; }
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info; # vi /etc/nginx/fastcgi_params //fastcgi_params 도 변경 Nginx phpCGI)참조 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 재실행 적용
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
라는 Error message가 뜨면
#service nginx status
해보고 아래와 같은 메세지가 뜨면 방긍 수정하거나 추가한 내용을 하나씩 주석처리 해보면서
#service nginx restart
해본다.
Error : failed to start a high performance web server and a reverse proxy server
보통 jnclude 파일과 현재 파일에 중복정의 되어 있거나 ';' 표시를 빼는등 오타문제 이다.
# vi /usr/share/nginx/html/phpinfo.php //연동 테스트
phpinfo문서를 보여주는 함수를 호츨하는 아래글을 작성하여
<?php
phpinfo();
?>
//웹 브라우저에서 http://111.222.333.444(자신의 서버 아이피)/phpinfo.php 를 실행시켜 본다.
22 2017/12/03 01:53:14 [error] 9266#9266: *40 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1 , server: test.iptime.org, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "test.iptime.org"
22 2017/12/03 01:53:14 [오류] 9266 # 9266 : * 업스트림에 연결하는 동안 40 connect ()가 실패했습니다 (111 : Connection refused), 클라이언트 : 192.168.0.1, 서버 : test.iptime.org, 요청 : "GET / HTTP / 1.1", 업스트림 : "http://127.0.0.1:3000/", 호스트 : "test.iptime.org"
점검해볼 내용
업스트림 : "http://127.0.0.1:3000/" -->> /etc/nginx/sites-available/default ->> change port
test.iptime.org 오탈자 확인
'my_lesson > _Linux' 카테고리의 다른 글
Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[7] : 외부 접속(ssh, port forward) (0) | 2015.12.23 |
---|---|
Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[6] : 한글 편집기 (1) | 2015.12.23 |
Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[4] : Nginx (2) | 2015.12.16 |
Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[3] : 쉘 기본 언어 (1) | 2015.12.16 |
Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[2] : 파티션 설정하기 (0) | 2015.12.15 |
댓글