| 786 | uWSGI の準備は整ったので、とりあえず動かしておきましょう。 |
| 787 | |
| 788 | {{{ |
| 789 | #!console |
| 790 | $ cd original/ |
| 791 | $ uwsgi --ini trac-original.ini |
| 792 | }}} |
| 793 | |
| 794 | デーモンモードで動くので、すぐにシェルに処理が返されます。先程作った `run` ディレクトリの下にソケットファイルと PID ファイルが生成されているのが確認できます (そのへんは省略)。 |
| 795 | |
| 796 | Nginx の設定も施しましょう。 `/etc/nginx/sites-available/developer` に `developer.harapeko.jp` サブドメイン用の設定を作成します。 |
| 797 | |
| 798 | {{{ |
| 799 | #!console |
| 800 | $ sudo su - |
| 801 | # cd /etc/nginx/ |
| 802 | # vim sites-available/developer |
| 803 | |
| 804 | (設定を記述...) |
| 805 | |
| 806 | # cd sites-enabled/ |
| 807 | # ln -s ../sites-available/developer |
| 808 | }}} |
| 809 | |
| 810 | 設定内容はとりあえず以下の通りです。(HTTPS 化は相変わらず certbot 任せ) |
| 811 | |
| 812 | {{{ |
| 813 | server { |
| 814 | listen 80; |
| 815 | listen [::]:80; |
| 816 | |
| 817 | root /var/www/vhosts/developer/html; |
| 818 | index index.html index.htm; |
| 819 | server_name developer.harapeko.jp; |
| 820 | |
| 821 | location /trac/original { |
| 822 | include uwsgi_params; |
| 823 | uwsgi_pass unix:/var/Developer/trac/run/uwsgi-original.sock; |
| 824 | } |
| 825 | |
| 826 | location ~ ^/trac/original/[^/]+/login$ { |
| 827 | include uwsgi_params; |
| 828 | uwsgi_param REMOTE_USER $remote_user; |
| 829 | uwsgi_pass unix:/var/Developer/trac/run/uwsgi-original.sock; |
| 830 | auth_basic "trac authentication"; |
| 831 | auth_basic_user_file /var/Developer/trac/original/.htpasswd; |
| 832 | } |
| 833 | |
| 834 | location / { |
| 835 | try_files $uri $uri/ =404; |
| 836 | } |
| 837 | } |
| 838 | }}} |
| 839 | |
| 840 | 当面 developer サブドメインを Idea Note 以外の用途で使う予定はないのですが、一応 `/trac/original` 以外のところにアクセスされた場合用にドキュメントルートも設定してあります。ファイルは用意していないので単に 404 になります。 |
| 841 | |
| 842 | Trac 用の設定としては、基本は単に UNIX ソケットとの通信設定を施すのみです。 `uwsgi_params` というのを include していますが、このファイルは `pip install uWSGI` した時点で `/etc/nginx` の下によしなに作られたようで (もしくは元からそこにあった?)、 uWSGI に渡す基本的なパラメータのデフォルト値が定義されています。 |
| 843 | |
| 844 | Trac ではログイン処理も施す必要があるので、ログイン用の URL にアクセスした場合に `REMOTE_USER` パラメータに基本認証されたユーザー名を渡す設定と、基本認証自体が動くようにする設定を追加しています。なお、 Nginx には Apache2 で使えていた **Digest 認証には対応していません** (対応させるにはパッチを使ってソースからコンパイルしてあげる必要がある)。元々 Digest 認証用のパスワードファイルがあって、それを使っていたのですが、今見たら昔仕事で共用していたユーザーの設定がそのまま残っていて、むしろこれは捨てたほうが良いなと思ったので、基本認証に切り替えて済ませることにしました (SSL を使うつもりなので問題はないはず)。 |
| 845 | |
| 846 | ドキュメントルートを作っていなかったので用意します。 |
| 847 | |
| 848 | {{{ |
| 849 | #!console |
| 850 | # mkdir -p /var/www/vhosts/developer/html |
| 851 | # chown murachi:www-data /var/www/vhosts/developer/html |
| 852 | }}} |
| 853 | |
| 854 | それから基本認証用のパスワードファイルも用意します。 |
| 855 | |
| 856 | {{{ |
| 857 | #!console |
| 858 | # exit |
| 859 | $ cd /var/Developer/trac/original/ |
| 860 | $ htpasswd -c .htpasswd murachi |
| 861 | New password: |
| 862 | Re-type new password: |
| 863 | Adding password for user murachi |
| 864 | $ |
| 865 | }}} |
| 866 | |
| 867 | Nginx を再起動します。 |
| 868 | |
| 869 | {{{ |
| 870 | #!console |
| 871 | $ sudo service nginx restart |
| 872 | }}} |
| 873 | |
| 874 | ローカルマシン上の `/etc/hosts` を書き換えて、所定の URL で Idea Note にアクセスできることが確認できました。 |
| 875 | |
| 876 | もはや動作確認用のポート開放は不要なので、 iptables の設定をもとに戻しておきましょう。 |
| 877 | |
| 878 | {{{ |
| 879 | #!console |
| 880 | $ sudo su - |
| 881 | # vim ip*tables.sh |
| 882 | |
| 883 | (ポート 6543 を含まない設定に戻す) |
| 884 | |
| 885 | # ./iptables.sh |
| 886 | # ./ip6tables.sh |
| 887 | # service netfilter-presistent save |
| 888 | # service netfilter-presistent reload |
| 889 | }}} |
| 890 | |