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の設定

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

以上です。

MySQLの設定、ローカル環境にWordPressをインストールする手順

MySQLをインストール

最終的な目標は、自宅のローカル環境でワードプレスを操作することです。

「Apache」「PHP」についてはこちら

「FTP」についてはこちら

MySQL公式サイトからリポジトリをダウンロード

以下、公式サイト
https://dev.mysql.com

今回ダウンロードしたファイルは次の通り。

mysql80-community-release-el7-2.noarch.rpm

ダウンロードしたファイルのあるディレクトリへ移動し、yum localinstall 。

$ sudo yum localinstall mysql80-community-release-el7-2.noarch.rpm

mysql80-community-release-el7-2.noarch.rpm

以下、ファイル容量。

Total size: 31 k
Installed size: 31 k

MySQLインストール

$ sudo yum install mysql-server

以下、ファイル容量。
Total download size: 391 M

mysqlデーモンの起動

$ service mysqld start

WordPressに必要なPHP拡張をインストール

$ sudo yum install php-mysql php-mbstring

以下、ファイル容量。
Total download size: 1.3 M
Installed size: 5.6 M

Apacheを再起動する

$ service httpd restart

MySQLを起動する

$ sudo systemctl start mysqld.service

状態を確認

$ sudo systemctl status mysqld.service

Active (running) になっていることを確認。

自動起動の設定を行う

$ sudo systemctl enable mysqld.service

もしくは、次の手順でMySQLが起動しているかを確認します。

mysqladmin -u root -p ping

aliveになっていることを確認

mysqld is alive

MySQL内にワードプレス用のデータを作成

MySQL の初期パスワード確認

初回起動時に初期パスワードが生成されるので、ログファイルから生成されたパスワードを確認する必要があります。

cat /var/log/mysqld.log | grep password

2019-02-11T23:08:24.939057Z 5 [Note] A temporary password is generated for root@localhost: M3OrkpXcs!oq

今回の場合、「M3OrkpXcs!oq」がパスワードです。

mysql_secure_installation コマンドを実行して、MySQL のセキュリティ設定を行っていきます。

対話形式なので、比較的簡単に最低限必要と考えられるセキュリティの設定ができます。

$ mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: # ログファイルから取得した初期パスワードを入力します

The existing password for the user account root has expired. Please set a new password.

New password: # root ユーザの新規パスワードを入力します

Re-enter new password: # 確認用にもう一度入力します
The ‘validate_password’ plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y # 匿名ユーザーアカウントを削除
Success.

Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y # ローカルホスト以外からアクセス可能な root アカウントを削除
Success.

By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y # test データベースの削除

Dropping test database…
Success.

Removing privileges on test database…
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

MySQL へのログイン確認

さきほど設定した新しいパスワードでログインできるかどうか確認します。

$ mysql -u root -p
Enter password: # 新しいパスワードを入力

(再度パスワードを変更したい場合)

パスワードの長さは、8字以上64文字以下です。
10字前後では記号を含めないとエラーになります。

mysql> update mysql.user set password=password(‘root用の任意パスワード’) where user = ‘root’;
Query OK, 4 rows affected (0.05 sec)
Rows matched: 4 Changed: 4 Warnings: 0

データベースを確認

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec)

ワードプレス用のデータベースを作成

mysql> create database 【データベース名】;
Query OK, 1 row affected (0.00 sec)

ワードプレス用のユーザーを作成

musql> create user ‘【ユーザー名】’@’localhost’ identified with mysql_native_password by ‘【パスワード】’;

mysql> grant all privileges on 【データベース名】 . * to ‘【ユーザ名】’@’localhost’;
Query OK, 0 rows affected (0.00 sec)

(ユーザーを表示したいときは、以下のコマンドを入力します。)

mysql> select user from mysql.user;

(権限を表示したいときは、以下のコマンドを入力します。)

mysql> show grants for ‘【ユーザー名】’@’localhost’;

mysql> exit;
Bye

ワードプレスの初期設定

wp-conf.phpファイルを作成

wordpressディレクトリ内にwp-conf.phpを作成します。このファイルには、ユーザーがワードプレスにログインしMySQL内にあるデータを編集するために必要な情報が入ります。

まず、wordpressディレクトリの内に入っているwp-config-sample.phpをコピーし、wp-config.phpを作成します。

cd /var/www/wordpress/

cp wp-config-sample.php wp-config.php

続いて、wp-config.phpを編集します。

vi wp-config.php

編集する部分は以下。先程、MySQLにて作成した【データベース名】【ユーザ名】【パスワード】を入力します。

define(‘DB_NAME’, ‘【データベース名】’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘【ユーザー名】’);

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘【パスワード】’);

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘localhost’); # 変更しません。

また、この箇所より進んだところに、認証用ユニークキーを入力する所があります。自分で作成しても構いませんが、公式サイトの秘密鍵作成サービスを利用しましょう。作成して貼り付けます。
秘密鍵作成ページ

「wp-config.php」作成については以上です。

WordPressをインストール

WordPressを配置したパスをブラウザから確認します。
ローカル環境のIPアドレスを「ip addr show」コマンドで調べます。

inet 127.0.0.1

と表示されました。ブラウザのURLを入力するところへ次のように入力します。

127.0.0.1

すると、wordpressのインストール画面が表示されます。

「ブログのタイトル」「ユーザー名」「パスワード」「メールアドレス」を入力し、インストールを開始します。

MySQLについては以上です。

次は、FTPサーバの設定を行います。

ローカル環境でMySQLとPHPの通信がうまくいかず、データベース接続確立エラーと表示される

ワードプレスのwp-config.phpにきちんとデータを入力したにもかかわらず、ブラウザに「データベース接続確立エラー」と表示されました。

そこでPHPファイルを作成し、MySQLと通信ができているか簡単にテストしたところ、パスワードで弾かれていることがわかりました。

原因を探すとMySQL 8では パスワードがデフォルトで暗号化されるので(cache_sha2_password) プログラムから接続する場合もこれに対応していないと接続ができないとのこと。

対処法

MySQL側で以下の用に対応しました。

vi /etc/my.cnf

[mysqld] 直下に以下を追記します。

default_authentication_plugin= mysql_native_password

次のようになります。

[mysqld]
default_authentication_plugin= mysql_native_password

mysqldを再起動します。

$ systemctl restart mysqld

こうした上でユーザを作成し、wp-config.phpを編集すると、ワードプレスのインストール画面に接続できました。

もしくは CREATE USER 時に IDENTIFIED WITH mysql_native_password BY ‘password’ を使用して パスワードを設定しても上手くいきます。

CentOS で C/C++言語を使う方法

C/C++をCentOS上で使えるようにするため、開発環境ツール「gcc」と「g++」をインストールします。
だいたい普通にCentOSをインストールしておけば、デフォルトで入っているツールです。今回は、この開発ツールのインストールと、使い方を紹介します。

それでは、それぞれの開発ツールのインストール方法を紹介します。

コンパイラ(gcc)をインストールする

  • Cの場合

以下のコマンドで、コンパイラが入っているか確認。

$ sudo yum list | grep gcc

入っていない場合は、インストールする。以下、コマンド。

$ sudo yum install gcc

以下、ファイル容量。

Total download size: 32 M
Installed size: 59 M

  • C++の場合

$ sudo yum list | grep gcc-c++

$sudo yum install gcc-c++

コンパイルと実行手順

C言語をCentOS上で動かす為には「コンパイル」が必要です。
コンパイルっていうのはC言語を動かす為にそれぞれの環境へ「翻訳」してくれているような機能。

  • Cの場合

#include <studio.h>

main()
{
printf(“Hello World C !\n”);
return 0;
}

「コンパイル」実行

$ gcc hello.c -o sample_c

プログラム実行

$ ./sample_c

(画面)Hello World C !

  • C++の場合

#include <iostream>

using namespace std;

int main()
{
cout << “Hello World! C++” << endl;
return 0;
}

「コンパイル」実行

$ g++ hello.cc -o sample_c++

プログラム実行

$ ./sample_c++

(画面)Hello World! C++

以上です。

CentOSに CD/DVD ライティングソフト「K3b」をインストールする手順

Linux を使っていると、今使用しているディストリビューションとは異なるOSを使いたくなることもあるでしょう。そのときに、自分が今使っているOSにデータを焼くためのソフトがなければ、ISOファイルをCDやDVDに移すことはできません。Linux を最小構成(minimal)でインストールしたなら、なおさらライティングソフトがほしいところです。

今回は「K3b」というフリーソフトをインストールします。GUI環境で動作します。

以前は、「imgBurn」(Windows/Linux対応)というソフトを使っていた。このソフトでも問題なくISOファイルをディスクに焼くことはできます。

データ容量

「K3b」のデータ容量は、以下の通りです。

Total download size: 76 M
Installed size: 191 M

特徴

「K3b(KDE Burn Baby Burn)」は、オープンソースのアプリケーションでLinux用。オーディオCD、データディスク、ディスクイメージの書き込みや、ディスクのコピーができます。映画ファンにお勧めの「K3b」の機能は、あなたが持っているDVDをハードドライブへコピーできます。フォーマットは、DivXでもXvidでも可能です。Linuxユーザーなら、ディスク書き込みのオプションとして「K3b」がお勧めです。

081202k3b.jpg

インストールするためのコマンド

yum コマンドでインストール。以下、コマンド。

$ sudo yum install k3b

以上です。

CentOS7(minimal)Google chromeを yum コマンドでインストールする手順

現在はFireFox を使っているが、最新のバージョンにアップデートしたい。失敗した時のために別のブラウザ「Google Chrome」をインストールする。

# リポジトリファイルを作成

vi /etc/yum.repos.d/google.chrome.repo

# 以下の内容を記入して保存
google.chrome.repo

name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

# 情報を反映

$ yum update

(↑全てをアップデートするので完了までに時間がかかる。)

# yum コマンドでインストールする。

$ yum install google-chrome-stable

以下、ファイル容量。
Total download size: 55 M
Installed size: 196 M

以上。

CentOS7(Minimal)にLibreOfice_6.1.4_Linuxをインストールする手順

# LibreOficeを開発している公式サイトにアクセスする。https://ja.libreoffice.org/download/libreoffice

# 自分のOSに適したバージョンをダウンロードする。(自動的に選択されている。)
私がダウンロードしたのは、以下のバージョン。
LibreOffice_6.1.4_Linux_x86-64_rpm.tar.gz

# 圧縮ファイルの容量は217MB。低速回線なので、「ダウンロード完了まで3時間かかる」とブラウザに表示される。仕方なく、3時間待つ。

# tar.gzファイルを展開
$ sudo tar zxvf LibreOffice_6.1.4_Linux_x86-64_rpm.tar.gz
→ 下は展開されたファイルLibreOffice_6.1.4.2_Linux_x86-64_rpm

# RPMSファイルに移動
$ cd RPMS/

# RPMSフォルダ内の .rpmファイルを全てインストール
$ sudo rpm -Uvh *.rpm

以下の文字が表示される。
mkdir: cannot create directory ‘/usr/share/icons/hicolor/icon-theme.cache’: Not a directory
mkdir: cannot create directory ‘/usr/share/icons/hicolor/index.theme’: Not a directory
/bin/gtk-update-icon-cache
/bin/gtk-update-icon-cache
/bin/update-desktop-database
/bin/update-desktop-database
(icon-theme.cacheとindex.themeのフォルダ作成に失敗。インストールは成功。

# 起動確認
デスクトップ画面のアプリケーション、Officeにある。LibreOffice Writer を起動する。

# 日本語パッケージをダウンロード
再度、公式サイトにアクセス。
https://ja.libreoffice.org/download/libreoffice/

私がダウンロードしたのは、以下のファイル。
LibreOffice_6.1.4_Linux_x86-64_rpm_langpack_ja.tar.gz

# 圧縮ファイルを展開
$ sudo tar zxvf LibreOffice_6.1.4_Linux_x86-64_rpm_langpack_ja.tar.gz
以下、展開されたファイル
LibreOffice_6.1.4.2_Linux_x86-64_rpm_langpack_ja

# RPMSフォルダに移動
$ cd RPMS/

# RPMSフォルダ内の .rpmファイルをすべてインストール
$ sudo rpm -Uvh *.rpm

# 言語を日本語に設定する
LibreOffice Writerを起動し、画面上の「Tool」→「Language」で設定を「Japanese」に変更。

以上。