2016/04/25(月)ubuntu 16.04 インストール(6) apache, php

ローカルにwebサーバが立ってると何かと便利なので、apacheを入れます。素のapacheと違ってhttpd.confが細分化されていて、debianの作法に従って設定する必要があって知らないと難しいです。
sudo apt install apache2
いくつかのモジュールを有効化します。
sudo a2enmod userdir
sudo a2enmod include
sudo a2enmod cgid
これらは、実際には/etc/apache2/mods-availableにあるファイルから/etc/apache2/mods-enabledへリンクを張っていて、mods-enabled以下のファイルが設定に読み込まれるという仕組みです。

次に、自分のよく使う設定をしていきます。public_htmlの有効化とcgiの有効化です。デフォルトで使われている設定ファイルは/etc/apache2/sites-available/000-default.confですが、これをを適当な名前 (custom.confとした) でコピーして設定することにします。
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
               (ここは各自違うと思う)
        </Directory>
</IfModule>

<IfModule mod_mime.c>
AddHandler cgi-script .cgi
</IfModule>
を(<VirtualHost *:80> </VirtualHost>の中に)加えます。

public_html以下の設定は、ユーザを最大限信用するなら、例えば、
                AllowOverride All
                Options All
                Order allow,deny
                Allow from all
のような感じでしょうか。
sudo a2dissite 000-default
sudo a2ensite custom
sudo systemctl restart apache2
で、000-defaultを無効化し、customを有効化します。

さらに、自分の好みで、public_html以下に置いたcgiはそのディレクトリのユーザの権限で動くようにする、suexecを設定します。
sudo apt install apache2-suexec-custom
/etc/apache2/suexec/www-data の2行目を、public_html/cgi-bin → public_html に。
sudo a2enmod suexec
sudo systemctl restart apache2
次にphpの設定。7.0になりました。
sudo apt install php
sudo apt install libapache2-mod-php
/etc/apache2/mods-available/php7.0.conf で、php_admin_value engine Off をコメントアウト
  (ユーザのpublic_html以下でphpを使えるようにする。)
sudo systemctl restart apache2
最後に、logrotateの設定を。/var/log/apache2 以下のlogが、デフォルトだと14日しか保存されないので直します。/etc/logrotate.d/apache2 の中の、
daily
rotate 14
という行を、
monthly
rotate 120
とし、10年間はもつようにしました。

2016/04/24(日)ubuntu 16.04 インストール(5) プログラミング系あれこれ

プログラミングに必要なツールをいろいろ入れます。

C++

sudo apt install build-essential (既に入っていた)
これで、gccなど通常のbuild作業に必要なものが入ります。gccは5.3でした。
sudo apt install clang
sudo apt install clang-3.8-doc
そろそろclangも普通に使わないとね。3.8が入りました。
sudo apt install libboost-all-dev
boostはやっぱり要る。1.58が入りました。

java

sudo apt install default-jdk
sudo apt install icedtea-plugin

lua

sudo apt install lua5.2
sudo apt install liblua5.2-dev
sudo apt install luajit

fortran

sudo apt install gfortran
sudo apt install gfortran-doc

python

pythonは、16.04から標準をpython2からpython3に変えたそうですが、この時点でpython2, python3は既に入っていました。単にpythonと打つとpython2が起動されます。(python2はどれかのpackageが入れた? inkscape?)

とりあえずpython2,3両方で環境を整えることにしました。開発用ライブラリ、numpy, scipy, matplotlib, ipythonを入れます。
sudo apt install python-dev (既に入っていた。)
sudo apt install python-numpy (既に入っていた)
sudo apt install python-numpy-doc
sudo apt install python-scipy
sudo apt install python-scipy-doc
sudo apt install python-matplotlib
sudo apt install python-matplotlib-doc
sudo apt install ipython
sudo apt install ipython-doc
sudo apt install python3-dev
sudo apt install python3-numpy
sudo apt install python3-scipy
sudo apt install python3-matplotlib
sudo apt install ipython3

R

sudo apt install r-recommended

octave

sudo apt install octave
sudo apt install octave-doc
sudo apt install octave-htmldoc
sudo apt install liboctave-dev
4.0.0が入りました。liboctave-devはIntlabを使うときに必要になります。

javascript

sudo apt install nodejs

gmp,mpfr

sudo apt install libgmp-dev
sudo apt install gmp-doc
sudo apt install libgmp10-doc
sudo apt install libmpfr-dev
sudo apt install libmpfr-doc
それぞれ6.1.0と3.1.4が入りました。

-m32で32bit binaryを作れるように

sudo apt install gcc-multilib
sudo apt install g++-multilib
とりあえずここまで。octaveやnumpyに関係するatlasやopenblasは後で。

2016/04/24(日)ubuntu 16.04 インストール(4) vim

vi大好きなのでvimを入れます。
sudo apt install vim
日本語の漢字コードの異なるファイルを自動認識するように、/etc/vim/vimrc.localを
set encoding=utf-8
set fileencodings=euc-jp,sjis,iso-2022-jp,utf-8
の内容で新規作成しました。これで、デフォルトのコードがUTF8になり、EUC、SJIS、JISコードのファイルも自動認識して表示するようになります。

2016/04/24(日)ubuntu 16.04 インストール(3) TeX関連

普段研究で作成する文書類はすべてubuntuで書いています。TeX系のソフトウェアが安定して使えるかは重要。
sudo apt install texlive-lang-cjk
sudo apt install texlive-fonts-recommended
sudo apt install texlive-fonts-extra
sudo apt install xdvik-ja
sudo apt install dvipsk-ja
sudo apt install gv
14.04ではevinceでpdfを見ると明朝になるべき部分も全てゴシックになってしまう問題がありましたが、16.04では問題ないようです。

その他文書作成関連のソフトウェアをついでに入れました。
sudo apt install nkf
sudo apt install gnuplot
sudo apt install gnuplot-x11
sudo apt install gnuplot-doc
sudo apt install tgif
sudo apt install gimp
sudo apt install inkscape
sudo apt install mimetex
sudo apt install latexdiff
そういえば、apt-getはいつの間にかaptになったようです。

2016/04/24(日)ubuntu 16.04 インストール(2) vmware tools

ubuntu 16.04はvmware上で動かしているわけですが、デスクトップのリサイズ、ホストOSとのクリップボード共有(文字列のコピペが出来るようになる)、フォルダ共有などを実現するvmware-toolsをゲストOSに入れるのはほぼ必須です。vmware toolsを入れるのにやや苦戦したので、記録を残しておきます。

まず、普通のインストール手段を試してみました。vmware toolsのインストールをクリックすると、CDがマウントされてファイルブラウザが開くので、tar.gzをhomeにコピーして展開し、
sudo ./vmware-install.pl
後は質問には基本的にreturnを押すだけでいいはずですが、コンパイルエラーになってしまいます。カーネルモジュールのmakeを行なうのですが、カーネルが新しくなってソースコードが変化し、それにvmware toolsが追いついていないようです。以前からこの現象は起きていてvmware toolsのちょっとした修正で凌いでいたのですが、エラーメッセージを見たところ直す箇所はかなり多そうに感じました。

困って検索してみたところ、VMware Tools Patchesに修正とインストールを全自動でやってくれるpatchがあるのを見つけました。こちらは、
sudo apt install git
git clone https://github.com/rasa/vmware-tools-patches.git
cd vmware-tools-patches
./patched-open-vm-tools.sh
で、自動的にvmware-toolsがダウンロードされてpatchを当てられてインストールされました。しかし、デスクトップのリサイズとフォルダ共有はうまくいったのですが、クリップボード共有が使えず。

第3の手段として、open-vm-toolsを試してみました。
sudo apt install open-vm-tools-desktop
再起動後、デスクトップのリサイズもクリップボード共有もうまく動作しました。共有フォルダは普段はOSの機能で賄っていてあまり使っていないのですが、設定→オプション→共有フォルダ で共有フォルダを有効にしてみました。/mnt/hgfs 以下に共有フォルダが見えるはずだが、見えません。しかしvmware-hgfsclientを実行すると設定した共有フォルダ名が見えているので、後少しっぽいです。最終的に、VMwarePlayer上のArchLinuxとホストOSとフォルダ共有をする失敗談 - みちのいに!!を参考にしてうまくいきました。
予め
mkdir /mnt/hgfs
しておき、
sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/ /mnt/hgfs
でマウント出来ました。永続的にmountするには、/etc/fstabで
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,auto_unmount,defaults 0 0
と書くとよいでしょう。

結論として、open-vm-toolsがお勧めです。しかし、最近はvirtualboxが安定してきてみんなそっちを使っているようで、vmwareをやめてvirtualboxにするのがいいかもなあ。
OK キャンセル 確認 その他