본문 바로가기

단축키

Prev이전 문서

Next다음 문서

수정 삭제

단축키

Prev이전 문서

Next다음 문서

수정 삭제
Extra Form

우분투 서버에 nginx 최신 안정버전, php 7.2.x, mariadb 10.3.x 버전 설치를 위한 스크립트이다. 아래 스크립트트를 server.sh 등으로 저장한 후 실행 권한을 준 후 실행한다. 사용자명, 비밀번호, 도메인을 입력받아 설치를 진행하며 DB 생성을 위해 DB root 비밀번호 입력이 필요하다. 스크립트는 우분투 서버 16.04 LTS(64비트)에서 테스트 했다.

 

#!/bin/bash
# ================================================================== #
# nginx, php 7.2.x, mariadb 10.3.x install shell script for Ubuntu
# ================================================================== #
# Copyright (c) 2018 Seongho Jang https://ncube.net
# This script is licensed under MIT
# ================================================================== #
# Input username, password, domain
while [[ $username == '' ]]
do
    read -p "Enter Username: " username
done
while [[ $password == '' ]]
do
    read -s -p "Enter Password: " password
    echo -e ""
done
while [[ $domain == '' ]]
do
    read -p "Enter domain: " domain
done
# Update package
sudo apt-get update
sudo apt-get -y upgrade
# Set locale
#sudo dpkg-reconfigure locales
sudo apt-get -y install language-pack-ko-base language-pack-ko
sudo locale-gen ko_KR.UTF-8
sudo locale-gen en_US.UTF-8
sudo localectl set-locale LANG=en_US.UTF-8 LANGUAGE="en_US:en"
sudo source /etc/default/locale
# Install mail
sudo apt-get -y install sendmail
sudo apt-get -y install mailutils
# Create user
sudo groupadd "$username"
sudo useradd -g "$username" -s /bin/bash -m "$username"
echo -e "$passwordn$passwordn" | sudo passwd "$username"
# Make directory
sudo mkdir -p /home/"$username"/www
sudo chown "$username"."$username" /home/"$username"/www
# Set timezone
sudo timedatectl set-timezone Asia/Seoul
sudo apt-get install -y rdate
sudo /usr/bin/rdate -s time.bora.net; /sbin/hwclock --systohc
# Install MariaDB 10.3.x
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.kaist.ac.kr/mariadb/repo/10.3/ubuntu '$(lsb_release -cs)' main'
sudo apt-get update
sudo apt-get -y install mariadb-server
# Install nginx latest stable version
sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ `lsb_release -cs` nginx' >> /etc/apt/sources.list"
sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ `lsb_release -cs` nginx' >> /etc/apt/sources.list"
curl http://nginx.org/keys/nginx_signing.key | apt-key add -
sudo apt-get update
sudo apt-get install -y nginx
# Install PHP 7.2.x
sudo apt-get -y install python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.2-cli php7.2-fpm php7.2-bcmath php7.2-bz2 php7.2-common php7.2-curl php7.2-dba php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-soap php7.2-xml php7.2-xmlrpc php7.2-zip
# nginx configure
sudo service nginx stop
sudo cat > /etc/nginx/conf.d/"$domain".conf <<WEBCONF
server {
    listen 80 default_server ;
    server_name $domain www.$domain ;
    root /home/$username/www ;
    access_log /var/log/nginx/$domain.access.log ;
    error_log  /var/log/nginx/$domain.error.log warn ;
    location / {
        index index.php index.html index.htm ;
    }
    
    include /etc/nginx/php.conf ;
    
}
WEBCONF
# Create database
sudo service mysql restart
while [[ $dbpassword == '' ]]
do
    read -s -p "Enter DB Root Password: " dbpassword
    echo -e ""
done
while ! mysql -u root -p$dbpassword  -e ";" ; do
     read -s -p "Can't connect, Enter DB Root Password: " dbpassword
     echo -e ""
done
mysql -uroot -p${dbpassword} -e "CREATE DATABASE ${username} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -uroot -p${dbpassword} -e "CREATE USER ${username}@localhost IDENTIFIED BY '${password}';"
mysql -uroot -p${dbpassword} -e "GRANT ALL PRIVILEGES ON ${username}.* TO '${username}'@'localhost';"
mysql -uroot -p${dbpassword} -e "FLUSH PRIVILEGES;"
# Daemon start
echo -e ""
sudo nginx -t
sudo php-fpm7.2 -t
sudo service php7.2-fpm restart
sudo service nginx restart
echo "Complete!"

 

 

 

/etc/nginx/php.conf 파일의 내용은 아래와 같다.

 

 

# Block dot file (.htaccess .htpasswd .svn .git .env and so on.)
location ~ /. {
    deny all;
}
# Block (log file, binary, certificate, shell script, sql dump file) access.
location ~* .(log|binary|pem|enc|crt|conf|cnf|sql|sh|key)$ {
    deny all;
}
# Block access
location ~* (composer.json|contributing.md|license.txt|readme.rst|readme.md|readme.txt|copyright|artisan|gulpfile.js|package.json|phpunit.xml)$ {
    deny all;
}
location = /favicon.ico {
    log_not_found off;
    access_log off;
}
location = /robots.txt {
    log_not_found off;
    access_log off;
}
# Block .php file inside upload folder. uploads(wp), files(drupal), data(gnuboard).
location ~* /(?:uploads|default/files|data)/.*.php$ {
    deny all;
}
location ~ [^/].php(/|$) {
    fastcgi_split_path_info ^(.+?.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    # flush
    fastcgi_keep_conn on;
    gzip off;
    proxy_buffering off;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_read_timeout 3600;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;       
}

 


List of Articles
번호 분류 제목 날짜 조회 수
공지 안내 🚨(뉴비필독) 전체공지 & 포인트안내 7 file 2024.11.04 25961
공지 System URL만 붙여넣으면 끝! 임베드 기능 2025.01.21 20461
377914 유머 미쳐돌아간다는 이민자 폭동사건 newfile 2025.06.09 173
377913 트럼프 LA 불법이민자 추방 취재하던 기자 newfile 2025.06.09 177
377912 생활용품 스텐 304싱크대 부수구망세트+숟가락불림통 19,900원 무배 newfile 2025.06.09 617
377911 노브랜드가 더맛잇는거같아 1 new 2025.06.09 170
377910 의류 기능성 반팔 티셔츠 6,500원 배송비 3,000원 newfile 2025.06.09 181
377909 생활용품 시온 국내생산 냉감 쿨매트 file 2025.06.09 1682
377908 유머 누적 조회수 4억 1천만이라는 웹툰 작가 file 2025.06.09 218
377907 내일 adhd 상담받으러간다 1 2025.06.09 184
377906 논란 스트리머 복귀어케생각해? 3 2025.06.09 199
377905 진짜 지하철이 무서워... 1 2025.06.09 204
377904 의류 커버낫 썸머세일페스타 최대 70% file 2025.06.09 466
377903 먹거리 네이버) 복숭아 숙취해소제 3포 1,990원 / 무배 file 2025.06.09 460
377902 에어컨 끄니 숨막히네 2 2025.06.09 244
377901 연휴 후폭풍 2025.06.09 208
377900 잡담 맨날 콧등에 머가 생기네요 2025.06.09 243
377899 이슈 '개콘', "편성이동?" 시청자청원으로 입증한 시청자 애정 프로그램 [IZE 진단] file 2025.06.09 232
377898 일반 📢수영장 체력단련장 시설 이용료 소득공제 A to Z file 2025.06.09 240
377897 유머 시대가 바뀌고 사기수법도 바뀐 황해 근황.jpg 1 file 2025.06.09 250
377896 덬들아 저축 얼마씩해 1 2025.06.09 238
377895 먹거리 [네이버] 착즙 100% 유기농 레몬즙 레몬수 20g 14포 20박스 (78,900원/무료) file 2025.06.09 471
377894 유머 아빠 파워 받고 인기 얻는 여돌.jpg file 2025.06.09 252
377893 유머 성동구 주민들은 다 안다는 이 분.jpg file 2025.06.09 261
377892 잡담 로코 드라마 2025.06.09 250
377891 이슈 여름 그 자체라는 여자 아이돌 컨포 file 2025.06.09 262
377890 노브랜드 바질 파스타 꼭 먹어봐 2 2025.06.09 271
377889 한달살기 50만원 지원금 가질사람 file 2025.06.09 275
377888 기사/뉴스 류디 대표, 이프아이로 증명한 리더십…“내 기획 집약체, 새로운 K-팝 트렌드 제시” file 2025.06.09 311
377887 기사/뉴스 육성재 “1인2역 부담스럽기도 했지만, 큰 미션 깨며 한계 극복”(귀궁) file 2025.06.09 311
377886 먹거리 [아이허브] 나트롤 수면 보조제(멜라토닌 무함유) 20% 할인 file 2025.06.09 957
377885 먹거리 11번가) 10분러시 마니커에프앤지 바사삭치킨 고추순살 300g 3개 12,900원 file 2025.06.09 329
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12598 Next
/ 12598