ホームにもどる      「パソコンについて」にもどる

CentOS7
  1. CentOS7 を入手するには、
    ihttps://www.centos.org/
    でCentOSのホーム画面を開く。
    中ほどにあるGet CentOS Nowをクリックすると、
    https://www.centos.org/download/
    が開く。
    DVD ISO をクリックすると、
    https://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
    が開く。
    上のメニューのMirror List をクリックする。
    Asia Japan の所を見ると、いくらかのリストがある。例えば理化学研究所のものを選び、
    RIKEN Research Institute をクリックすると、理化学研究所のホームページが表示される。RIKEN Research Institute の横にある
    https://ftp.riken.jp/Linux/centos/
    をクリックすると、
    https://ftp.riken.jp/Linux/centos/
    が開き、たくさんのディレクトリが表示される。
    下のほうにある7をクリックする。
    https://ftp.riken.jp/Linux/centos/7/
    が開く。いくらかのディレクトリがあるが、isos/を選び、クリックする。
    https://ftp.riken.jp/Linux/centos/7/isos/
    が開き、x86_64/ と書いてあるディレクトリがある。これをクリックすると、
    いくらかのファイルが見られる。
    CentOS-7-x86_64-DVD-1611.iso
    を選んでクリックしダウンロードする。1611は私がダウンロードした最新版がたまたまこれであったというだけで、versionが変わると変わってくる。
    isoファイルは、データ CD または DVD 全体を 1 つのファイルにコピーしたものであり、圧縮はしていない。CD または DVD に書き込むともとのディスクと同じ新しいディスクをつくることができる。
    LiveCD.isoと書いてあるものは、インストールの時ファイルをダウンロードしながらインストールする。だからファイルは小さいが、インストールに時間がかかる。
  2. インストール
    インストールの概要画面に表示された[言語サポート]をクリックすると、追加の言語サポート画面が表示される。ここで中国語などを追加できる。
    インストールの概要画面に表示された[ソフトウェアの選択]をクリックし、インストールするものを選択できる。ただしCentOS6の時のように、ファイルを細かく指定することはできない。大まかな指定ができるだけである。最小限のインストールを選択すると、使うソフトを個別にたくさんインストールしなければならず設定に手間取る。個人的なサーバーをつくる時は、サーバー(GUI使用)を選択するとよいようである。
    インターネットにつなぐには、インストールの概要画面に表示された[ネットワークとホスト名]をクリックし、画面に表示されているイーサネットを[オン]にする。イーサネットを[オン]にすると、DHCPの場合、自動的にIPアドレスを取得する。IPアドレスが取得できれば取得したIPアドレス情報が画面に表示される。表示されれば、正常にイーサネットは動作している。
  3. 端末
    端末のカーソルの形状を矩形にしておかないと、vimを使う時にカーソルが見えにくい。この設定は端末を開いて、メニューバーの編集→プロファイルの設定で「設定」ウインドを開く。「名前なし」を選択し編集をクリックする。「プロファイルの名前」を適当に変更する。「カーソルの形状」を矩形にする。端末の字をもっと大きくするには、「フォントを指定する」にチェックを入れて変更できる。
  4. gedit
    geditの設定は、geditを開き、メニューバーのgeditの右の下向きの矢印をクリックする。設定を選択する。
    字を大きくするには、フォントと色タブをクリックし、「システムの固定幅フォントを使う」のチェックをはずすと、フォントの設定ができるようになる。
    行番号を表示するには、表示タブをクリックし、「行番号を表示する」にチェックを入れる。
  5. よく使う操作にキーボードのショートカットをつくって置くと、操作が少し速くなる。
    メニューバーのアプリケーション→システムツール→設定→キーボード で「キーボード」ウインドを開き、「ショートカット」タブをクリックする。
    「ランチャー」の「ウェブプラウザーを起動」を選択し、Alt + W などを登録する。
    「ランチャー」の「ホームフォルダー」を選択し、Alt + H などを登録する。
    「ランチャー」の「設定」を選択し、Ctrl + Alt + S などを登録する。
    「ウィンドウ」の「ウィンドウを最大化する」を選択し、Alt + M などを登録する。
    「ウィンドウ」の「ウィンドウを戻す」を選択し、Alt + B などを登録する。
    「ウィンドウ」の「ウィンドウを非表示にする」を選択し、Alt + L などを登録する。
    端末をキーボードのショートカットで開くには、「端末を開く」の項目がないため独自のショートカットを使う。独自のショートカットをクリックし、「+」をクリックし、「名前」を端末にし、コマンドに、gnome-terminal と打ち込み、追加をクリックする。端末を選択し、無効をクリックし「\アクセラレータ」が出るようにして、Ctrl + Alt + T などを登録する。
    geditも独自のショートカットを設定して開くことができる。独自のショートカットをクリックし、「+」をクリックし、「名前」をgeditにし、コマンドに、gedit と打ち込む。文字をクリックし「\アクセラレータ」が出るようにして、Alt + Gなどを登録する。
  6. 時刻は自動設定するようにしておくと、誤差が出ない。それには、「すべての設定」から「日付と時刻」を選択し自動日時設定をオンにする。
  7. CentOS7 はデフォルトでは、visudoの
    %wheel ALL=(ALL) ALL
    の前の#がない。だからwheelにユーザーを加えることでそのユーザーでsudo が使える。例えばtaroというユーザーでsudo が使えるようにするには、下記のコードを実行する。
    gpasswd -a taro wheel
    -a は add の意味で、wheelユーザーにtaroを加えるオプションである。
  8. Apache
    Apache はインストールされていないので、インストールする。下記のコードを使う。
    sudo yum install httpd
    Apacheのインストールを確かめるには、端末に
    rpm -q httpda
    と入力する。qは問い合わせのオプションである。インストールされていると、
    httpd-2.4.6-45.el7.centos.4.x86_64
    などとと表示される。URLに
    https://www.example.com
    と入力すると、Example Domain が表示される。
    Apacheが再起動時に自動で起動するように設定するには、下記コードを実行する。
    systemctl enable httpd.service
  9. MariaDB
     CentOS 7 よりデフォルトのデータベースサーバは、MariaDB である。名前は違うが、従来のMySQLの路線を受け継いでいるのは、今のMySQLよりMairaDBのほうである。それには次のような経緯がある。1995年にMySQLの最初のバージョンをDavid Axmarkと書いたのがUlf Michael Wideniusである。2008年にWideniusはMySQLをSun Microsystemsに売却した。開発方針の違いからWideniusは2009年にSun Microsystemsを退社した。2010年にSun MicrosystemsはOracle Corporationに買収された。だから今のMySQLはOracle Corporationのもとで開発されている。一方Wideniusは、2010年にMySQLからフォークさせたMariaDBの開発を開始した。
     機能面でもMariaDBの優れることは、Googleのデータベースに採用されていることからもわかる。
     またSQL文もMySQLと同じでよいようだし、CGIとconnectする時も
    $dsn="DBI:mysql:$dbname";
    $dsh=DBI -> connect ( $dsn, $dbuser, $dbpass , { RaiseError => 0 } );
    のようにmysqlのままでつながる。mariadbに書き換える必要はない。
    コマンドプロンプトを起動するのもmysql -u ユーザー名 -p
    でよいし、データの移動には、mysqldumpがMySQLと同じように使える。
     私は最初MariaDBを削除してMySQLをインストールしたが、CGIでデータの挿入や更新ができたりできなかったりという不具合が出現した。コードを変えなければならないのかと思いいろいろと変更したが、同じであった。コードの間違いなら、まったく挿入や更新ができないはずであり、できたりできなかったりというのは、コードの間違いとは思えなかった。原因がはっきりしないまま、MySQLを使うことをあきらめ、CentOS7を入れ直し、MariaDBを使うことにした。するとCentOS6上で使っていたCGIは一行も変更することなく、CentOS7上で動いた。データの挿入、更新も問題なかった。CentOS7はMariaDBを使うという前提でつくられているようであり、MySQLに入れ替えると不具合が出ることがある。
  10. MariaDBの文字コードをUTF-8にするには、/etc/my.cnfに下記の2行を書き加える。
    character_set_server=utf8
    skip-character-set-client-handshake
    設定を保存するには、systemctlコマンドでmariadbを有効にしてから起動する。下記のようなコードを実行する。
    systemctl enable mariadb.service
    systemctl start mariadb.service
  11. MariaDBの初期設定
    下記コードでする。
    mysql_secure_installation
    rootのパスワードを聞いてくるが最初は設定していないため、何も入力せずに、Enterキーを押す。
  12. MariaDBの文字コードの確認
    コマンドプロンプトに下記のように打ち込む。
    show variables like 'char%';
    すると下記のように表示される。
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.04 sec)
    
  13. PHP
    PHPのインストールは下記コードを実行する。
    yum install php php-mbstring
    下記コードでインストールされたパッケージの詳細が確認できる。
    rpm -qa | grep php
    -a インストールされているすべてのパッケージを選択する
    -q パッケージの詳細を表示する。
    MariaDBを使うには、下記のインストールをする。
    yum install php-mysql
  14. PHPの確認
    PHPを確認するには、
    sudo vi /var/www/html/Shiken.php
    でShiken.phpをつくり、
    <?php
    phpinfo();
    ?>
    と記入する。URLに
    localhost/Shiken.php
    と入力し、PHPの状態が画面に表示されるのを確認する
    php.iniのコピーをとってからphp.iniの一般的な変更をする。下記コードをcentos7_php_ini_henko.plと名づける。
    #!/usr/bin/perl
    use strict;
    use warnings;
    
    system("cp /etc/php.ini centos_php_ini.txt");
    
    open(FILE,'centos_php_ini.txt') or die "$!";
    my @file=<FILE>;
    close(FILE);
    foreach my $line(@file){
    	$line=~s|short_open_tag = Off|short_open_tag = On|;
    	$line=~s|expose_php = On|expose_php = Off|;
    	$line=~s|max_execution_time = 30|max_execution_time = 300|;
    	$line=~s|;default_charset = "UTF-8"|default_charset = "UTF-8"|;
    	$line=~s|post_max_size = 8M|post_max_size = 20M|;
    	$line=~s|upload_max_filesize = 2M|upload_max_filesize = 20M|;
    	$line=~s|;date.timezone =|date.timezone = Asia/Tokyo|;
    	$line=~s|;mbstring.language = Japanese|mbstring.language = Japanese|;
    	$line=~s|;mbstring.internal_encoding = EUC-JP|mbstring.internal_encoding = UTF-8|;
    	$line=~s|;mbstring.http_input = auto|mbstring.http_input = UTF-8|;
    	$line=~s|;mbstring.http_output = SJIS|mbstring.http_output = pass|;
    	$line=~s|;mbstring.encoding_translation = Off|mbstring.encoding_translation = Off|;
    	$line=~s|;mbstring.detect_order = auto|mbstring.detect_order = auto|;
    	$line=~s|;mbstring.substitute_character = none;|mbstring.substitute_character = none;|;
    }
    open(NEWFILE, '>centos_php_ini2.txt') or die "$!";
    print NEWFILE @file;
    close(NEWFILE);
    
    system("sudo cp centos_php_ini2.txt /etc/php.ini");
    
    端末で下記を実行する。
    perl centos7_php_ini_henko.pl
  15. CGI
    下記コードでインストールする。
    sudo yum install perl-CGI
  16. nkf
    下記コードでインストールする。
    sudo yum localinstall -y https://mirror.centos.org/centos/6 /os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
  17. ibus-kkc
    日本語入力にに変えるには、Super + スペースキーを押す。ただしこれを一度すると、次回からは、半角全角キーで日本語、英語入力の変更ができる。
    登録したい単語を選択しAlt + R を押してから読みを入力すると、単語登録ができる。しかしAlt + Rは日本語入力ができる状態で押さなければならない。半角入力の状態で押すと記録しない。
    登録した単語を削除するには、変換してその単語が出た時にCtrlキーとbackspaceキーを押す。
  18. lftp
    下記コードでインストールする。
    sudo yum install lftp
  19. メール送信する機能のことをMTA(Message Transfer Agent)と言う。MTAには、sendmail postfixなどがある。CentOS7でデフォルトで搭載されているのはpostfixである。CentOS6でsendmailを使っているからsendmailが使いたいという場合は、下記コードでsendmailをインストールする必要がある。
    sudo yum install sendmail sendmail-cf
    自分のパソコンで端末にコマンドを打ち込んだり、Perlファイルを書くことでsendmailが作用するか確認することができる。次のように半角英数字で書き、shiken.txtと名付ける。
    From: <taro@shiken.com>
    To: <hanako@gmail.com>
    Subject: Test

    This is a test.
    Subjectまでのヘッダー部分とThis is a test. の本文部分の間は必ず1行あける必要がある。
    hanako@gmail.com というアドレスが実際にあるなら、このアドレスにこの簡単なメールを送ることができる。見知らぬ他人にこんなメールを送ると迷惑だろうから、自分のメールアドレスか知人のメールアドレスにする必要がある。
    端末に
    cat shiken.txt |
    と打ち込んでEnterキーを押す。すると端末に>が出るので、その後ろに
    sendmail -i -t
    と打ち込んで、Enterキーを押すとメールが送付される。
    catはファイルの中身を出力するコマンドである。
    | はパイプと呼ばれるもので、 cat shiken.txt で出力したものを次のコマンドに渡す役割をする。
    sendmail はメールを送れというコマンドである。iオプションがつくと、メール本文にコンマがあっても、メールが終わったとみなさない。tオプションがつくと、To:の後ろにあるのを、送り先とみなして送付してくれる。
    CentOS7 の端末には、先頭に[taro@DESKTOP-905475F ~]$ などと表示されている。この端末から上記コマンドを実行すると、DESKTOP-905475Fがhostname と見なされる。これはFQDN(Fully Qualified Domain Name)と見なされない。FQDNはwww.atmarkit.co.jp のように. で区切られていなければならない。それでこのままではsendmailが実行できない。
    sudo vi /var/log/maillog
    でログを見てみると、
    Aug 27 09:27:53 DESKTOP-905475F sendmail[7054]: My unqualified host name (DESKTOP-905475F) unknown; sleeping for retry
    のようなログが見られる。それでsendmail を使うにはhostnameを一時的に変更する必要がある。
    sudo hostname taro.shiken.com
    と端末に撃ち込むとhostname がtaro.shiken.comに変更される。これは一時的な変更であり、パソコンを再起動するとまたもとのhostnameにもどる。どんなhostnameなのか確認するには、端末に
    hostname
    と打ち込む。 これでgmailなら届くが、hotmail や ASAHIネットのメールアドレスには届かなかった。きちんとしたサーバーから送られたものでないから、不審なメールとみなされ、ブロックされたようだ。
  20. SELinuxはアクセス制御をする。ただ必要なアクセスも制御されてしまうことがある。CentOS6で問題なく動いたサイトのカウンター機能がCentOS7で動かない。原因はSELinuxによるアクセス制御だった。
    CentOS7は問題が起こった時にそれを表示してくれる。この場合は次のように表示された。
    「SELinux により、/usr/bin/perl による read アクセスが、ファイル 1.png で拒否されました。
    allow httpd to read user content をする場合
    このようにします: 'httpd_read_user_content' boolean を有効にして、 これを SELinux で有効にします。」
    英語を直訳したのか、この記述は日本語としてわかりにくい。
    「allow httpd to read user contentをしたければ、SELinuxの'httpd_read_user_content'を有効にして下さい。」
    ということである。
    httpd_read_user_contentの状態は次のコマンドで表示される。
    sudo getsebool httpd_read_user_content
    すると、
    httpd_read_user_content --> off
    と表示される。確かに無効になっているのである。これを有効にするのは、次のコマンドを使う。
    sudo setsebool -P httpd_read_user_content on
    Pオプションをつけると恒久的な設定になる。おそらくpermanent のp を取ったのだろう。
    on を1にして、
    sudo setsebool -P httpd_read_user_content 1
    でも同じように作用する。CentOS7の説明にはこちらのコマンド示された。
  21. google map を保存するには、screenshotを使う。screenshotは、ノートパソコンの場合は、Fnキーを押しながらprt scキーを押すものがある。保存されると、ガチッと音がする。通常ならホームフォルダに保存されている。pngファイルである。
  22. CentOS7はgnome3を採用しており、起動して出て来る画面と違うアクティビティ画面が出るようになっている。アクティビティ画面には、Firefoxや端末などのアイコンが表示され、それをクリックするとこういうアプリケーションが立ち上がる。しかしアプリケーションを立ち上げるには、ショートカットキーが一番簡単である。実際私はショートカットキーから立ち上げているからアクティビティ画面を使うことがない。アクティビティ画面にするには、Windowsキーを押すか、マウスを左上のホットコーナーに移動させる。ところが実際はマウスを少し動かしただけで、アクティビティ画面に変ることがあり、びっくりしたりうっとうしかったりする。Windowsキーでアクティビティ画面に変るのだから、マウスで変える必要はない。これをなくすには、まず下記をインストールする。
    sudo yum install gnome-shell-extension-no-hot-corner
    アプリケーション→アクセサリ→Tweaks でgnome-tweak-tool の設定画面を開く。 No topleft hotcornerをオンにする。No topleft hotcornerが見当たらないなら、hot等で検索すると出て来る。
  23. 言語を追加するには、メニューバーのアプリケーション → システムツール → 設定 で設定ウインドウが開く。右のメニューの地域と言語を選択する。入力ソースの所の + をクリックし、言語を選択し追加をクリックする。

更新日:2020年4月2日

ホームにもどる      「パソコンについて」にもどる