Linux ログイン時にプログラムを自動起動させる(スタートアップ機能)

Linuxを使用していて、毎日使うプログラムは自動起動したくなるものです。たとえば、インターネットブラウザや音楽プレイヤーなど。

Windowsでいうところのスタートアップ機能があればいいのですけれど、Linuxには全く同じ機能はデフォルトで用意されておらず、少し手間がいります。(ドラッグアンドドロップでは設定を完了できません。)

そして、コマンドラインで起動するための「ワード」が必要になります。たとえば、FireFoxを自動起動したいのなら「firefox」というワードを予め知っておかなければいけません。

とはいえ、手順はとても簡単です。

まず、コマンドラインで以下のように入力します。

$ gnome-session-properties

そうすると、自動起動を設定するためのプロパティが起動しますので、自動起動させたいソフトを追加していきます。

「add」を押して、「名前」と「プログラムを起動するためのコマンド」を登録します。

登録が完了したら、動作確認のためにPCを再起動します。登録したプログラムが自動起動されればOKです。

以上です。

Linux ログイン画面を飛ばす設定(自動ログイン)

Linuxは複数のユーザーによって利用されることを前提で設計されています。ですので、セキュリティーのために、電源のボタンを入れた次の画面でユーザーを認識する必要があります。

しかしながら、自宅PCとして自分だけが利用するためには、ログイン画面は不必要かもしれません。そんなときには、以下の設定で、ログイン画面を省略出来ます。(自動ログイン)

「/etc/gdm/custom.conf」 を修正します。ルート権限で実行する必要があります。

以下コマンドです。

$ sudo vi /etc/gdm/custom.conf

この「custom.comf」ファイルの中の「 [daemon] 」の直下に以下を追記します。

TimedLoginEnable=true
TimedLogin=(ユーザー名)
TimedLoginDelay=1

(ユーザー名)には、いつも使用しているユーザー名を入力します。

再起動すると、ログイン画面が省略されています。

以上です。

PHPのバージョンを確認する方法

以下コマンドを実行すると、PHPのバージョンを確認出来ます。

$ php -v

PHPの設定情報を表示したい時

phpinfo()を呼び出して、php.iniに設定されている情報を表示します。

$ php -i | head

「grep」を利用すれば、さらに便利です。

以下は、PHPの「memory_limit」だけを表示するコマンドです。

$ php -i | grep memory_limit

以上です。

【Linux】CD/DVDをマウントするコマンド

Linux の CUI にて DVD 、CD を読み込みたい場合のマウント方法。

【CentOS の場合】

1.DVD、CD をドライブにセットします。

2.コマンドを実行

mount デバイス マウントの位置

デバイスに関しては インストールの状態によって違うことがありますので、うまくいかない場合は

ls /dev

で確認してください。

mount /dev/dvd /mnt
または、
mount /dev/cdrom /mnt

確認

ls /mnt

3.ドライブの解除方法

umount /mnt

確認

ls /mnt

以上です。

【Linux】 ローカル環境にワードプレスをインストールするためにApacheとPHPを導入する

はじめに

「Apache」と「PHP」 のインストール手順について解説していきます。

インターネットの繋がっていない環境でワードプレスを操作したいと思い、この手順について調べていたところ、「Apache」と「PHP」をインストールしなければならないことがわかりました。

というのは、先人たちの記事中で「etc/httpd」や「var/www」という記載があったのに、自分のハードディスクの中にはその両方ともなかったからである。そして、これらのディレクトリがあるという前提で解説が進むのです。

最終的な目標は、自宅でサーバを構築することではなく、自分のPC上のみでワードプレスを起動させることです。

というわけで、まず「Apache」をインストールします。

MySQL についてはこちら

FTP についてはこちら

httpdパッケージの確認

Apacheは通常、httpdという名前でパッケージ化されています。CentOSでは、yumというコマンドでパッケージの導入を行います。ここではhttpdパッケージの詳細について確認の方法を記載します。

まずはCentOSに含まれるhttpdと名前の付くパッケージのリストを確認します。
パッケージリストの確認は、yumコマンドにオプションのlistを付けて実行します。
そのまま実行すると、全てのパッケージリストが表示されますので、抽出用コマンドのgrepでhttpd文字列が含まれるものだけを抜き出します。

$ yum list | grep httpd
httpd.x86_64 2.4.6-88.el7.centos base
httpd-devel.x86_64 2.4.6-88.el7.centos base
httpd-manual.noarch 2.4.6-88.el7.centos base
httpd-tools.x86_64 2.4.6-88.el7.centos base
keycloak-httpd-client-install.noarch 0.6-3.el7 base
libmicrohttpd.i686 0.9.33-2.el7 base
libmicrohttpd.x86_64 0.9.33-2.el7 base
libmicrohttpd-devel.i686 0.9.33-2.el7 base
libmicrohttpd-devel.x86_64 0.9.33-2.el7 base
libmicrohttpd-doc.noarch 0.9.33-2.el7 base
python2-keycloak-httpd-client-install.noarch
上記の出力結果からわかるように、httpdの名前の付くパッケージは複数あります。
この中でウェブサーバーの導入に関連するものは

httpd.x86_64 2.4.6-88.el7.centos base
httpd-devel.x86_64 2.4.6-88.el7.centos base
httpd-manual.noarch 2.4.6-88.el7.centos base
httpd-tools.x86_64 2.4.6-88.el7.centos base

の4パッケージになります。各パッケージは以下のような機能が含まれています。

httpd.x86_64 (httpdウェブサーバー本体)
httpd-devel.x86_64 (httpdに関連する開発ツール、モジュールなどのパッケージ)
httpd-manual.noarch (httpdのマニュアル)
httpd-tools.x86_64 (httpdに関連するツール群)

ここでは、この4パッケージをインストールします。

yumコマンドによるhttpdのインストール

yum -y install httpd httpd-tools httpd-devel httpd-manual

以下、ファイル容量。

Total download size: 6.0 M
Installed size: 22 M

httpdインストール後の確認

httpdがインストールされたことを確認します。インストールされているパッケージはyumコマンドで確認できます。以下のようにyumを実行することで、httpdパッケージがインストールされていることを確認します。

$ yum list installed | grep httpd

出力結果として、以下の4パッケージが表示されることを確認します。

httpd.x86_64 2.4.6-67.el7.centos.6 @updates
httpd-devel.x86_64 2.4.6-67.el7.centos.6 @updates
httpd-manual.noarch 2.4.6-67.el7.centos.6 @updates
httpd-tools.x86_64 2.4.6-67.el7.centos.6 @updates

この時点で/etcの中に「httpd」が、さらに/varの中に「www」が作成されます。

続いてhttpdがインストールされた場所を確認します。インストールされた場所(パス)を確認するためにはwhichコマンドを利用します。
以下のように実行することでインストールパスを確認できます。

$ which httpd
/usr/sbin/httpd

この結果から、httpdが/usr/sbin以下にインストールされたことが確認できます。
これでhttpdのインストールが正常に終了したことが確認できました。

httpd起動の確認

ここまででhttpdのインストールと確認が完了しましたので、続いてインストールしたhttpdが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。httpdは以下のように実行することで起動できます。

$ systemctl start httpd

systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。

$ systemctl status httpd

● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-02-11 15:20:20 JST; 36s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 16851 (httpd)
Status: “Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”
Tasks: 6
CGroup: /system.slice/httpd.service
├─16851 /usr/sbin/httpd -DFOREGROUND
├─16855 /usr/sbin/httpd -DFOREGROUND
├─16856 /usr/sbin/httpd -DFOREGROUND
├─16857 /usr/sbin/httpd -DFOREGROUND
├─16858 /usr/sbin/httpd -DFOREGROUND
└─16859 /usr/sbin/httpd -DFOREGROUND

Feb 11 15:20:20 0C-5B-8F-27-9A-64 systemd[1]: Starting The Apache HTTP Server…
Feb 11 15:20:20 0C-5B-8F-27-9A-64 httpd[16851]: AH00558: httpd: Could not re…e
Feb 11 15:20:20 0C-5B-8F-27-9A-64 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

上記では分かり難いかもしれませんが、黒丸(●)の部分が正常な起動状態の場合、緑色で表示されます。

また、稼働しているプロセスを表示するpsコマンドでもhttpdが起動していることを確認できます。
以下のように実行します。

$ ps -aux | grep httpd

root 16851 0.0 0.1 230356 5080 ? Ss 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16855 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16856 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16857 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16858 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16859 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND

以上の結果から、httpdが正常に起動することが確認できました。

httpd自動起動の設定

サーバーの再起動や停止の復旧時に、httpdが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。

$ systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/systemd/system/httpd.service.

エラーが出力されなければ、自動起動は設定が完了しています。

続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。

$ systemctl list-unit-files | grep httpd
httpd.service enabled

httpdの設定

httpd.confの変更

httpdの設定は/etc/httpd/conf以下にあるhttpd.confで行います。
httpd.confの編集前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

# cd /etc/httpd/conf

# cp -p httpd.conf httpd.conf.org

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

# vi httpd.conf

DocumentRootをWordPressのディレクトリに変更します。

DocumentRoot “/var/www/html”

上記のDocumentRoot “/var/www/html”の”/var/www/html”を “/home/www/wordpress” に変更します。

以下のように修正します。「AllowOverride All」

#.htaccessによるディレクティブの上書きを許可する 

AllowOverride All

最終行に追記します。(PHP通信のために必要です。)
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>

Apacheテストページの撤去のため修正

$ sudo vi /etc/httpd/conf.d/welcome.conf

「#」を使用して、すべてコメントアウトします。

php をインストール

以下、コマンドです。

$ sudo yum install php

Total download size: 4.1 M
Installed size: 13 M

WordPressを公式サイトからダウンロード

WordPressを http://ja.wordpress.org/releases/ からダウンロードする。

tar コマンドで展開し、Apacheが読み込めるようにする

$ tar zxvf wordpress-5.0.3-ja.tar.gz

ファイルをApacheで扱えるディレクトリに配置する

「wordpress」ディレクトリを作成します。

$ sudo cp -r wordpress /var/www/

パーミッション設定

$ ps aux | grep apache で確認可能。

権限を変更

$ sudo chown -R root:root /var/www/wordpress

Apache再起動で設定反映

systemctl restart httpd

「Apache」「PHP」については以上です。

次は、MySQLをインストールします。

【Linux】ポート番号から使用しているプログラムを表示する

lsof コマンド

lsof -i:ポート番号
自分以外のプロセスに関しても調べる場合は、管理者権限で行う。

例)
80番のポートを調べる。

lsof -i:80

外部からどのポートが空いているかを確認するには、
Linux環境ではnmapコマンドを使用したポートスキャンを実施します。

nmapコマンド

外部からポートがどのポートが開いているか確認したいときに使用します。

nmap 150.XXX.XXX.XXX

入ってなければインストールする。以下、コマンド。

# yum install nmap