<msys2> HOMEが上書きされて動かなくなった、、、
msys2を使っていたら、突然起動しなくなった。
HOME変数が、CADソフトを入れたことで、上書きされて、C:\SPB_Dataになったせいらしい。
と、いうことで、C:\msys64\msys2.iniに下記を追加。
HOME=C:\msys64\home\hoge
<msys2> めっちゃ久々のインストール、、、
PCの入れ替えがあり、どうしてもmsys2を新規に入れる必要が、、、
久々なんで、メモっとくことに。
前回の更新は、2020/09/11。
今回は、2021/09/13。 msys2は、msys2-x86_64-202010725.exeだったじょ。
その1... インストール。
普通に、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.confのmsys32 msys64のインストールを切る。
その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用に、フォントインストール。
下記をダウンロードして、クリック。インストールボタンが表示されるので、それをクリック。
minttyのText --> LocaleをCに設定する。powerlineが正しく表示されるようにするため。
その7... vimを設定する。
その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
<conda, Windows> プロキシ設定、
Windowsに入れたアナコンダさんのプロキシ設定。
/c/Users/hage/Anaconda3に行き、.condarcを作る。
で、
proxy_servers: http: http://hage-proxy.com:80 https: https://hage-proxy.com:80 ssl_verify: false
と書く。
ちゃんと設定できたかは、
>conda config --show
で確認する。
<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はいらない。
wsgiでpython使うとき、プラス、その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
参考にさせてもらったところ。
<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 使わせてもらいました。 便利っす。
下記を追加するっす。 もっと便利になったっす。
ENHANCD_HYPHEN_ARG="-ls" ENHANCD_DOT_ARG="-up" ENHANCD_DISABLE_HOME=1 . path/to/enhancd/init.sh bind -x '"\C-l": cd -ls'