centos 7 vsftpd 설치 오류

일단 현재 사용 버전

[root@centos home]# rpm -qa *-release
centos-release-7-5.1804.5.el7.centos.x86_64
elrepo-release-7.0-3.el7.elrepo.noarch
epel-release-7-11.noarch

vsftpd 설치에 관한 문서

centos 7 에 vsftpd 를 설치해서 chroot() 를 적용해서 일반 사용자들은 상위 폴더에 접속제한를 주려고 한다.

vsftpd.conf파일 안에 설정을 다음과 같이 바꿨다.

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
  • chroot_local_user=YES … 상위폴더에 접근 제간
  • chroot_list_enable=YES … 리스트를 통해 상위접근을 하게 한다.
  • chroot_list_file=/etc/vsftpd/chroot_list … 리스트 파일 위치

500 OOPS: chroot

filezilla 를 통한 접속

상태:	연결 수립, 환영 메시지를 기다림...
응답:	220 (vsFTPd 3.0.2)
명령:	AUTH TLS
응답:	530 Please login with USER and PASS.
명령:	AUTH SSL
응답:	530 Please login with USER and PASS.
상태:	보안되지 않은 서버입니다. TLS를 통한 FTP를 지원하지 않습니다.
명령:	USER leaf
응답:	331 Please specify the password.
명령:	PASS ********
응답:	500 OOPS: chroot
오류:	치명적 오류: 서버에 연결하지 못함

에러 발생 이유

SELinux 설정 때문에 발생하였음.
그렇다고 SELinux 설정을 enforcing에서 disabled하는 행위는 최대한 피하자. 보안상 나중에 이슈가 있을 수 있으며, 나중을 위해서라도 최대한 이를 해결 해 보려고 한 것이 포스팅의 이유다.

해결책

SELinux 설정에 ftp 관련 항목을 enable 하자

일단 SELinux 에서 ftp 관련 허용 목록을 리스트 해보자

# getsebool -a | grep ftp
[root@centos /]# getsebool -a | grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
  • allow_ftpd_anon_write on : FTP 서버가 public_content_rw_t 파일 형식으로 파일을 읽고 쓸 수 있도록 허용합니다.
  • ftp_home_dir on : FTP 서버가 사용자의 홈 디렉토리에있는 파일을 읽거나 쓸 수 있도록 허용합니다.
  • allow_ftpd_full_access : FTP 서버가 시스템의 모든 파일을 읽거나 쓸 수 있도록 허용합니다.
  • allow_ftpd_use_cifs on : FTP 서버 공개 파일 전송 서비스에 CIFS를 사용하는 것을 허용합니다.
  • allow_ftpd_use_nfs on : FTP 서버 공개 파일 전송 서비스에 NFS를 사용할 수 있습니다.

ftp에 대한 모든 허용

# setsebool -P ftpd_full_access 1

vsftpd: refusing to run with writable root inside chroot()

응답:	500 OOPS: vsftpd: refusing to run with writable root inside chroot()
오류:	치명적 오류: 서버에 연결하지 못함

vsftpd 에서 chroot내에 쓰기 권한이 없어서 있기때문에 발생한 원인이다. 이를 해결하기 위해서는 설정을 통해서 쓰기권한이 있어도 좋다는 허용을 해 주던가 아니면 폴더ㅈ에 쓰기 권한을 제거하는 방법이 있다.

vsftpd.conf 에서 쓰기 권한을 허용

vsftpd.conf 설정 변경

chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES

폴더에서 쓰기 권한을 제거

# sudo chmod u-w [사용자폴더명]

이렇게 한다면 파일을 복사해서 넣을 수 없을 것이다.

반응형

'개발 > 리눅스' 카테고리의 다른 글

synology | nginx + php70 + mariadb + wordpress  (0) 2019.02.15
CentOs7 | Vim8 설치하기  (0) 2018.12.07
firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
LG 건조기 모델 구분

LG 건조기 모델 기능 구분하기

어머니 집에 건조기를 하나 구입하신다고 해서 건조기를 알아보는 도중에 복잡하게 모델명으로 구분하고 있다는 사실을 알게 되어서 정보를 공유하고자 글을 남깁니다.

(정보 수정일 : 2018년 10월 1일)

기본적인 모델명 보는 방법

RH9WG 를 쪼개면 다음과 같이 나뉜다.

코드 모델 용량 색상 모델
RH9SG RH 9 S G

예)

RH14WG / RH9WG
두 모델의 차이는 용량 14kg 와 9kg 차이

RH9SG / RH9WG
색상 차이 S(silver) 와 W(white) 의 차이

모델별 필수정보 도표

모델은 크게 G,GA,I,IA,AW,F, 그리고 추가로 R, A가 있다. (기타 부수적인 것들이 있지만, 아래 사항만 알면 된다.)

R 모델
렌탈용에는 제일 뒤에 R이 들어간다.
예) RH9WGR, RH9WFR
A 모델
앞에 쓰여 있는 모델의 리모컨이 없는 상품,
드럼재징알코스타 입니다.
예) RH9SGA, RH9WIA
RH9 RH9 RH9 RH9 RH9 RH9
모델 G GA I IA AW F
듀얼 인버터 히트펌프 O O O O X X
내부 재질 스텐레스 알코스타 스텐레스 알코스타 스텐레스 스텐레스
인버터 모터 O O O O O O
스마트타이머 O O O O X X
콘덴서 자동세척 시스템 O O O O O O
99.99% 살균 O O O O O O
2중 안심필터 O O O O O O
스마트씽큐 O O O O X X
전용리모컨 O X O X O O
센서건조 X X O O O O
건조코스 표준/강력/소량급속/타월/셔츠/울, 섬세/기능성의류/이불/침구털기/살균/선반건조/송풍/온풍/다운로드코스 표준/강력/소량급속/타월/셔츠/울, 섬세/기능성의류/이불/침구털기/살균/선반건조/송풍/온풍/다운로드코스 표준, 강력, 소량급속, 타월, 이불, 울/섬세, 기능성의류, 에어리프레쉬, 침구털기, 살균, 선반건조, 송풍, 온풍, 다운로드코스 표준, 강력, 소량급속, 타월, 이불, 울/섬세, 기능성의류, 에어리프레쉬, 침구털기, 살균, 선반건조, 송풍, 온풍, 다운로드코스 표준/이불/셔츠/타월/급속/침구털기/살균/기능성의류/란제리/울,섬세/선반건조/송풍/온풍/다운로드코스 표준/이불/셔츠/타월/급속/침구털기/살균/기능성의류/란제리/울,섬세/선반건조/송풍/온풍/다운로드코스
부가기능 절약건조/건조정도(강력/표준/약)/구김방지/시간추가, 줄임 절약건조/건조정도(강력/표준/약)/구김방지/시간추가, 줄임 절약건조 / 건조정도(강력/표준/약) / 간편다림질 / 다림질용 알림 / 내마음 / 구김방지 / 예약 절약건조 / 건조정도(강력/표준/약) / 간편다림질 / 다림질용 알림 / 내마음 / 구김방지 / 예약 절약건조 / 간편다림질 / 구김방지 절약건조 / 간편다림질 / 구김방지
다운로드코스 운동복/장마철/에어리프레쉬/소량건조/란제리/청바지/촉촉건조/강력건조/절약건조 운동복/장마철/에어리프레쉬/소량건조/란제리/청바지/촉촉건조/강력건조/절약건조 운동복/장마철/소량건조/란제리/청바지/촉촉건조/강력건조/절약건조 운동복/장마철/소량건조/란제리/청바지/촉촉건조/강력건조/절약건조 운동복/장마철/리프레쉬/소량건조/란제리/청바지/촉촉건조/강력건조 운동복/장마철/리프레쉬/소량건조/란제리/청바지/촉촉건조/강력건조

자세한 기능에 대해서는 홈페이지에서 확인하면 좋겠다.

가격순

모델별 가격은 G > I > AW > F 순으로 높다.
색상별 가격은 실버 > 화이트
그리고 뒤에 A가 들어가면 리모콘과 드럼 재징이 다르다.

부가 모델정보

반응형

프라임 무선충전패드

Imgur

4천원에 구매 할 수 있는 기회에 회사에 하나 마련해 놓기위해서 구매한 제품 입니다. 사무실에서 핸드폰으로 검색도 하고, 페이지 테스팅도 해야 되서 이래저래 손에 자주들게 되는 핸드폰을 들었다놨다 하는데 충전기를 꼽고빼고 전화받고, 이러기가 상당히 무리가 있었습니다.
이를 해결하고자 무선 충전기를 구매하게 되었습니다.
과거에는 무선충전기가 아무리 저렴해도 1만원대였는데, 이제는 5천원도 안되는 가격에 구매할 수 있다는 사실이 놀랍습니다.

일단 이 제품은 고속 충전 기능은 지원하지 않습니다.

장점

가벼움

저비용

A/S 를 의한 비용보다 새거를 하나 사면 되는 그런 가격

Qi 방식

2018년 Qi 방식을 가지고 출시. 새로운 기술인 만큼 좋기는 하지만, 열손실에 의한 발열은 무선충전기의 공통된 현상 입니다. 과거 기술도 발열은 어쩔 수 없습니다.
문제는 이게 폰에 어떤 무리를 주는지 알 수 없다는 것입니다. 하지만, 일단은 그냥 무시히고 사용하면 됩니다.

단점

충전인식 범위의 협소함

무선충전의 편리함은 선을 꼽는 행위를 벗어나 핸드폰을 던져놓은 듯한 느낌으로 무신경하게 테이블에 올려두는 행동만으로 핸드폰이 충전이 되는 것인데, 이 제품은 충전위치를 찾아가기가 힘듭니다.

10초를 요리조리 돌려보고, 이동시켜봐도 파란LED가 들어왔다가 나갔다는 반복합니다. 딥빡은 보너스.
차라리 5핀을 직접 꼽는게 더 시간을 절약할 수 있습니다.

Imgur

발열

무선충전은 열로 에너지가 전환되면서 열손실이 존재하는데 이게 핸드폰을 땃땃하게 해줍니다.

컴터와의 연결

USB 충전기에 무선 충전기를 사용하는데요. 그 이유는 컴퓨터에서 보내주는 전력량으로는 무선 충전이 느리기 때문입니다.
어떻게 보면 컴터에 일반 USB 케이블 단자에 충전하는 것과 충전기에 무선충전기를 연결해서 충전하는 것과 속도가 비슷하게 나올지 모르겠습니다. 하지만 열손실은 전자가 더 없겠네요.

그런데, 어쩔 수 없이 컴터와 연결을 해야하는 상황이 오면, 이 USB 를 뺏다가껼다가 번거롭습니다. 물론 저 말고 따로따로 사용하시는 분들이 있을 수 있지만, 저에게는 이게 번거로운 과정이었습니다.

결론

저렴한 가격에 일한 구매는 했지만, 다른 한 자리에 놓고 있자니 자리가 아까워서 연결을 해서 사용은 하지만, 막상 사용하면 매번 핸드폰 위치선정을 잘 해줘야 하기 때문에 번거로움을 지울 수가 없다.

그런데, 다른 무선충전기의 후기를 보면, 다른 것도 썩 충전자리 인식이 안되는 제품이 여럿있다는 것을 확인 할 수 있었다.

번거롭긴 하지만, 그래도 쓸만하다… 가격이 이 사실을 뒷받침해 준다.

반응형

firstmall plus 설치기

주의사항

  • php 7.0.30 버전을 사용해야 한다.
    • 패키지 명령어를 통해서 간단히 설치할 수 있다. (firstmall에서는 컴파일이 기본). 사실 컴파일이 시간이 많이 들지만 속도면서 우월하다.
    • firstmall 에서 제공하는 본인확인 모듈이 php 7.0 에 맞춰져 있다. 이게 호환되는 버젼이 7.0이고 상위 버전을 설치하려면 나이스 인증 업체에 연락을 해서 상위 버전에 맞는 php 파일을 제공 받아야 한다.
  • Linux 에 설치해야 하는 이유
    • firstmall에서 제공하는 모듈은 중에 일부를 컴파일해서 사용해야 되기 때문에 윈도우에서 컴파일 번거롭다.
  • firstmall 설치 기준이 Centos 이다.
    • window에도 설치해 봤는데 초반에 뻘짓을 했다. 이제는 대충 사양을 다 알아서 어디서든 설치할 수 있는 수준이 됐다.

centos7 을 설치

kernel upgrade

보인을 위한 커널 업그레이드.

firstmall 설치파일 옮기기

scp 명령어를 통해서 파일을 이동

# scp [file_name] root@[서버주소]:~/

mysql 5.7.17 설치

컴파일 해서 설치를 권장하지만, 설정의 구찮음으로 stable version 으로 설치 했다.

사전 작업

컴파일에 필요한 패키지 설치

# yum -y install compat-libstdc* compat-glibc* cpp* gcc* rpm-devel elfutils elfutils-libelf elfutils-devel gdbm* flex gd gd-devel gd-progs libjpeg* libpng* freetype* libart* openssl* ncurses-devel libxml2* cmake bison make

boost 1.59.0 설치

mysql 컴파일에 필요. 버전에 맞게 인터넷 검색을 통해서 다운로드. mysql 소스 파일이 있는 곳에서 아래 명령어를 입력

다운로드
# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
압축해제
# tar xvfz boost_1_59_0.tar.gz
cmake 작성
 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1  -DWITH_EXTRA_CHARSETS=all -DWITH_ZLIB=system  -DDOWNLOAD_BOOST=1  -DWITH_BOOST=./boost_1_67_0 -DMYSQL_DATADIR=/usr/local/mysql/data
컴파일 & 설치, 엄청난 시간이 들어간다. 대신 좀 빠르겠지.
# make
# make install
기존에 있는 mysql 설정파일 덮어쓰기
# cp support-files/my-default.cnf /etc/my.cnf
mysql 설정 파일추가
# vi /etc/my.cnf
[mysqld]
innodb_file_per_table -> 선택 입력 옵션
sql-mode="NO_AUTO_CREATE_USER" -> 필수 입력 옵션
초기화
# /usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

에러가 없이 진행이 된다면, 패스워드가 화면에 표시된다.

[Note] A temporary password is generated for root@localhost: %y1jWyjqi(&( <- 처음 DB root 비밀번호 지정시 필요
디렉토리 권한설정
# chown -R root.mysql /usr/local/mysql/
# chown -R mysql /usr/local/mysql/data
Mysql 실행
# /usr/local/mysql/support-files/mysql.server start
재시작시 자동 실행등록
# cp -a support-files/mysql.server /etc/init.d/mysqld
# cd /etc/rc3.d
# ln -s ../init.d/mysqld S90mysqld
mysql 계정 정보 변경
# /usr/local/mysql/bin/mysqladmin -u root -p password '사용할 root 비밀번호 지정'

이 방법에서 에러가 나서 아래와 같은 방법으로 실행했다.
사실은 일종의 초기화 방법이기도 하다.

# /usr/local/mysql/bin/mysql_secure_installation

새로운 root 비밀번호를 입력한다.
나머지는 yesyesyesyesyesyesyes

MARIADB 10.3

마리아DB에서도 설치할 수 있다.
라이센스 문제가 있을 수도 있겠다싶어서 개인적으로는 여기로 설치했다.아래는 MariaDB 에서 설정하는 방법.
대게 MYSQL과 비슷한 설정을 가지고 있지만, Mysql 베이스 버전에 맞게 설치를 진행해다 한다.

SQL-MODE

ERROR 1265 : Data truncated for column 에 대한 대응

STRICT_TRANS_TABLES 또는 STRICT_ALL_TABLES 중 적어도 하나가 사용되는 모드를 엄격 모드라고합니다.
엄격 모드가 설정되지 않으면 (버전 <= MariaDB 10.2.3의 기본값), MariaDB는 너무 긴 문자열을 자르거나 범위를 벗어난 숫자 값을 조정하고 경고를 생성하는 등 잘못된 값을 자동으로 조정합니다.
엄격 모드가 설정된 경우 (기본값 : MariaDB 10.2.4) 명령문이 실패하고 대신 오류가 반환됩니다. IGNORE 키워드는 엄격 모드가 설정되어 오류를 경고로 변환 할 때 사용할 수 있습니다.

> select @@sql_mode, @@global.sql_mode;

출력내용

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

NO_AUTO_CREATE_USER만 남겨야 하므로, 아래와 같이 입력한다.

> select @@sql_mode, @@global.sql_mode;
> set @@SQL_MODE = 'NO_AUTO_CREATE_USER';
> set @@global.SQL_MODE = 'NO_AUTO_CREATE_USER';

본인은 global.@@sql_mode 도 설정을 변경해야 적용이 됐다.

httpd 2.2.31 설치

준비

# tar xvfz httpd-2.2.31.tar.gz

PHP 7.0.30 설치

컴파일 하다가, 그냥, package로 설치가 된다는 것을 알게 됨

# sudo yum install php70 php70-soap php70-mysqlnd php70-gb php70-mcrypt php70-opcache php70-mbstring php70-xml php70-zip php70-devel

SELINUX 끄기

/var/www/html 에 접속을 하려고하면 다음과 같은 에러를 뿜어내는 것을 알 수 있다.
selinux 의 보안체계 때문이다.

core:crit] [pid 1502] (13)Permission denied: [client 192.168.0.114:54909] AH00529: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/html/' is executable
# Forbidden

You don't have permission to access / on this server.

SELinux 해제

  • 인터넷에 연결된 리눅스 서버라면 SELinux 해제는 결코 추천하지 않는다.
  • 해제할 경우 다시 활성화 시키려면 재부팅이 필요하며 재부팅시 모든 자원에 대해 보안 레이블을 설정해야 하므로 부팅 시간이 매우 오래 걸릴 수 있다.

SELinux 해제 방법

#  vi /etc/sysconfig/selinux

다음 항목을 아래와 같이 수정 후, 재부팅 한다.

SELINUX=disabled
반응형

'개발 > 리눅스' 카테고리의 다른 글

CentOs7 | Vim8 설치하기  (0) 2018.12.07
CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05

animation gradation 만들기

<!-- index.html -->
<div class="anime"></div>
/* index.css */
.anime{
	height: 100px;
	display: block;
	width: 100%;
	background-image: linear-gradient(to right, #fff98f 0%, #47cf8d 50%, #fff98f 100%,);	
	background-size: 200% auto;
	animation: grdAnime 2s infinite linear;
}

@-webkit-keyframes grdAnime{
	0%{
		background-position: 0 0;
	}
	100%{
		background-position: 200% 0;
	}
}
@keyframes grdAnime{
	0%{
		background-position: 0 0;
	}
	100%{
		background-position: 200% 0;
	}
}

반응형

Amazon Linux AMI 에 설치

# wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
# yum localinstall mysql57-community-release-el6-11.noarch.rpm
# yum remove mysql55 mysql55-common mysql55-libs mysql55-server
# yum install mysql-community-server
# service mysqld restart
# mysql_upgrade -p

Amazon Linux Ami 에 설치환경

Apache 2.4.33

[root@ip-172-31-10-31 html]# httpd -V
Server version: Apache/2.4.33 (Amazon)
Server built:   May 23 2018 19:02:39
Server's Module Magic Number: 20120211:76
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

MYSQL 5.7.22

[root@ip-172-31-10-31 html]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

PHP 7.0.30

[root@ip-172-31-10-31 html]# php -v
PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies
반응형

'개발 > 리눅스' 카테고리의 다른 글

CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18

version 정보

  • nginx : 1.14.0
  • php : 7.1.18

yum install nginx 를 통해서 설치하였으며,

# yum install nginx

[root@centos html]# nginx -v
nginx version: nginx/1.14.0

php71 은 remi repo를 추가해서 아래와 같이 설치했다.

# yum --enablerep=remi-php71 install php-fpm php-common

[root@centos html]# php -v
PHP 7.1.18 (cli) (built: May 24 2018 07:59:58) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright © 1998-2018 Zend Technologies

설정파일

/etc/php-fpm.d/www.conf 파일

########### file /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen은 nginx 설정과 맞춰줘야 한다.
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx

/etc/nginx/conf.d/default.conf 파일

########### file /etc/nginx/conf.d/default.conf

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    # root 설정이 없으면 404 에러가 날수 있다.
    root   /usr/share/nginx/html; 
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        #fastcgi_pass 는 아래 두개 중 아무거나 사용해도 좋으나 php-fpm.d/www.conf 설정과 맞춰줘야 한다.
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        #/scripts 이름으로 인해서 오류가 생길 수 있다.
	    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

에러상황 #1

사이트에 접속은 되는데 404 error 또는 파일을 찾을 수 없는 상황

[error] 7469#7469: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.114, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:",

해결방법

/etc/nginx/conf.d/default.conf 설정파일에서 아래와 같이 root 폴더 설정을 한다.

server {
	root /usr/share/nginx/html;
	index
}

에러상황 #2

*1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream,

php-fpm.sock 의 그룹:사용자 권한 문제
아래와 같은 명령어로 해결할 수 있다.

# chown nginx:nginx /var/run/php-fpm/php-fpm.sock

다른 분들 고생 안했으면 좋겠다.

...

반응형

'개발 > 리눅스' 카테고리의 다른 글

firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09

아이맥, 맥북, 맥 부팅이 느려질 때 해결방법

2013 late 아이맥을 사용하고 있는데 high sierra로 올리고 난 다음 부터 부팅 시동음이 울릴때까지 2,3분이 걸린다.

그 해결책으로 여러가지를 검색 해 본 결과 아래와 같은 방법을 적용해 보라고 한다.

  1. Shutdown the computer, wait 30 seconds, restart the computer.
  2. Resetting your Mac’s PRAM and NVRAM
  3. Reset the System Management Controller (SMC)
  4. Start the computer in Safe Mode, then restart normally. This is slower than a standard startup.
  5. Repair the disk by booting from the Recovery HD. Immediately after the chime hold down the Command and R keys until the Utility Menu appears. Choose Disk Utility and click on the Continue button. Select the indented (usually, Macintosh HD) volume entry from the side list. Click on the First Aid button in the toolbar. Wait for the Done button to appear. Quit Disk Utility and return to the Utility Menu. Restart the computer from the Apple Menu.
  6. Create a New User Account Open Users & Groups preferences. Click on the lock icon and enter your Admin password when prompted. On the left under Current User click on the Add [+] button under Login Options. Setup a new Admin user account. Upon completion log out of your current account then log into the new account. If your problems cease, then consider switching to the new account and transferring your files to it - Transferring files from one User Account to another.
  7. Download and install theOS X El Capitan 10.11.6 ComboUpdate or 10.12.6 Combo Update or macOS High Sierra 10.13.2 Combo Update as needed.
  8. Reinstall OS X by booting from the Recovery HD using the Command and R keys. When the Utility Menu appears select Reinstall OS X then click on the Continue button.
  9. Erase and Install OS X Restart the computer. Immediately after the chime hold down the CommandandRkeys until the Apple logo appears. When the Utility Menu appears:
  10. 개발자 포럼에서 sudo trimforce diasble을 적용하면 빨라진다는 말이 있다.

본인은 일단 다 했봤는데, 재부팅은 빨라졌다. 첫 구동 할때는 느림. 그래도 재시작이 빨라져서 너무 좋다.

반응형
vuejs | filter | 숫자단위당 쉼표 표기하기

화폐 단위를 표기하기 위해서 숫자 단위당 쉼표를 표기하는 방법
Vuejs Filter Currency with decimal places

regex를 이용하는 방법도 있겠지만, 기본 내장함수를 이용하는게 제일 간단한 방법이다. 코드량도 늘어나지 않고.

필터에 아래와 같은 코드를 추가 합니다.

filters: {
  currency: value => {
    if (!value) return  ''
    return value.toFixed(0).replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, "$1,")
  }
}

.toFixed(num) : 소수점 아래 표기 자릿수(num)


반응형

'개발 > Vue.js' 카테고리의 다른 글

Vue.js | PWA | uri scheme 가 없을 경우  (0) 2018.03.12
axios form 데이터 저장하기

axios.post 에 form 데이터를 넣는 방법

axios.post 는 그냥 사용하면 form 데이터 형식을 사용할 수 없다. 그래서 new FormData()를 이용해서 form 형식으로 데이터를 보내야 한다.

기존에 데이터에 post 형식으로 데이터를 보내는 방법

axios.post(`http://localhost:8000/api/auth`, {
    headers: {
      'Content-type': 'application/x-www-form-urlencoded',
    },
    id : 'hong',
    pwd: '12345'
  }).then( response => {
    console.log('response', JSON.stringify(response, null, 2))
  }).catch( error => {
    console.log('failed', error)
  })

form 형식으로 데이터를 전송하고 제어하기 위해서 는 아래와 같이 사용을 한다.

let form = new FormData()
form.append('id', this.userID)
form.append('pwd',this.userPass)

axios.post(`http://localhost:8000/api/auth`, form)
  .then( response => {
    console.log('response : ', JSON.stringify(response, null, 2))
  }).catch( error => {
    console.log('failed', error)
  })

axios.post 방식은 심플하지만 기본 설정을 잘 해줘야 한다. 암호화 기능을 사용하려면 defaults세팅에서 헤매는 일이 많을 수 있다.

예를 들어 headers에 토큰을 저장해서 암호화 접근 방식을 사용한다는 점 또한 대표적인 기능 중에 하나고, 토큰에 의해서 접속할 수 있은 권한을 제어 하는 기능 또한 같은 맹락이라고 할수 있다

querystring을 사용해서 로그인 하는 방법을 추천한다. 이 방법은 new FomData()로 하는 방식보다 훨씬 간단하다. 줄을 줄일수도 있다

Axios.post(
    `/user/login`,
    qs.stringify({ id, pw })
).then(data  => {
commit("LOGIN", data);
});
반응형

+ Recent posts