macOS에서 Perl 사용 [macOS10.14]

3877 단어 PerlmacosMac
일부 번거로운 곳이 있었으므로, 이것도 비망.
웹 응용 프로그램에 사용하고 싶으므로 주로 https.conf를 편집합니다.

1. Perl 설치 ...?



Mojave에도 Perl은 사전 설치되어 있지만 C 언어로 작성된 Perl 모듈은 보안상의 이유로 설치에 실패합니다.
그러나 이번에는 우선 Perl을 괴롭히는 것이 목적이기 때문에 사전 설치의 Perl을 사용합니다.
Perl 버전은  $perl -c에서 확인할 수 있습니다.

macOS10.14.6에서는 Perl 5.18.4라는 것.

경로를 확인하려면 $which perl에서 확인할 수 있습니다.
사전 설치된 Perl의 경우 /usr/bin/perl라고 생각합니다.

2. https.conf 편집



그런 다음 httpd.conf를 편집합니다.$sudo -s vi /etc/apache2/httpd.conf에서 httpd.conf를 엽니다. macOS 기본 apache가 아니라 자신감으로 설치하는 경우 설치 대상 httpd.conf를 엽니 다.

이후, 행 번호를 알고 있으면 매우 편리하므로, 파일을 열면 이스케이프 모드 상태로:set number 를 입력하여 행 번호를 표시합니다.


2.1 LoadModule 활성화



기본적으로 주석 처리된 행의 주석 처리를 제거하고 활성화합니다.
LoadModule은 68행에 시작합니다. (사용 환경에 따라 행 수가 바뀝니다)

・165행째 부근LoadModule cgi_module libexec/apache2/mod_cgi.so
・174행째 부근LoadModule userdir_module libexec/apache2/mod_userdir.so
・176행째 부근LoadModule rewrite_module libexec/apache2/mod_rewrite.so
・179행째 부근LoadModule perl_module libexec/apache2/mod_perl.so

2.2 DocumentRoot 지정



245행 근처에 있는 DocumentRoot를 설정한다.
자신감이 웹 페이지로서 공개하는 장소를 지정하면 된다.
이번에는 기본/Library/WebServer/Documents를 그대로 사용.
<Directory "/Library/WebServer/Documents>에서</Directory>도중 259행 부근에Options FollowSymLinks Multiviews 의 말미에 「ExecCGI」를 추기.Options FollowSymLinks Multiviews ExecCGI

2.3 MIME 설정



406행 부근에 있는 mime_module의 설정을 해, .cgi나 .pl가 web 컨텐츠로서 인식되도록 한다.
・437행째 부근AddHandler cgi-script .cgi 의 코멘트 아웃을 제외해, 말미에 .pl를 추기.
확장자를 .cgi로 통일하는 경우는 코멘트 아웃을 제외하는 것만으로도 가능.

2.4 홈 디렉토리 설정



사용자의 홈 디렉터리 설정을 활성화합니다.
・510행째 부근Include /private/etc/apache2/extra/httpd-userdir.conf의 코멘트 아웃을 제거합니다.

이것으로 httpd.conf의 설정은 완료.
파일을 저장한 후 apache를 다시 시작합니다.sudo -s apachectl restart

3. 브라우저에서 보기



간단한 Hello World를 표시하는 파일을 만듭니다.

hello.pl
#!/usr/bin/perl

print("Hello World!");

이 파일을 httpd.conf에서 지정한 DocumentRoot에 넣습니다.
그런 다음 브라우저에서 http://localhost/hello.pl로 이동합니다.



이미지처럼 표시되면 설정 완료입니다.

4. 예상대로 표시되지 않음 ...



Hello World! 라고 표시되지 않았던 경우, 2가지의 표시가 나올까 생각합니다.

4.1 소스 코드가 그대로 표시됨



httpd.conf 설정이 잘못되면 브라우저에 소스 코드가 그대로 표시됩니다.
다시 httpd.conf를 검토해야 합니다.

4.2 Internal Server Error로 표시됨




이미지와 같은 표시가 되어 버린 경우. 흔한 원인이
소스 코드의 파일 또는 그 파일이 저장된 폴더의 액세스 권한이 다릅니다.
경우입니다.
그 경우에는$sudo -s chmod 755 xxx 로 액세스권을 변경해 주세요.

또 다른 가능성은 소스 코드의 설명 내용이 다릅니다.
때때로
print "Content-Type: text/html\n\n";의 문장이 기재되어 있지 않으면, 이쪽도 Internal Server Error의 원인이 됩니다.
소스 코드를 검토하고 작성하지 않은 경우 추가하여 브라우저를 다시로드하십시오.

좋은 웹페이지 즐겨찾기