🕰️
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; }
번호 | 분류 | 제목 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 안내 |
🚨(뉴비필독) 전체공지 & 포인트안내
8 ![]() |
2024.11.04 | 25982 |
공지 | System | URL만 붙여넣으면 끝! 임베드 기능 | 2025.01.21 | 20464 |
378928 | 먹거리 |
오뚜기몰 4+4 오뚜기 진라면 약간매운맛/매운맛/순한맛 외
![]() ![]() |
2025.06.13 | 1141 |
378927 |
잠이안와
![]() |
2025.06.13 | 30 | |
378926 | 의류 |
네이버)이현이님 틴트 선글라스 할인딜 7,720원
![]() ![]() |
2025.06.13 | 43 |
378925 |
암표 팔아서 결혼하는 사람.jpg
![]() ![]() |
2025.06.12 | 55 | |
378924 | 유머 |
블룸버그 "중국 텐센트, 150억달러(20조)에 넥슨 인수 준비중" ㄷㄷㄷ
![]() ![]() |
2025.06.12 | 75 |
378923 | 유머 |
ㅇㅎ?) 일본 AV 배우들이 문신을 잘 하지 않는 이유..
![]() ![]() |
2025.06.12 | 74 |
378922 | 유머 |
추억의 분식집 장우동
![]() ![]() |
2025.06.12 | 70 |
378921 | 유머 |
주식 유튜브 vs 코인 유튜브 차이
![]() ![]() |
2025.06.12 | 89 |
378920 | 유머 |
오늘자 카페 빌런
![]() ![]() |
2025.06.12 | 80 |
378919 | 유머 |
혐한을 대하는 일본 AV 여배우의 적절한 대응
![]() ![]() |
2025.06.12 | 69 |
378918 | 유머 |
콘서트 하늘나라석.jpg
![]() ![]() |
2025.06.12 | 77 |
378917 | 유머 |
노르웨이 연어 근황
![]() ![]() |
2025.06.12 | 81 |
378916 | 유머 |
아 타투 하려는데 이상한 사람이 와서 꼽줌 개짜증
![]() ![]() |
2025.06.12 | 75 |
378915 | 유머 |
일본 AV 배우들이 문신을 하지 않는 이유
![]() ![]() |
2025.06.12 | 81 |
378914 | 유머 |
[단독] 뻑가, 결국 법정 출석하나, 영상재판신청 불허
![]() ![]() |
2025.06.12 | 76 |
378913 | 유머 |
너무 잘해서 충격적이라는 중도의 댓글
![]() ![]() |
2025.06.12 | 64 |
378912 | 유머 |
뻑가, 결국 법정 출석하나... 영상재판신청 불허
![]() ![]() |
2025.06.12 | 70 |
378911 | 유머 |
'돈 번지 5년이면 1억은 있어야 한다'
![]() ![]() |
2025.06.12 | 74 |
378910 | 유머 |
남자가 양산쓰면 보이는 반응
![]() ![]() |
2025.06.12 | 78 |
378909 | 유머 |
존예녀들과 노콘ㅅㅅ한걸로 돈 벌며 사는 대물남
![]() ![]() |
2025.06.12 | 65 |
378908 | 유머 |
수익인증한 암표팔이.jpg
![]() ![]() |
2025.06.12 | 72 |
378907 | 유머 |
아오지 탄광에 있는 사람들이 똑똑한 이유
![]() ![]() |
2025.06.12 | 79 |
378906 | 유머 |
살모사 잘못 건드렸다가 눈감은 벌꿀오소리
![]() ![]() |
2025.06.12 | 71 |
378905 | 유머 |
쵸단, 무릎 부상으로 활동중단.
![]() ![]() |
2025.06.12 | 70 |
378904 | 유머 |
서울시는 국군이란말을.. 몰라..?
![]() ![]() |
2025.06.12 | 67 |
378903 | 유머 |
은가누랑 30초 싸우고 살면 150억 지급
![]() ![]() |
2025.06.12 | 67 |
378902 | 유머 |
462명이 몰린 강아지 밥주는 알바
![]() ![]() |
2025.06.12 | 70 |
378901 | 유머 |
전 여친이 선물한 오나홀
![]() ![]() |
2025.06.12 | 66 |
378900 | 유머 |
ㅇㅎ 워터밤 티저 알린 권은비 인스타그램
![]() ![]() |
2025.06.12 | 76 |
378899 | 유머 |
대한항공 닭장 논란
![]() ![]() |
2025.06.12 | 81 |