MacOS Catalina에서 Apache 환경 설정
요즘의 사정으로, 다른 MacBook에서 비슷한 환경을 만들려고 하면, 저기? 라고 생각한 것으로부터, 이번은 여기에 기록을 남깁니다.
환경
MacOSX Catalina 10.15.3
아파치 2.4.41
루비 2.6.3
하고 싶은 일
사용자 디렉토리를 문서 루트로 게시하고 cgi를 이동합니다.
설정 내용
현재 상태
이전 MacBook에는 "사이트"(터미널의 ls에서는 "Sites")라는 폴더가 있었지만 새 MacBook에는 이 폴더가 없었습니다.~ $ sudo apachectl start
를 실행하여 브라우저에서 "http://localhost/"에 액세스하면 "It works!"가 표시됩니다.
OS X에 있던 Web 서버 기능 「Web 공유」는 Mountain Lion(10.8) 이후 없어져, 홈 폴더 바로 아래 「Sites」폴더는 없어졌다(같다....)
문서 루트 만들기 및 설정
# cd /Users/hoge/
# mkdir Sites2 #「Sites」フォルダを作成
# touch Sites/.localized # 「.localized」ファイルを作成すると以前のように『サイト』と表示
Finder에서 확인
/private/etc/apache2/httpd.conf 편집 (숫자는 행 번호)
183 #LoadModule userdir_module libexec/apache2/mod_userdir.so
520 #Include /private/etc/apache2/extra/httpd-userdir.conf
↓
183 LoadModule userdir_module libexec/apache2/mod_userdir.so
520 Include /private/etc/apache2/extra/httpd-userdir.conf
/private/etc/apache2/extra/httpd-userdir.conf 편집 (숫자는 행 번호)
16 #Include /private/etc/apache2/users/*.conf
↓
16 Include /private/etc/apache2/users/*.conf
Apache를 다시 시작하고 로컬 폴더의 Sites에 index.html 만들기
~ $ sudo apachectl restart
~ $ sudo vi /Users/entero/Sites/index.html
~ $ cat /Users/entero/Sites/index.html
Here is User dir.
브라우저에서 찾아보기
원래 문서 루트
사용자의 문서 루트
아무것도 스스로 지정하지 않았는데,/Users/hoge/Sites가 문서 루트가 되어 있었습니다.
이유는 여기에 기본적으로 "Sites"로 지정되었습니다./etc/apache2/extra/httpd-userdir.conf10 UserDir Sites
사용자 디렉토리에 작성한 문서 루트의 액세스를 제어하는 지시문은
/private/etc/apache2/users/hoge.conf에 설명합니다. 예로서 다음을 설정해 보았습니다.
<Directory "/Users/entero/Sites/">
Options Indexes # ファイル一覧の表示を許可
Require all granted # すべて許可
</Directory>
파일 index.html을 index2.html로 rename하여 설정이 활성화되어 있는지 확인했습니다.
cgi 작동
변경 부분은 2개
·/private/etc/apache2/users/hoge.conf에 사용자 디렉토리의 Sites/cgi로 cgi를 이동하도록 지정
<Directory "/Users/hoge/Sites/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
·/private/etc/apache2/httpd.conf의 173 행의 코멘트 아웃을 해제
169 <IfModule !mpm_prefork_module>
170 #LoadModule cgid_module libexec/apache2/mod_cgid.so
171 </IfModule>
172 <IfModule mpm_prefork_module>
173 LoadModule cgi_module libexec/apache2/mod_cgi.so
174 </IfModule>
동작 확인
cgi 디렉토리에 다음 파일 test.cgi 만들기
$ cat /Users/hoge/Sites/cgi/test.cgi
#!/usr/bin/env ruby
print "Content-Type: text/html; charset=UTF-8\n"
print "\n"
print "<html>"
print "これは<b>CGI</b>のテストです。"
print "</html>"
브라우저에서 http://localhost/~hoge/cgi/test.cgi에 액세스하면 "이것은 CGI 테스트입니다."라는 메시지가 표시됩니다.
HTML 소스가 표시되면 위의 변경 사항
문자가 깨질 때는 "charset ="을 확인하십시오.
Reference
이 문제에 관하여(MacOS Catalina에서 Apache 환경 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taro373/items/f530c66c466b41f46902
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사용자 디렉토리를 문서 루트로 게시하고 cgi를 이동합니다.
설정 내용
현재 상태
이전 MacBook에는 "사이트"(터미널의 ls에서는 "Sites")라는 폴더가 있었지만 새 MacBook에는 이 폴더가 없었습니다.~ $ sudo apachectl start
를 실행하여 브라우저에서 "http://localhost/"에 액세스하면 "It works!"가 표시됩니다.
OS X에 있던 Web 서버 기능 「Web 공유」는 Mountain Lion(10.8) 이후 없어져, 홈 폴더 바로 아래 「Sites」폴더는 없어졌다(같다....)
문서 루트 만들기 및 설정
# cd /Users/hoge/
# mkdir Sites2 #「Sites」フォルダを作成
# touch Sites/.localized # 「.localized」ファイルを作成すると以前のように『サイト』と表示
Finder에서 확인
/private/etc/apache2/httpd.conf 편집 (숫자는 행 번호)
183 #LoadModule userdir_module libexec/apache2/mod_userdir.so
520 #Include /private/etc/apache2/extra/httpd-userdir.conf
↓
183 LoadModule userdir_module libexec/apache2/mod_userdir.so
520 Include /private/etc/apache2/extra/httpd-userdir.conf
/private/etc/apache2/extra/httpd-userdir.conf 편집 (숫자는 행 번호)
16 #Include /private/etc/apache2/users/*.conf
↓
16 Include /private/etc/apache2/users/*.conf
Apache를 다시 시작하고 로컬 폴더의 Sites에 index.html 만들기
~ $ sudo apachectl restart
~ $ sudo vi /Users/entero/Sites/index.html
~ $ cat /Users/entero/Sites/index.html
Here is User dir.
브라우저에서 찾아보기
원래 문서 루트
사용자의 문서 루트
아무것도 스스로 지정하지 않았는데,/Users/hoge/Sites가 문서 루트가 되어 있었습니다.
이유는 여기에 기본적으로 "Sites"로 지정되었습니다./etc/apache2/extra/httpd-userdir.conf10 UserDir Sites
사용자 디렉토리에 작성한 문서 루트의 액세스를 제어하는 지시문은
/private/etc/apache2/users/hoge.conf에 설명합니다. 예로서 다음을 설정해 보았습니다.
<Directory "/Users/entero/Sites/">
Options Indexes # ファイル一覧の表示を許可
Require all granted # すべて許可
</Directory>
파일 index.html을 index2.html로 rename하여 설정이 활성화되어 있는지 확인했습니다.
cgi 작동
변경 부분은 2개
·/private/etc/apache2/users/hoge.conf에 사용자 디렉토리의 Sites/cgi로 cgi를 이동하도록 지정
<Directory "/Users/hoge/Sites/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
·/private/etc/apache2/httpd.conf의 173 행의 코멘트 아웃을 해제
169 <IfModule !mpm_prefork_module>
170 #LoadModule cgid_module libexec/apache2/mod_cgid.so
171 </IfModule>
172 <IfModule mpm_prefork_module>
173 LoadModule cgi_module libexec/apache2/mod_cgi.so
174 </IfModule>
동작 확인
cgi 디렉토리에 다음 파일 test.cgi 만들기
$ cat /Users/hoge/Sites/cgi/test.cgi
#!/usr/bin/env ruby
print "Content-Type: text/html; charset=UTF-8\n"
print "\n"
print "<html>"
print "これは<b>CGI</b>のテストです。"
print "</html>"
브라우저에서 http://localhost/~hoge/cgi/test.cgi에 액세스하면 "이것은 CGI 테스트입니다."라는 메시지가 표시됩니다.
HTML 소스가 표시되면 위의 변경 사항
문자가 깨질 때는 "charset ="을 확인하십시오.
Reference
이 문제에 관하여(MacOS Catalina에서 Apache 환경 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taro373/items/f530c66c466b41f46902
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# cd /Users/hoge/
# mkdir Sites2 #「Sites」フォルダを作成
# touch Sites/.localized # 「.localized」ファイルを作成すると以前のように『サイト』と表示
183 #LoadModule userdir_module libexec/apache2/mod_userdir.so
520 #Include /private/etc/apache2/extra/httpd-userdir.conf
↓
183 LoadModule userdir_module libexec/apache2/mod_userdir.so
520 Include /private/etc/apache2/extra/httpd-userdir.conf
16 #Include /private/etc/apache2/users/*.conf
↓
16 Include /private/etc/apache2/users/*.conf
~ $ sudo apachectl restart
~ $ sudo vi /Users/entero/Sites/index.html
~ $ cat /Users/entero/Sites/index.html
Here is User dir.
<Directory "/Users/entero/Sites/">
Options Indexes # ファイル一覧の表示を許可
Require all granted # すべて許可
</Directory>
<Directory "/Users/hoge/Sites/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
169 <IfModule !mpm_prefork_module>
170 #LoadModule cgid_module libexec/apache2/mod_cgid.so
171 </IfModule>
172 <IfModule mpm_prefork_module>
173 LoadModule cgi_module libexec/apache2/mod_cgi.so
174 </IfModule>
$ cat /Users/hoge/Sites/cgi/test.cgi
#!/usr/bin/env ruby
print "Content-Type: text/html; charset=UTF-8\n"
print "\n"
print "<html>"
print "これは<b>CGI</b>のテストです。"
print "</html>"
Reference
이 문제에 관하여(MacOS Catalina에서 Apache 환경 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taro373/items/f530c66c466b41f46902텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)