スキップしてメイン コンテンツに移動

投稿

12月, 2017の投稿を表示しています

adiary 構築 on NGINX in CentOS6

CentOS6 に nginx を入れ、adiary を構築してみた。[ adiary 公式サイト ]  epel リポジトリが登録してなければ次を実行。 # yum install epel-release この記事に従って nginx をインストールしてたら、epel リポジトリは登録されている。 Webサーバ nginx のインストール on CentOS6 https://atsreport.blogspot.com/2017/12/web-nginx-on-centos6.html adiary は perl で動作しfcgi に対応しているので、perl-FCGI もインストールする。 # yum install perl-FCGI 以上で動作環境は整ったので、次に adiary を導入する。 tarボールを落としてきて展開する 又は git を使いデータを取ってくる。 tarボールは公式サイトから探してきて必要な場所に展開すればよい。 git を使う場合は、まずコマンドのインストールをする。 # yum install git この後、adiary を展開するディレクトリに移動し、次のコマンドを実行。 $ git clone https://github.com/nabe-abk/adiary 展開後、次の設定を行う。 ディレクトリパーミッションの設定 adiary.conf.cgiの設定 以上で adiary の導入は終わり、後は nginx の設定を行う。 nginx はデフォルトの状態だと /etc/nginx/nginx.conf が最初に読み込まれ、 このファイルから /etc/nginx/conf.d/*.conf が読み込まれる。 そして、/etc/nginx/conf.d/default.conf から /etc/nginx/default.d/*.conf が読み込まれる。 そこで、/etc/nginx/default.d/adiary.conf を作り、次を書き込む。         location /adiary/ {                 root    /<adiaryインストールしたディレクトリ>/adiary;       

Linux ユーザ一覧の確認方法

Linux のシステムに登録されているユーザ一覧を確認する方法。 /etc/passwd ファイル内に書かれている為、このファイルを確認する。 $ getent passwd 又は $ less /etc/passwd root:x:0:1:Super-User:/:/sbin/sh root2:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: smtp:x:0:0:Mail Daemon User:/: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: user10:x:10002:1998::/summer/user10:/bin/ksh このファイルは1ユーザにつき1行が割り当てられている。 ユーザ名 : パスワード : ユーザID : グループID : コメントフィールド : ホームのパス : ログインシェル /etc/shadow ファイルにハッシュ化したパスワードが保存されている。 ログインシェルは /sbin/nologin にするとコンソールへログインできなくなる。 ユーザ名 testusr のログインシェルを /sbin/nologin に変更。 $ usermod -s /sbin/nologin testusr [参考] パスワードファイル /etc/passwd の構造 http://www.wakhok.ac.jp/biblion/1997/sysadmin/node18.html シャドウファイル /etc/shadow の構造 http://www.wakhok.ac.jp

FreeBSD の 初期設定

ネットワークの設定 コマンド # dhclient fxp0 を実行するとDHCPにてIPアドレスを自動的に割り振られる 起動時にDHCPでIPアドレスを割り振られるようにするためには、 /etc/rc.conf を作り、 ifconfig_fxp0="DHCP" を書き込む ただし、「fxp0」は環境に応じてネットワークデバイス名をあてる 第21章 高度なネットワーク 21.10. DHCP https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/network-dhcp.html Ports Collection の利用開始 次のコマンドで Ports Collection のダウンロードと展開を行う。 # portsnap fetch # portsnap extract Ports を使ったプログラムのインストールを行う前にアップデートを行う。 # portsnap fetch update アプリケーションは /usr/ports/以下のインストールするプログラムのディレクトリ内で # make install としインストールする インストール後、一時データは # make clean で削除される アプリケーションのインストール - packages と ports 4.5. Ports Collection の利用 https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/ports-using.html X Window System の利用 次のコマンドでインストールする # pkg install xorg X Window System 5.3. Xorg のインストール https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x-install.html 5.3. Xorg の設定 https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x-config.html

Perlで動作するCMS 一覧

Movable Type https://www.movabletype.jp/ Perl、MySQL 商用有償、個人無償 なライセンス (OpenSourceではない) adiary (aDiary ではない) https://adiary.org/ Perlで動作、DB不要、MySQL、PostgreSQLを使うことも可 AGPLv3ライセンス FreeStyle Wiki http://fswiki.osdn.jp/cgi-bin/wiki.cgi Perlで動作、DB不要 GNU GPLライセンス YukiWiki 結城浩 Perl 日本語Wikiの草分け的存在。最新バージョンは2.1.2a。 http://www.hyuki.com/yukiwiki/ TWiki Perl http://twiki.org/ ライセンス GPL

FreeStyle Wiki をサーバにインストールしてみた

試しに FreeStyle Wiki を構築してみた。 CMSを入れてみようと思い、サーバには perl がインストールされていたので、FreeStyle Wiki にしてみた。 この時の最新は 3.6.4 だった。 wiki3_6_4.zip wiki3_6_4.zip を展開し、フォルダ構造をそのままでwebサーバ配置する。 CGIを有効にし、パーミッションなどを設定したが起動しない。 試しに、hello.cgi と言うファイルを作ってブラウザから表示されることを確認した。 #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello World"; ということでwikiのファイルを確認したら文字化けしてた。 どうやらUTF-8には対応しておらず、自力でなおす必要があるようだ。 なんちゃってUTF8化プラグイン http://fswiki.osdn.jp/cgi-bin/wiki.cgi?page=BugTrack%2Dplugin%2F425 FSWiki4.0 http://fswiki.osdn.jp/cgi-bin/wiki.cgi?page=FSWiki4.0 ということで、CMSを試したいだけだったので今回は見送り。 また、機会があれば試すことにする。 [参考] 公式サイトの説明 http://fswiki.osdn.jp/cgi-bin/wiki.cgi/docs?page=readme FreeStyleWiki の ダウンロード先 https://ja.osdn.net/projects/fswiki/

Linux ディレクトリ内のファイル 文字コード一括変換

ファイルの文字コードを EUC-jpからUTF-8に一括変換 find hoge -type f | xargs file | grep ":.*text" | cut -d: -f1 | xargs -t -I {} iconv -f EUC-JP -t UTF-8 {} -o {} 詳細はリンク先へ。 [参考] テキストファイルを一括でiconv https://qiita.com/yocifico/items/316bf6fd22b277cf2aa6

Webサーバ nginx のインストール on CentOS6

Webサーバ を CentOS6 上に起動してみた。 apache ではなく、nginx を動かしてみた。 まず、インストールする。 EPEL リポジトリに登録されているのでリポジトリを追加。 # yum install epel-release nginx をインストール。 # yum install nginx nginx を起動。 # service nginx start ブラウザから確認。  Welcome to nginx on EPEL! が表示された。 なお、Firewall の確認が必要。 nginx エイリアスの設定 設定ファイルは /etc/nginx/nginx.conf である。 このファイルで全体に関わる設定がされている。 # For more information on configuration, see: #   * Official English Documentation: http://nginx.org/en/docs/ #   * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events {     worker_connections  1024; } http {     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_

Webサーバ apache のインストール on CentOS6

テストで作った仮想サーバー上の CentOS6 に Webサーバ apache を インストールした。 # yum install httpd でインストールし、 # service httpd start で起動した。が、起動しない。 設定ファイルがおかしいのかと思いチェックした。 # apachectl -t httpd: apr_sockaddr_info_get() failed for myhostname httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName Syntax OK ググるとホスト名の件でトラブっているみたい。 サーバ名を localhost.localdomain に設定する為、 /etc/httpd/conf/httpd.conf の 次の行を書き換えた。 #ServerName www.example.com:80 ServerName localhost.localdomain 再度チェックするとエラーが出ないことを確認。 # apachectl -t Syntax OK httpd を起動。 # service httpd start ファイアウォールがあると接続できないので確認をする。 仮想環境のテストサーバなので取り敢えず # iptables -F で取り敢えず接続できることを確認した。 この後、エイリアスの設定を行った。 設定ファイルは /etc/httpd/conf.d/*.conf を読み込むように書かれているので、 エイリアスの設定は この場所においた。 /etc/httpd/conf.d/alias.conf alias /user0001/ /home/localuser/html/ <Directory /home/localuser/html >   Allow from all </Directory>

Linux ホームディレクトリ作成

ある時、Linuxにログインできなくなってた。 コンソールからログインできたのであれこれ調べると、 何故かホームディレクトリが無くなってた。 何をやらかしたのかわからないが次のような対処を行った。 ユーザー名 user グループ名 users /etc/skel ディレクトリを /home にコピー cp -r /etc/skel /home コピーしたディレクトリの名前をユーザ名に変更 mv /home/skel /home/user 所有者とグループを設定 chown -R user:users /home/user 新しく作ったディレクトリ内に *.template というファイル名があったため、 ファイル名を変更し、.template を取った。 これで取り敢えず X が起動できた。 ユーザ名を削除したくなかったので上のような方法を取ったが、 一旦削除しても良いなら userdelコマンドで 該当ユーザを削除し、useraddコマンドで 再度同じユーザを作成すると一緒にホームディレクトリも作られる。

Linux コマンド で パスワードの自動生成する

新規に登録するパスワードの為にランダムな文字列が欲しいことがある。 特に一度しか入力しないWi-Fiのパスワードなどは、出来るだけ複雑にしておきたい。 ターミナルより以下のコマンドを入力するとランダムな文字列が出力される。 $ cat /dev/urandom | tr -dc [:alnum:] | fold -w 24 | head -n 10 0hUvC7ZrZuInQcauCiXisiyb vHjj4UZxYv1AkFePOJ83jgnQ zAhevCFq6QV1lHJp9XetOSKh DnfgR84UKI1A1JlQFso9xd3N DohYiqwTfSFJw5PlFltMP58N 上記コマンドはランダムな英数字を24文字で改行して10行表示するコマンドである。 次の4つのコマンドをパイプで繋いでいる。 cat /dev/urandom ランダムな文字列を出力する。指定するデバイスを /dev/random と指定しても同じような結果になることもある。これだけを実行するとひどいことになるかも。 tr -dc [:alnum:] 文字の置換や削除を行う。 オプション -d は削除を、-c は補集合を表しており、[:alnum:]はアルファベットと数字を表している。 このコマンドの意味は「英数字以外を全て削除する」という意味である。 [:alnum:] を [:alpha:] に置き換えればアルファベットのみで、[:graph:] に置き換えれば英数記号で表示される。 fold -w 24 文字列の長さを24文字で改行する。 head -n 10 10行表示する。 [参考]/dev/urandomを使ってランダムなパスワードを生成する方法 http://l-w-i.net/t/ubuntu/passwd_001.txt Man page of CAT https://linuxjm.osdn.jp/html/GNU_coreutils/man1/cat.1.html Man page of TR https://linuxjm.osdn.jp/html/GNU_coreutils/man1/tr.1.html Man page of FOLD https://linuxjm.osdn.jp/ht

年賀はがき の 交換

去年までの書き損じた年賀はがきがたくさんあったので、郵便局に交換しに行った。 交換できると思っていたが、年賀はがきは同じ年のもの同士でないと交換出来ないそうだ。 古い年賀はがきは、切手や郵便はがきには交換できるので、全てを切手に交換した。 古い年賀はがき1枚あたり5円の手数料を引いて全て切手に交換した。 [参考] 書き損じはがき・切手の交換 http://www.post.japanpost.jp/service/standard/kaki_sonji/index.html

Linux Firewall の設定 [ iptables ] 其の二

Linux Firewall の設定 [ iptables ] の続き iptables に引っかかったログを取りたいため以下の設定を行う。 iptables ルールの一覧表示 iptables -nvL --line-numbers オプション 説明 -n IPアドレスをDNSに問い合わせない -v 詳細な設定を表示 -L ルール一覧を表示 --line-numbers ルール番号を表示 ログの出力の設定 iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables firewall] : " --log-level=info オプション 説明 -m limit -limit 1/s 単位時間当たりに記録するパケット数(この場合は1秒1パケット) -j LOG ログ出力を実施 -log-prefix “[iptables firewall] : ” ログ出力時につける識別子。 -log-level=info ログ出力のレベル。デフォルトはwarning なお、この設定だとログを取りすぎる可能性があるため、iptables のルールの順序を再考する必要がある。 次のルールだとログを取ってから、TCP 22 へのアクセスは捨てられる。 # iptables -nL LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 LOG flags 0 level 6 prefix `[iptables firewall input] : ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 次のルールだと先に TCP 22 へのアクセスが捨てられるため、ログは残らない。 # iptables -nL DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 LOG all -- 0.0.0.0/0 0.0.0.0/0

NAS (LinkStation) のディスク交換

NAS LinkStation のディスク交換を行う手順 以下の手順で行う。 ホットスワップには対応していない模様。 RAIDの再構築も自動では行われない模様。 LinkStationの電源を切り、ディスクを交換 電源を入れ、 LinkStationの設定画面 からRAIDの再構築を実施 [参考] 内蔵ハードディスクを交換する方法(LinkStation、TeraStation) http://faq.buffalo.jp/app/answers/detail/a_id/15834?bufqa LinkStation、TeraStationの特徴、違いについて http://buffalo.jp/qa/hd/make/linkstation-06-3.html

Linux ファイル閲覧するコマンド

Linuxのファイル表示コマンドについてふと調べてみた。 ここでは次の4つのコマンドについてまとめた。 less more cat paste ファイルの内容を表示するコマンド less more 機能 内容を閲覧する 内容を閲覧する 画面表示 自由に行ったり来たりできる。戻れる。 先頭から順に1画面づつ表示。戻れない。 コマンド終了時 コンソールに残らない コンソールに残る less、moreはファイル内容の閲覧するためのコマンドである。 moreは一画面ごとにキーボードの入力待ちとなり一画面づつファイル末尾へすくろーるする。 lessはmoreを拡張し、ファイルの好きな部分へ自由に移動できる。 ファイルの内容を確認できるコマンド cat paste 機能 内容を連結する ファイルの行を結合する 画面表示 先頭から一気に表示。静止画面に残るのは1画面分。 先頭から一気に表示。静止画面に残るのは1画面分。 コマンド終了時 コンソールに残る コンソールに残る cat、pasteはファイルの連結結合コマンドである。 ファイルを一つだけ指定すると内容が表示される。 表示するためのコマンドではないため、コンソール画面が一気に流れコマンド入力待ちになる。この為、1画面分が表示される。 test1 aaa bbb ccc test2 111 222 333 ちなみに上のようなファイル(test1、test2)に対し、次のような結果が得られる。 cat test1 test2 aaa bbb ccc 111 222 333 paste test1 test2 aaa 111 bbb 222 ccc 333 [参考] LESS https://linuxjm.osdn.jp/html/GNU_less/man1/less.1.h

sudo の設定

visudo コマンドを実行し設定を編集。 実際には /etc/sudoers を編集していることになる。 このファイルに書かれているユーザと、 書かれているグループに所属するユーザのみが sudo コマンドを使える。 #から始まる文はコメントである。 この場合、wheel グループに所属しているユーザはsudoコマンドで管理者権限を得ることが出来る。 %から始まる文字はグループ名を表す。 %wheel        ALL=(ALL)       ALL グループ名の後は、 ホスト =(実行権限) コマンド を表している。 新規作成したユーザ(ユーザ名:user グループ名:group)にsudoコマンドが使えるようにするには、  user ALL=(ALL) ALL と記述するか、 %group ALL=(ALL) ALL とかけばよい。 又は、 %wheel        ALL=(ALL)       ALL が書かれていればuserをwheelグループに追加してもよい。 次のようにグループに追加する。 usermod -aG wheel user 又は gpasswd -a user wheel [参考] sudoの権限を設定するvisudoコマンド【Linuxコマンド集】 https://eng-entrance.com/linux-command-visudo Linuxでユーザーをグループに追加するコマンドのmemo https://qiita.com/unikan/items/35af755de7a0b0346c02 # groupグループにshutdownのみパスワードなしできるようにする %group    ALL=(ALL)    NOPASSWD: /sbin/shutdown # userユーザーにパスワードなし設定を行う場合 user    ALL=(ALL)    NOPASSWD: ALL

PostgreSQL の セットアップ on CentOS6

CentOS6 に PostgreSQL をインストールした。 以下はその手順。 まず、管理者権限でパッケージのインストールとサービス起動設定を行う。 次のパッケージをインストール postgresql postgresql-libs postgresql-server postgresql-server インストールすると 『postgres』というアカウント が作成される OS起動時にサービス開始するよう設定 chkconfig postgresql on アカウントを postgres に変更する。 su - postgres データベース初期化 service postgresql initdb サービス開始 service postgresql start Linuxのアカウントでデータベースが作成できるよう設定 createuser <ユーザ名> 設定を行ったユーザアカウントに切り替える。 su - <ユーザ名> データベースを作成 createdb <データベース名> [参考] CentOS で PostgreSQL を使ってみよう! https://lets.postgresql.jp/documents/tutorial/centos/

コンソールログイン時に表示されるメッセージ

コンソールログイン時に表示されるメッセージは次の場所に格納されている。 /etc/issue このファイルに書ける記号は次の通り。 \s OSの名前を表示 \v OSのバージョンを表示 \r OSのリリースを表示 \l 仮想コンソールの番号を表示 \d 日付を表示 \t 現在の時刻を表示 \m マシンタイプを表示 \n ホスト名を表示 \o ドメイン名を表示 \u ログインしているユーザー数を表示 \U ログインしているユーザー数を表示 telnetでログインした場合は /etc/issue.net ファイルが参照される。 [参考] /etc/issueおよび/etc/issue.netに記述可能なシーケンス http://www.atmarkit.co.jp/flinux/rensai/linuxtips/272etcissue.html ssh でログインした場合は /etc/motd ファイルの内容が表示される。 このファイルに AsciiArt を仕込む人もいるようだ。 次のサイトでは文字をAAにしてくれるようだ。 Text to ASCII Art Generator (TAAG) http://patorjk.com/software/taag/

仮想コンソールの数の設定

Linux の仮想コンソールの設定は /etc/inittab に書いてあると思うが、Distributionによって異なるようだ。 多くの場合、デフォルトでは6つの仮想コンソールが設定されている。 3番目の仮想コンソール( tty3 )に切り替えるには次の方法がある。 キーボードから [Alt]-[F3] (X上からなら [Ctrl]-[Alt]-[F3])を押す。 コンソールから chvt 3 を入力。 CentOS の場合 /etc/sysconfig/init を書き換える # What ttys should gettys be started on? ACTIVE_CONSOLES=/dev/tty[1-6] の部分で仮想コンソールを設定している。 Ubuntu の場合 /etc/default/console-setup を修正。 ACTIVE_CONSOLES=/dev/tty[1-6] の部分で仮想コンソールを設定している。 FreeBSDの場合 /etc/tty を修正することで設定できるようだ。 行頭に#を書き減らすことが出来る。 # name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" c

CentOS on VirtualBox

VirtualBox に CentOS を minimal でインストールした。 コンソールで、初期設定をした。 キーボードのレイアウトが異なる場合、一時的には次のコマンドで修正。 英語キーボード にする場合 loadkeys us 日本語キーボードにする場合 loadkeys jp106 設定ファイルを編集する場合は /etc/sysconfig/keyboard を編集。 英語キーボードの設定 KEYTABLE="us" MODEL="pc105+inet" LAYOUT="us" KEYBOARDTYPE="pc" 日本語キーボードの設定 KEYTABLE="jp106" MODEL="jp106" LAYOUT="jp" KEYBOARDTYPE="pc" キーボードはインストール時に正しく設定すれば特に設定する必要はない。 次は GuestAdditions をインストールする。 network の設定 ip a コマンド でネットワークデバイスを確認 多くの場合は eth0 /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集eth0は調べたデバイス名 ONBOOT=no を修正 no から yes へ ネットワークを有効にする service network restart を実行 または 再起動 update yum update を実行 yum install make gcc perl kernel-devel を実行 GuestAdditions をインストール メニュー[デバイス]より[GuestAdditions CD イメージの挿入]を選択 CDをマウント mount -r /dev/cdrom /media インストール実行 sh /media/VBoxLinuxAdditions.run 再起動 [参考] VirtualBox上のLinuxにGuestAdditionsをインストールして、共有フォルダを設定する https://qiita.com/