| | 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 | |