#author("2022-03-25T07:36:14+00:00","default:src128","src128")
#author("2022-03-25T09:02:42+00:00","default:src128","src128")
&tag(MacPorts/apache2);
*目次 [#ub3be697]
#contents
*参考情報 [#m9e28149]
-[[MacPorts]]
-[[MacPortsでApache2をインストール -- BONNOH FRACTION 13:http://www.fraction.jp/log/archives/2007/11/02/Leopard_de_Apache2]]
-[[./古い情報]]…Apache 2.2用の設定など。

*概要 [#v8a4f06b]
-2017/11/08(水)現在、ひさびさにapache2パッケージをインストールしたらapache 2.4.29がインストールされた。
-以下のように設定が変わっている模様。
#pre{{
--->  Some of the ports you installed have notes:
  apache2 has the following notes:
    Apache2 has been migrated from the 2.2.x to the 2.4.x branch.
    
    The install paths have been changed to no longer violate the MacPorts mtree:
    
    1. The binaries are now under /opt/local/sbin/
       (rather than under /opt/local/apache2/bin/)
    
    2. The configure files are now under /opt/local/etc/apache2/
       (rather than under /opt/local/apache2/conf/)
    
    3. The modules are now under /opt/local/lib/apache2/modules/
       (rather than under /opt/local/apache2/modules/)
    
    4. The web root is now located under /opt/local/www/apache2/html/
       (rather than under /opt/local/apache2/htdocs/)
    
    5. The cgi-bin is now located under /opt/local/www/apache2/cgi-bin/
       (rather than under /opt/local/apache2/cgi-bin/)
    
    6. The logs are now located under /opt/local/var/log/apache2/
       (rather than under /opt/local/apache2/logs/)
    
    7. The manual is now located under /opt/local/www/apache2/manual/
       (rather than under /opt/local/apache2/manual/)
    
    8. The manual (man) pages are still at /opt/local/share/apache2/man/
    
    You can move your htdocs and cgi-bin to the new locations, or edit
    /opt/local/etc/apache2/httpd.conf to point at the old locations.
}}
-/usr/local/apache2フォルダから移動となったようなので、古いバージョンから以降した場合、間違えないようにapache2.oldというような名前にしておくと良いかもしれない。
*インストール [#d5bf5ed5]
-portコマンドでインストール
 sudo port install apache2
-自動起動設定
 sudo port load apache2

*設定 [#y4219586]

**ユーザーの設定 [#d4189480]
-デフォルトの実行ユーザーは_www._wwwだけどめんどくさいの自分のユーザー、グループにしておくと便利。
#pre{{
User sora
Group staff
}}

**DocumentRootの設定 [#u4fbef84]
-開発用の場合homeにあるpublic_htmlをDocumentRootに設定しておくと便利。
#pre{{
DocumentRoot "/Users/sora/public_html"
<Directory "/Users/sora/public_html">
}}
**ユーザーディレクトリを有効にする [#q59df476]
-/opt/local/etc/apache2/httpd.confを編集する
#pre{{
# User home directories                                                           
Include etc/apache2/extra/httpd-userdir.conf
}}
-httpd-userdir.confの作成。
 cd /opt/local/etc/apache2/extra/
 sudo cp httpd-userdir.conf.orig httpd-userdir.conf
-中身を変更。とりあえず以下のようにした。
#pre{{
UserDir Sites

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/Users/*/Sites">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

}}

*起動 [#j86210ea]
-apachectrlコマンドを使う
 $sudo /opt/local/apache2/bin/apachectl start

*停止 [#i53615fe]
-apachectrlコマンドを使う
 $sudo /opt/local/apache2/bin/apachectl stop

*動作確認 [#ld85a673]
-http://localhost/にアクセスする。

*自動起動するようにする [#nf3c0b86]
自動起動用の設定ファイルが/Library/LaunchDaemons/org.macports.apache2.plistに保存されている。

-launchctlコマンドを使う。
 $sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

*自動起動を停止する [#nf3c0b86]
-launchctlコマンドを使う。
 $sudo launchctl unload -w /Library/LaunchDaemons/org.macports.apache2.plist


*Tips [#hf70b269]
**rubyでcgi [#aeaffcd7]
-/opt/local/apache2/cgi-bin/test.rbを編集
#pre{{
#!/opt/local/bin/ruby

require "cgi"

print "Content-type: text/html\n\n"
print "<html><body>Hello World</body></html>"
}}
-$ sudo chmod 755 test.rb
-http://localhost/cgi-bin/test.rb にアクセス。

*トラブルシューティング [#s420f748]

**sudo port load apache2を実行しても起動しない。 [#q2a2e346]
-sudo port load apache2を実行してもerror_logに表示されない。
-そのような場合apachectlを実行するとエラーメッセージが表示されるかも。
 httpd: Syntax error on

**WordPressの管理画面が表示されない [#l31b5f5b]
-2022/03/25(金)なぜか表示されるようになった。
-ログを確認すると、objc_initializeAfterForkErrorが表示される。
-macOS High Sierraで導入されたセキュリティ機能らしく「OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES」設定すると回避できるらしい。
-macportsの場合/opt/local/sbin/envvarsに以下を追加すればよいのか?
<pre>
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
</pre>



トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS