<msys2> めっちゃ久々のインストール、、、

PCの入れ替えがあり、どうしてもmsys2を新規に入れる必要が、、、
久々なんで、メモっとくことに。

前回の更新は、2020/09/11。
今回は、2021/09/13。 msys2は、msys2-x86_64-202010725.exeだったじょ。

その1... インストール。

www.msys2.org

普通に、C:msys64を選択しておく。

その2... .bashrcをいじり、proxyを設定する。

その3... いろいろないので、pacmanで取ってくる。

pacman -S vim
pacman -S git
pacman -S zsh
pacman -S tmux
pacman -S fzy
pacman -S unzip
pacman -S diffutils
pacman -S winpty

その4... /etc/pacman.confmsys32 msys64のインストールを切る。

nekoyukimmm.hatenablog.com

その5... dotfileを設定する。

git clone dotfiles
echo ". ~/dotfiles/my_bashrc" >> .bashrc
cp dotfiles/home_dotfiles/zshrc .zshrc
cp dotfiles/home_dotfiles/bashrc .bashrc
cp dotfiles/home_dotfiles/vimrc .vimrc
cp dotfile/my_minttyrc_UTF-8 .minttyrc

その6... powerline用に、フォントインストール。

下記をダウンロードして、クリック。インストールボタンが表示されるので、それをクリック。

github.com

minttyText --> LocaleCに設定する。powerlineが正しく表示されるようにするため。

その7... vimを設定する。

nekoyukimmm.hatenablog.com

その8... /etc/fstabをいじる。

OneDriveを設定しておくと便利。
/etc/fstabに次の一文追加。

c:/Users/hage/OneDrive/ /home/hage/onedrive

その9... 起動シェル変更。

/msys2.iniに次の一行追加。
HOME変数は、CADソフトを入れると、HOMEが上書きされるのに対する対策。

HOME=C:\msys64\home\hoge
SHELL=/usr/bin/zsh

<Apache> アパッチ

アパッチ Apache、えい、や、とう。

インストール。

>yum install httpd httpd-devel
>httpd -v # Apacheのversion確認
>pip install mod_wsgi
>python -c 'import sys; print(sys.path)' # PYTHONPATHの確認

systemctlあぱっちさんの起動する時に渡す環境変数/etc/systemconfig/httpdに書き込む。
bashじゃないので、exportはいらない。 wsgipython使うとき、プラス、そのpythonが別にインストールされたものの場合、
下記環境変数をセットしないと、pythonを見つけられず、あぱっちさんがエラーを吐くっす。

PATH="/opt/anaconda3/bin:$PATH"
PYTHONHOME=/opt/anaconda3/bin
PYTOHNPATH=/opt/anaconda3/lib/python3.7/site-packages

で、/etc/httpd/cond.d/wsgi.confとファイルを作り、下記書き込む。
LoadModuleの行がないと、あぱっちさんがブーたれる。

LoadModule wsgi_module /opt/anaconda3/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

WSGIDaemonProcess myapp user=hoge group=hoge #指定しないとrootで、こける。
WSGIProcessGroup myapp
WSGISocketPrefix /var/run/wsgi
WSGIScriptAlias / /var/www/app # これで、この下のスクリプトが全部動く。
#WSGIScriptAlias /app /var/www/app/app.wsgi

<Directory /var/www/app/>
  Options ExecCGI MultiViews Indexes
  MultiViewsMatch Handlers

  AddHandler wsgi-script .py
  AddHandler wsgi-script .wsgi

  DirectoryIndex index.html index.py app.wsgi #この順でアクセス。

  Order allow,deny
  Allow from all
</Directory>

で、httpdサービススタート。

>systemctl start httpd

さて、本題。個人のディレクトリを有効化する。

/etc/httpd/conf.d/userdir.confを下記のようにする。
ミソは、WSGIScriptAliasMatchの指定。
正規表現で、ユーザ名を拾って、それを、$1で渡す。
そうすっと、public_html以下のスクリプトが動く。
ここまで発見するのに時間かかった。。。

LoadModule wsgi_module /opt/anaconda3/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

<IfModule mod_userdir.c>
  #UserDir disable
  UserDir public_html  # こっちを活かす
       WSGIDaemonProcess myapp user=hoge group=hoge #指定しないとrootで、こける。
       WSGIProcessGroup myapp
       WSGISocketPrefix /var/run/wsgi
       WSGIScriptAliasMatch ~([^/]+) /home/$1/public_html/ # これで、この下のスクリプトが全部動く。
</IfModule>

で、対象のディレクトリたちを、appacheユーザ権限で見れるように、chmod 755する。
はまりがちなのが、上位階層のディレクトリに実行権限を与え忘れること。

>chmod 701 /home/hoge
>chmod 755 /home/hoge/public_html

htaccess

あと、個人のディレクトリでリダイレクトする設定。
これで、http://hagehage.com/~hageとアクセスすると、pythonスクリプトapp.wsgiに飛んでいく。

RewriteEngine On
RewriteBase /~hage
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.wsgi [L]

ログ達。

>more /var/log/httpd/access_log
>more /var/log/httpd/error_log

参考にさせてもらったところ。

qiita.com

www.bitlink.co.jp

www.yoheim.net

modwsgi.readthedocs.io

http://www.obenri.com/_webserver/user_directory.html

qiita.com

Mod wsgi notes - Helpful

<Linux, Admin> sudoできるようにする。

hogeユーザをsudoできるようにする。

/etc/sudoersをいじる。
visudoってやると、ファイルが開くか、vi /etc/sudoers

で、下記追加。パスワード無しでsudoできる。

hoge   ALL=(ALL)   NOPASSWD: ALL

あと、下記のようにして、ユーザのデフォルトのPATHを生かす。

#Defaults       secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults        env_keep +="PATH"

おわり。

<Linux, Bash> enhancd

enhancd 使わせてもらいました。 便利っす。

qiita.com

下記を追加するっす。 もっと便利になったっす。

ENHANCD_HYPHEN_ARG="-ls"
ENHANCD_DOT_ARG="-up"
ENHANCD_DISABLE_HOME=1
. path/to/enhancd/init.sh
bind -x '"\C-l": cd -ls'

keyamb.hatenablog.com

keyamb.hatenablog.com