- 프로젝트명 : server
- 프로젝트 선택 : 전체 -> server
2. VM인스턴스 생성
- 메뉴 -> VM인스턴스 -> 만들기
- 이름 : mysite
- 머신유형 : 초소형(공유 vCPU 1 개)
- 부팅 디스크 : 변경 -> OS이미지 -> CentOS 8
- http 트래픽허용 체크
- 만들기
3. VM 인스턴스 목록
- SSH 클릭(인증되며 까만창 뜸)
4. 프롬프트 창내의 명령실행
- 관리자 접속
sudo su -- 업데이트 및 다운로드,압축풀기 설치
yum update -y yum install -y wget unzip- FTP 용 계정생성 및 비밀번호 생성
useradd myid passwd myid- 사이트 경로 생성 및 권한 추가
mkdir /home/myid/mysite chmod +x /home/myid/mysite- PHP + 모듈 설치
dnf install -y dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm dnf module list php dnf module reset php dnf module install -y php:remi-7.4 dnf install -y php php-fpm php-mysql php-gd php-common php-cli php-json php-opcache php-devel php-imagick php-mbstring php-mcrypt php-mysqlnd php-pear php-xml php-xmlrpc php-soap php-dba php-bcmath php-pdo php-ldap- vi 편집기("insert 키" : 편집 및 수정, "Escape 키" : 보기모드, ":wq" : 저장, ":q" : 저장하지않고 닫기, ":/검색어" : 검색어 검색 )
- 편집기로 PHP 설정파일(/etc/php.ini) 설정 명령
vi /etc/php.ini- php.ini 변경내용(검색해서 해당 값만 변경)
cgi.fix_pathinfo = 0 allow_url_fopen = Off expose_php = Off display_errors = Off- 편집기로 php-fpm 설정파일(/etc/php-fpm.d/www.conf) 수정
vi /etc/php-fpm.d/www.conf- www.conf 변경내용 1. apache를 myid로 교체(apache로 검색)
user = myid group = myid- www.conf 변경내용 2. 주석제거(nobody로 검색)
listen.owner = nobody listen.group = nobody- www.conf 변경내용 3. listen 의 /run/php-fpm/www.sock을 127.0.0.1:9000으로 수정
listen = 127.0.0.1:9000- Nginx 설치
wget http://nginx.org/packages/mainline/centos/8/x86_64/RPMS/nginx-1.17.6-1.el8.ngx.x86_64.rpm yum localinstall -y nginx-1.17.6-1.el8.ngx.x86_64.rpm- Nginx 설정파일 수정
vi /etc/nginx/nginx.conf- Nginx 설정파일 수정내용(http{}안에 추가)
server_tokens off;- 방화벽 설정(http,https,ftp,database(MariaDB))
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --permanent --add-service=ftp firewall-cmd --permanent --add-port=21/tcp firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload- Nginx 기본 설정 삭제
rm -f /etc/nginx/conf.d/default.conf- Nginx 기본 설정 만들기
vi /etc/nginx/conf.d/default.conf- Nginx 기본 설정 만들기 내용(아래내용을 복사, 붙여넣기)
server { listen 80; server_name localhost; charset utf-8; root /home/myid/mysite; #access_log /var/log/nginx/host.access.log main; location / { index index.php index.html index.htm; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /home/myid/mysite; } location ~ \.php(?:$|/) { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }- php-fpm, nginx 재시작
systemctl start php-fpm nginx systemctl enable php-fpm nginx systemctl reload nginx- ftp 프로그램인 vsftpd 설치
dnf -y install vsftpd mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig grep -v ^# /etc/vsftpd/vsftpd.conf_orig > /etc/vsftpd/vsftpd.conf- vsftpd 설정파일 삭제
rm -f /etc/vsftpd/vsftpd.conf- vsftpd 설정파일 생성
vi /etc/vsftpd/vsftpd.conf- vsftpd 설정파일 내용입력
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES pasv_enable=Yes pasv_max_port=40000 pasv_min_port=40000- SELinux 권한에서 차단되는 경우가 있으므로 처리
setenforce 0- SELinux 권한에서 차단되는 경우가 있으므로 설정도 편집
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config- ftp 불가한 아이디 목록1에서 편집(root 제거)
vi /etc/vsftpd/ftpusers- ftp 불가한 아이디 목록2에서 편집(root 제거)
vi /etc/vsftpd/user_list- vsftpd 설정된 서비스로 재시작
systemctl start vsftpd systemctl enable vsftpd systemctl restart vsftpd- ftp 접속권한 편집
chown myid:myid /home/myid/ chown myid:myid /home/myid/mysite/ chown nginx:nginx /home/myid/ chown nginx:nginx /home/myid/mysite/ chown -R myid:myid /home/myid/ chmod -Rf 775 /home/myid- ftp 아이디 myid 접근권한 편집
vi /etc/passwd- ftp 아이디 myid 접근권한 편집맨아래 추가
myid:x:1001:1002::/home/myid/mysite:/bin/bash- MariaDB 설정 추가
yum search mariadb- MariaDB 설치 및 서비스 추가
yum install -y mariadb-server systemctl start mariadb systemctl enable mariadb- MariaDB root 루트 비밀번호 생성 및 설정(비밀번호,접속권한,test테이블등)
mysql_secure_installation- 그냥 순서대로함...
"엔터" y password password y n y y- MariaDB 재시작
systemctl restart mariadb- MariaDB 접속
mysql -u root -p- MariaDB 패스워드 로그인후 원격접속 가능하도록 root에 권한 부여, 비밀번호 다시 부여 후 접속 종료
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; exit5. Google Cloud Platform 메뉴에서 VPC네트워크 방화벽설정
- Google Cloud Platform 메뉴 -> 방화벽규칙 -> 만들기
- 이름 : mysite
- 대상 : 네트워크의 모든인스턴스
- 소스 IP 범위: 0.0.0.0/0
- 프로토콜 및 포트 : tcp 체크 -> 20-21,3306,40000
- 만들기
6. PHP MariaDB 접속 테스트 - index.php 생성
vi /home/myid/mysite/index.php- index.php 내용
<?php $conn=mysqli_connect('127.0.0.1', 'root', 'password'); if($conn) echo "db연결성공"; else echo "db연결 실패"; ?>7. ssh 옆에 외부 아이피 클릭 및 확인
8. ftp는 fileziller 이용하거나 크롬 브라우저로 접속확인가능
댓글 없음:
댓글 쓰기