デビアンな生活 Arch

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

apache 2.4

NextCloudの導入の目的が,巨大ファイルをアップロードしたいためだったが,肝心の巨大ファイルのアップロードがうまくいかない。
イントラのproxyのせいなのか,原因はわからないまま,方針変更。
chunk機能付きHTTPのuploaderとWebDAVで良いのではということで,Nginxに退場いただいて,apacheをインストール。
pacman -S apache php-apache
久々なので,設定を忘れてしまい,いろいろ難しい。
confが複数ファイルに分かれているのも,ややこしい。
vi /etc/httpd/conf/httpd.confで,mod_infoを有効にしたら,http -D DUMP_CONFIG | grep -v '#'で設定を確認できるので,
#Include conf/extra/httpd-info.confは不要。
WebDAVが設定できたら,
jQuery File Uploadをダウンロードして設定。
server/php/filesにアップしてくれるので,同じディレクトリをWebDAVにすると便利。
vi /etc/httpd/conf/httpd.conf
#Include conf/extra/httpd-userdir.confは,ユーザのpublic_htmlようなので,不要。


スポンサーサイト

Nextcloud WebDav

アドレスは,左下の設定に表示される。
https://cloud.domain.com/remote.php/webdav/
CarotDavで簡単に接続できるが,Windows 7のFile Explorerでは接続できず。
SSL証明書の問題か。
コマンドラインからなら接続できる。
net use q: https://cloud.domain.com/remote.php/webdav/ /persistent:no
再起動時には,認証できず再接続できないので,再接続は無効とする。

nginx

nginx.confで以下の設定を追加。
sampleにはfavicon.icoがないので,エラーとなるため,以下もserverセクションに追加
location /favicon {
empty_gif;
access_log off;
log_not_found off;
}
/etc/nginx/php.confを以下のように作成し,serverセクションにインクルード
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
serverセクションのなかでrootが設定されていなければ,rootの設定が必要。

Let's encryptの追加

httpsに移行するため,pacman -S certbot-nginxをインストール。
certbot --nginx -d xx.xx.comで設定終了。
cloud-inital.confに設定が書き込まれる。
arch wiki から,nextcloud.confをコピーする。
ドメイン名を修正して,systemctl restart nginx。
httpsでnextcloudが使用できる。

nextcloudの調整

nextcloudを起動すると,ユーザのemailが登録されていないと,警告が出るので,pesonalでemailを登録。

vi /etc/php/php.iniで,opcacheを設定。
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1
警告出るので,vi /etc/nginx/conf.d/nextcloud.confを修正
add_header X-Content-Type-Optionsが2カ所にあるので,コメントに。

標準では,512Mまでしか,アップロードできない。
/etc/php/php.iniを編集。
/tmpはtmpfsで256Mしかないので,テンポラリを別に設定。
memory_limitは拡張の必要はなさそう。
upload_max_filesize = 2G
upload_tmp_dir=/var/tmp
post_max_size = 2G
;max_input_time = -1 (default)
max_execution_time = 7200
systemctl restart php-fpm後に
php -r 'phpinfo();' | moreでも確認できるが,一部,数字の桁表示があふれるので,ブラウザ経由の方がよい。

vi /usr/share/webapps/nextcloud/.user.iniで,サイズの制限を拡張する。
memory_limit=128M
vi /etc/nginx/conf.d/nextcloiud.confでサイズの拡張。
client_max_body_size 2G;
phpのlocationで
fastcgi_read_timeout 600;

設定,admin,additional settingsに,Maximum upload size があるが,変更できない。
/usr/share/webapps/nextcloud/.user.ini
/usr/share/webapps/nextcloud/.htaccess
両方とも所有者をhttpに変更

設定は,/etc/php/php.ini, /etc/nignx/conf.d/nextcloud.conf, /usr/share/webapps/nextcloud/.htaccess, usr/share/webapps/nextcloud/.user.iniと重複がある。
nextcloudのadvanced settingsのfile handlingは,.htaccesと.user.iniを書き換えている。
.htaccessはapacheのみのようであるので,permissionの書き換えのみでよさそう。

データキャッシュAPCuの設定
pacman -S php-apcu
vi /usr/share/webapss/nextcloud/config/config.php
'memcache.local' => '\OC\Memcache\APCu',を追加。
vi /etc/php/conf.d/apcu.ini
extension=apcu.soをコメントアウト。
以上で,adminの警告がすべて消失。

少しセキュリティ

少しだけセキュリティ対策
vi /etc/ssh/sshd_config
AllowUsers xxx
ログインできるユーザを限定する。記載しなければ,rootもログインできなくなる。
systemctl restart sshd

他のシステムにsshでログインするために、pacman -S openssh
ssh user@xx.xx.xx.xxで、接続できる。

Nextcloud

NextCloudを使うのが,Arch再使用の理由なので,さっそくセットアップ。
Sqliteは,テスト,軽量,シングルユーザーとのことなので,今回はMariaDBを選択。
対象のサーバーのメモリが限られているので,ウエブサーバーはNginxを選択。
sudo -iでrootに移行し,pacman -S phpでphpのインストール
nextcloud 12で必要なphpのモジュールは,
ctype, dom, gd, iconv, json, libxml, mbstring, posix, SimpleXML, XMLReader, XMLWriter, zip,zlib
pdo_mysql, curl, fileinfo, bz2, intl, mcrypt, openssl, opcacheなど。
mysqliは不要。
php -mで確認後,/etc/php/php.iniのextensionsをコメントアウト。
pacman -Ss php-でインストールが必要なモジュールを確認して,
pacman -S php-gd php-intl php-mcryptをインスト。

pacman -S mariadbでmysqlをインストール
指示通り,mysql_install_db --user=mysql --basedir=/usr --datadir=/vat/lib/mysql
systemctl start mariadb
mysql_secure_installationでrootのパスワードなどを設定。
mysql -u root -p
CREATE database `nextcloud` default character set `utf8` collate `utf8_unicode_ci`;
CREATE USER `nextcloud`@'localhost' IDENTIFIED BY 'passwd';
GRANT ALL PRIVILEGES ON `nextcloud`.* TO `nextcloud`@`localhost`;
quit

pacman -S php-fpmをインスト
/etc/php/php-fpm.d/www.conf の env[PATH] = /usr/local/bin:/usr/bin:/bin をコメントアウト
/et/php/php.iniを編集し,open_basedir=を設定。後述。
systemctl start php-fpm

pacman -S nginxでインストール
mkdir /etc/nginx/conf.d/
vi /etc/nginx.confで,httpセクションの最後に以下を追加
server_names_hash_bucket_size 64;
include conf.d/*.conf;
/etc/nginx/conf.dにarch wikiのcloud-initial.confをコピーする。
Nextcloudの本家のconfだと,ドキュメントディレクトリが違うので,arch wikiのものを使用する。
https用のnextcloud.confは後で使用する。
nignx -tで設定を確認
ディレクトリの設定のスクリプトがないので,Arch Wikiのset-nc-permsを流用。
browserで確認すると

以上で,ドメインにアクセスするとnextcloudが動くはず。
Cannot write into config directory!のエラー。
原因は、/etc/php/php.iniのbasedirなので、
open_basedir = /usr/share/webapps/nextcloud/:/etc/webapps/nextcloud/:/usr/share/nginx/html/:/dev/urandom:/tmp/:/var/tmp/に変更して、systemctl restart php-fpm。
/tmpの追加が必要だと分かるまで、かなり悩んだ。uploadディレクトリを分けたので,/var/tmpも追加。

systemctl enabel nignx
systemctl enabel php-fpm
systemctl enabel mariadb
起動時の設定もしておく。

日本語とサウンド

x-windowsは、pacman -S xfce4で手っ取り早く導入。
機動は、startxfce4でOK。
ブラウザは、pacman -S midori flashpluginでやってみたが、ときに強制終了するので、
pacman -S seamonkey。
日本語フォントは,pacman -S otf-ipafontで簡単。
問題は,日本語入力の選択。インプットメソッドは,kinput2, SCIM, ibus, Fcitxと変遷してきたようだ。
いまは,Fcitxが素直な選択と思われるが,中国産なのでなんとなくいや。
ウテナとアンシーが忘れられないので、昔ながらのuimにしてみる。
まだ公式リポジトリにあるので、pacman -S uim anthyでよい。
ターミナルで、uim-toolbar-gtk &を動かすと、言語ツールバーが起動するので、Preference-Global settings-Input method deploymentでDefault input methodでanthy-utf8を選択しておく。
日本語のオンとオフはShift+Spaceなので、そのまま使える。
Spaceで変換、Enterで確定、Escapeで取消、Ctrl+pで前候補。
次回以降もツールバーが必要であれば、自動起動のために、Applications-Settings-Settings Manegerで
Session and Startup-Applicaiton Autostart-Addで設定しておく。
uim-fep -u anthyでコンソールでも使えるはずだが、フレームバッファのターミナルが公式ではないようなので、残念。
つぎにサウンド。pacman -S alsa-utils導入後、alsamixerを起動して、F6で確認するとデフォルトがHDMIになってるため。cat /proc/asound/modulesで確認すると、HDMIもPCHも同じモジュールを使用しているので、順番を入れ替える
echo options snd_hda_intel index=1,0 > /etc/modprobe.d/alsa-base.conf
再起動したら、音が出た。
念のため、cat /proc/asound/cardsで確認したら、alsamixerで音量調節。

pacman -S xarchiverは必要。
Applications-Settings-Power Manegerで、Status notificationsとSystem tray iconをONにしておく。
Web browserを複数インストールした時は、Applications-Settings-Preferred Applicationsで選んでおくと、Panelで起動するものを選択できる。
【“日本語とサウンド”の続きを読む】

Arch linuxの更新というか再インストール

2年ほど放置していたarchを更新しようとしたが流石に上手くいかない。share libraryのリンク切れは、ln -sでリンクを作成。
PGP signatureのエラーは、pacman-keyring -uで更新しようとしたが、
libcryptoが古すぎてエラーになるので、別システムからpacstrap /mnt libcrtptoで送りこみ。
最後は,pacman -S --force packageで,conflictがあるパッケージを無理やり更新。
形は整ったが,systemd関連がおかしい。
結局,再インストールしてしまった。
かなり前から,更新を続けた挙句の2年放置がとどめをさしてしまった。
思えば,4年の付き合いであった。新規一新,クリーンインストールだ。

Arch Linux MBR+BIOS編

ARCHを久々にインストール。今回は、MBRのパーティションにセットアップ。
インストールガイドどおりで問題ないのだが、ブートローダーにsyslinuxを使用したので、嵌ってしまった。
ISOをダウンロードしたら、DDWinでUSBに書込み。
USBから起動したら、インストールするパーティションを、"fdisk -l"で確認したら、ext4でフォーマット。
mkfs.ext4 -O \^64bin /dev/sdxx
ここで、64bitオプションを無効にしておかないと、syslinuxの起動の時に、"Failed to load ldlinux.c32"でエラー終了する。
あとは簡単。
"wifi-menu"で無線LANに接続したら、"ping www.yahoo.com"でインターネットアクセスを確認。
mount /dev/sdxx /mnt
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
"vi /etc/locale.gen"で、en_US.UTF-8とja_JP.UTF-8をコメントアウトして
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo hostxxx > /etc/hostname,反映されるのは再起動後。
vi /etc/hosts
pacman -S syslinux
syslinux-install_update -ima
vi /boot/syslinux/syslinux.cfg
wifi-menuのために、"pacman -S dialog wpa_supplicant"を導入しておく。
exit
reboot
wifi-menuで無線LANに接続したら、次回から自動化のために
pacman -S wpa_actiondを導入。
ip linkでポートの確認
systemctl enable netctl-auto@wlp3s0でセット。

vi /etc/pacman.confで,Colorのコメントを外すと表示がわかりやすい。
その他、pacman -S pkgfileを導入して、pkgfile -uで更新。
その後、pkffile arch-chrootで検索して、pacman -S arh-install-scriptsをレスキュー用に導入しておく。
pacman -S sudoも入れたら、visudoで、%wheel ALL=(ALL) ALLを追加(コメントアウト)。
useradd -m -G wheel xxxで常用アカウントを追加するが,固有のグループを作らないときは,-g wheel。
pacman -S bind-toolsで,digとhostをインストール。
【“Arch Linux MBR+BIOS編”の続きを読む】
次のページ

FC2Ad