쉘스크립트에서 웹서버 권한으로 php 파일 실행하기
쉘스크립트에서 아래와 같은 방법으로 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
Leave 쉘스크립트에서 웹서버 권한으로 php 파일 실행하기 to:
Read more #kr posts
Best Posts From 편리
We have not curated any of chicpro's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From 편리
- 쉘스크립트에서 웹서버 권한으로 php 파일 실행하기
- Dropzonejs를 이용한 Drag & Drop 파일 업로드 구현
- Kakao Vision API 사용을 위한 PHP Client
- XMLRPC를 이용한 네이버 블로그 포스팅
- DKMS를 이용한 A2000UA Ubuntu 드라이버 설치
- PECL 이용해 MongoDB PHP Driver 설치
- Ubuntu 16.04에 MongoDB 툴 Robo 3T 설치
- Ubuntu 16.04에 MongoDB 3.6 설치 및 bindIp 설정
- [S5Pro] 2008.09.28 하늘공원
- Ubuntu 16.04에 Postman Native App 설치하기
- 아이폰 사진 리사이즈 무료 앱 Image Resize+
- Typora를 이용해 워드프레스 블로그 포스트를 Steemit에 등록하기
- Ubuntu 16.04에서 ngx_pagespeed 모듈을 포함한 nginx deb 패키지 컴파일
- 우분투 16.04 wine 3.0 설치 후 카카오톡 실행 설정
- Markdown 에디터 Typora