🕰️
2019.01.25 15:08
Ubunt nginx 최신 안정버전, php 7.2.x, mariadb 10.3.x 버전 설치를 위한 스크립트
조회 수 4412 추천 수 0 댓글 0
우분투 서버에 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; }
번호 | 분류 | 제목 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 유머 | 🚨(뉴비필독) 전체공지 & 포인트안내 12 | 2024.11.04 | 26967 |
공지 | 이슈 | URL만 붙여넣으면 끝! 임베드 기능 | 2025.01.21 | 21280 |
380192 | 의류 |
네이버 1+1 강아지옷 메쉬 농구옷 50%할인한다 5500원 무배
1 ![]() ![]() |
2025.06.24 | 103 |
380191 | 잡담 |
전체적인 여드름관리
1 ![]() |
2025.06.24 | 106 |
380190 | 의류 |
[네이버] 1+1 드라이 기능성 긴바지 20,000원 배송비 3,000원
![]() ![]() |
2025.06.24 | 122 |
380189 | 생활용품 |
시크릿데이 입는 오버나이트 무료이벤트
![]() ![]() |
2025.06.24 | 124 |
380188 |
이제 저녁시간인데
![]() |
2025.06.24 | 113 | |
380187 |
영어나 외국어를 교재와 MP3파일로 공부할 때 어플과 AI도구를 이용해 공부 효율을 올리는 꿀 팁
![]() ![]() |
2025.06.24 | 130 | |
380186 |
CU편의점 택배 보낼일 있으면 참고해!
1 ![]() |
2025.06.24 | 163 | |
380185 | 기사/뉴스 |
"와 천잰데?" 놀라운 기술…'댓글 부대' 싹 잡아낸다
3 ![]() ![]() |
2025.06.24 | 140 |
380184 | 유머 |
썸남이 연애 못 해본 거 티난다는 안전벨트 해주는 방법
![]() ![]() |
2025.06.24 | 133 |
380183 | 오늘 비오는거 맞아?? 1 | 2025.06.24 | 135 | |
380182 | 그 외 |
이브원더즈 암튜브 성인용 팔튜브 암링 남성, 2개 7,440원/무배
![]() |
2025.06.24 | 1761 |
380181 | 잡담 | 얼굴 작아지는 법 뭐가있을까 | 2025.06.24 | 131 |
380180 | 먹거리 |
홈플러스 이번주 특가 행사 전단지 (6.26~7.2)
![]() |
2025.06.24 | 193 |
380179 | 기사/뉴스 |
올데이 프로젝트, 데뷔와 동시에 멜론 '톱100' 직행 '돌풍'
![]() |
2025.06.24 | 160 |
380178 | 화장품 |
토니모리 겟잇틴트 버터틴트 4,800원!
![]() |
2025.06.24 | 297 |
380177 | 이용권/상품권 |
쿠팡이츠 랜덤 쿠폰 1천원~최대 5만원 100% 당첨 (선착순)
1 ![]() |
2025.06.24 | 181 |
380176 | 먹거리 |
[네이버] L아르기닌 6000 고함량 15포*3개 (27,900원/무료)
![]() |
2025.06.24 | 167 |
380175 | 기사/뉴스 |
헌법 강의하다 "문재인은 간첩"‥"강의의 자유"
1 ![]() |
2025.06.24 | 173 |
380174 | 날씨 왜이래 1 | 2025.06.24 | 144 | |
380173 | 제습기 가동 2 | 2025.06.24 | 161 | |
380172 | 제습기 필요성 2 | 2025.06.24 | 156 | |
380171 | 유머 |
인스타 릴스 알고리즘 뜬 트리플에스 소속사 남돌.jpg
![]() |
2025.06.24 | 174 |
380170 | 유머 |
이병헌 때문에 이민정이랑 단 둘이 남게 된 김우빈.jpg
![]() |
2025.06.24 | 190 |
380169 |
방송대커뮤니티 홍보용 - geminin
![]() ![]() |
2025.06.24 | 199 | |
380168 |
방송대 학과 게시판 주소
![]() |
2025.06.24 | 202 | |
380167 | 먹거리 |
롯데온 세븐일레븐 아이스 아메리카노 레귤러 450원
![]() |
2025.06.24 | 223 |
380166 | 기사/뉴스 |
누군가를 사랑하는 사람을 보면 그 사람을 잘 알 수 있다. 인생에서 중요한 과제는 과거의 나를 용서하고 받아들이는 것이다.
![]() |
2025.06.24 | 210 |
380165 | 유머 |
요즘 현대인들이 가장 많이 고민하는 부분? 시간, 돈, 나이에 얽혀 사는 한국인들의 문제점
![]() |
2025.06.24 | 196 |
380164 | 맛잇는 냄새 | 2025.06.24 | 199 | |
380163 | 다들 점심 뭐 먹어? | 2025.06.24 | 202 |