Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

쉘스크립트에서 웹서버 권한으로 php 파일 실행하기

2018-06-20 by 편리

쉘스크립트에서 아래와 같은 방법으로 php 파일을 실행하면 접속한 사용자 권한으로 실행이 되기 때문에 권한 문제 등 다양한 문제가 생길 수  있다. cron 을 이용해 실행하는 경우 root 권한이기 때문에 권한 문제는 발생하지 않지만 php 파일 실행으로 생성되는 파일 등의 소유권이 root 로 되기 때문에 웹서버에서 접근할 수 있는 문제가 발생할 수도 있다.

#!/bin/sh
php sitemap.php

웹서버 권한으로 php 파일을 실행하기 위해서는 위의 스크립트를 아래와 같이 수정한다.

#!/bin/sh
DIRECTORY=$(cd `dirname $0` && pwd)

cd "${DIRECTORY}"

sudo -u www-data  php sitemap.php

위 코드는 쉘스크립트 파일(예 sitemap.sh) 의 절대 경로를 구하고 해당 디렉토리로 이동 후 php 파일을 웹서버 권한(www-data)으로 실행한다. sitemap.sh 파일과 sitemap.php 파일은 동일 경로에 있어야 한다. 디렉토리를 이동하는 것은 php 파일의 코드에서 사용하는 경로 등을 cron 실행에 맞게 수정하지 않기 위함이다.

sudo 명령어 때문에 추가적인 설정이 필요한데 sudo 명령을 실행하면 사용자 패스워드를 요청하기 때문이다. 우분투의 경우 visudo 명령을 통해 아래와 같은 설정을 추가해야 한다.

username ALL=(ALL) NOPASSWD: /usr/bin/php

위에서 username 은 실제 사용자로 변경한다. sitemap.sh 파일을 crontab 에 등록해서 자동실행되도록 한다.

1 5 * * * /home/username/www/sitemap.sh

Post navigation

Previous Post:

[PHP] 업로드된 이미지로 파비콘(favicon) 생성하기

Next Post:

[WP] 플러그인을 이용한 사용자 CSS 적용

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • SK 세븐모바일 유심 셀프교체
  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes