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

以上です。

テーマが一瞬表示されて消える。ローカルワードプレスがテーマを読み込まないというトラブル

ワードプレスを自宅のローカルPCにインストールして、ダッシュボードは正常に表示されるのですが、ブログが正常に表示されないというトラブルが発生しました。テーマを読み込まないのです。デフォルトで入っているどんなテーマを選択しても読み込みませんでした。

ダッシュボードの画面から「テーマエディター」を選択し、スタイルシートを表示しようとすると、一瞬だけ文字が表示されて、すぐに消えてしまうという状態です。

PHPのバージョンを最新に更新すると、PHPのコードが表示され、

画面に下の文字が出ました。(エラー画面です。)

<?php
/**
*Front to the WordPress application. This file doesn’t do anything, but loads
*wp-blog-header.php which does and tells WordPress to load the theme.
*
*@package WordPress
*/

/**
*Tells WordPress to load the WordPress theme and output it.
*
*@var bool
*/
define( ‘WP_USE_THEMES’, true );

/** Loads the WordPress Environment and Template */
require( dirname( FILE ) . ‘/wp-blog-header.php’ );


対処法

まず、やったのは、「wp-config.php」を編集することです。

ファイルの末尾に

define( ‘WP_USE_THEMES’, true );

を追加しました。{テーマを使うという意味です。)

すると、サイトの画面がPHPのコードから、元の無愛想なテーマが反映されていない状態の画面に戻りました。

外国語のサイトによると、次のようにするとよいと書いてありました。

wp-config.php

このファイルのうちの

define(‘WP_DEBUG’, false);

を編集します。(デバッグが「無効」になっているのを「有効」にするのです。)

define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, true);
@ini_set(‘display_errors’,1);

以上のようにすると、テーマが読み込まれました。しかし、依然として、ダッシュボード画面から「テーマエディター」を選択すると、コードが一瞬表示されてすぐに消える状態です。

以上です。

PHPのバージョンを「7.1」に更新する手順

アプリケーションを使用していて、「PHPのバージョンが古い」と表示されました。なので更新することにしました。環境は「CentOS7」です。

「PHP7。1」にバージョンアップします。

使用中のPHPを削除

まず、PHPをバージョンアップする前に、現在インストールされているPHPを全て削除します。

$ sudo yum remove php-*

(以下、インストールされていたPHP。)
php x86_64 5.4.16-46.el7 @base 4.4 M
php-cli x86_64 5.4.16-46.el7 @base 8.8 M
php-common x86_64 5.4.16-46.el7 @base 3.8 M
php-fpm x86_64 5.4.16-46.el7 @base 4.5 M
php-gd x86_64 5.4.16-46.el7 @base 343 k
php-mbstring x86_64 5.4.16-46.el7 @base 1.3 M
php-mysql x86_64 5.4.16-46.el7 @base 232 k
php-pdo x86_64 5.4.16-46.el7 @base 193 k
php-pear noarch 1:1.9.4-21.el7 @base 2.2 M
php-process x86_64 5.4.16-46.el7 @base 79 k
php-xml x86_64 5.4.16-46.el7 @base 325 k

リポジトリを作成します。

$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

PHPをインストールします。

(必要に応じてインストールするソフトは異なってくるかと思います。)

$ sudo yum -y install –enablerepo=remi-php71 php php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-pear php-pecl-apcu php-soap php-xml php-xmlrpc

バージョンを確認します。

$ php -v

適用させます。

$ systemctl restart httpd

以上です。

ワードプレスの更新時、FTPの「ユーザ名」「パスワード」の入力をパスする方法

ダッシュボードの画面からワードプレスを更新しようとして、FTPの「ユーザ名」や「パスワード」を求められることがあります。

しかし、そんなものを設定した覚えがない時には、入力しようがありませんよね。

この入力をパスする方法はあります。

(以下は、エラーです。)

Error: There was an error connecting to the server, Please verify the settings are correct.

対処法

設定ファイルである「wp-config.php」 に以下を追加しましょう。ファイルの一番下で構いません。

define( ‘FS_METHOD’, ‘direct’ );

すると、「ユーザ名」「パスワード」を入力することなく、ダウンロードが始まります。

以上です。

ワードプレスを更新(インストール)できない。パーミッションが原因です。

ワードプレスを更新しようとして、

いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。: wp-admin/includes/update-core.php

というエラーが表示された時には、パーミッションの設定がうまくいっていないことが考えられます。

ファイル(ディレクトリ以下)の権限を変更する

ワードプレスのディレクトリである「wordpress」以下の権限を変更しましょう。

# chmod -R 755 wordpress

これで、うまくいくはずです。

SELINUXの設定を変更する

しかし、これでうまくいかない場合は、「SELINUX」の設定を変更します。

まず、SELinuxの設定を確認します。
$ getenforce
Enforcing

enforcing:SELINUXは有効、アクセス制限も有効。
permissive:SELINUXは有効、アクセス制限は行わず警告を出力。
disabled:SELINUXは無効

ということで、有効になっていますから、

SELinuxの設定を変更します。
$ setenforce 0

SELinuxの設定を確認します。
$ getenforce
Permissive
{↑ 成功です。)

永続的に設定を有効にしておくために、以下の設定ファイルを編集します。

/etc/selinux/config

「Enforcing」→「permissive」に変更します。
SELINUX=Permissive

以上です。

ワードプレスの更新に失敗する「error 28」タイムアウトする場合の解決方法

ワードプレスを更新しようとして、次のようなエラーが表示された場合、原因は「時間がかかりすぎ」ということです。

cURL error 28: Operation timed out after 300000 milliseconds with 7047772 out of 12170142 bytes received

(↑ 私の画面には上のように表示されました。)

私の場合、自宅のインターネット回線が低速なので、失敗したのです。

対処法

「wordpress」以下にある次のファイルを、修正します。

wordpress/wp-admin/includes/file.php

このファイ内の「300」という値を
function download_url( $url, $timeout = 300 ) {

「5000」にします。
function download_url( $url, $timeout = 10000 ) {

そうすると、ダウンロードが完了します。

ところで、「5000」ですと、1時間23分は、タイムアウトしません。自分の通信環境に適した値を入力してみてください。

以上です。

関連記事

ダウンロードは成功するものの、インストールできない時の対処法

FTPの「ユーザ名」「パスワード」の入力を求められる時の対処法

ワードプレス、FTPの設定

WordPressのインストールが完了 しても、のテーマやプラグインのインストール・アップデートをする際に、FTPサーバが必要です。なので、CentOSのサーバに vsftpd でFTPサーバを構築します。

vsftpdのインストール


sudo yum install vsftpd

以下、ファイル容量。
Total download size: 171 k
Installed size: 353 k

設定ファイルの修正

sudo vim /etc/vsftpd/vsftpd.conf

匿名利用禁止にするためNOに変更

anonymous_enable=NO

アスキーモードで利用できるよう、コメントアウトを外す

ascii_upload_enable=YES
ascii_download_enable=YES

ディレクトリより上層へ行けるユーザーを制御できるよう、コメントアウトを外す

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリ単位での一括転送を許可するため、コメントアウトを外す

ls_recurse_enable=YES

ホームディレクトリを/var/www/public_htmlに設定し、wwwより上層には行けないよう設定するために追記

local_root=public_html

タイムスタンプを日本時間に設定するために追記

use_localtime=YES 

上層アクセスユーザーリストを作成し、自分のアカウントのみ追記する
$ sudo vim /etc/vsftpd/chroot_list

user1

vsftpd起動

$ systemctl start vsftpd

自動起動設定

自動起動ON

$ chkconfig vsftpd on

自動起動設定確認

$ systemctl is-enabled vsftpd
enabled

SSL/TSLの設定

設定ファイルの修正

certsディレクトリへ移動

cd /etc/pki/tls/certs/

サーバ証明書の作成

sudo openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem

password for user1:
Generating a 1024 bit RSA private key
.++++++
………….++++++

writing new private key to ‘/etc/pki/tls/certs/vsftpd.pem’

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,

If you enter ‘.’, the field will be left blank.

サーバの所在国を入力
Country Name (2 letter code) [XX]:JP

都道府県を入力
State or Province Name (full name) []:Tokyo 

市区町村を入力
Locality Name (eg, city) [Default City]: 

組織名を入力 
Organization Name (eg, company) [Default Company Ltd]:

部署名を入力
Organizational Unit Name (eg, section) []:

ホスト名を入力
Common Name (eg, your name or your server’s hostname) []:

メールアドレスを入力
Email Address []:

設定ファイルのパーミッション変更
sudo chmod 600 vsftpd.pem

vsftpdファイルの設定追加

vsftpdの設定ファイルに追加
sudo vim /etc/vsftpd/vsftpd.conf

サーバ証明書を指定 
# rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

SSL有効化
ssl_enable=YES

通信のSSL使用を強制しない
force_local_data_ssl=NO

ユーザー認証のSSL使用を強制しない
force_local_logins_ssl=NO

再起動して設定反映
$ systemctl restart vsftpd

以上です。