初めてのLAMP環境構築(Linux)


インフラ周りにうとうと(疎疎)な私ですが、
克服の為LAMP環境を構築してみたのでその備忘録です。

【環境】
・さくらのVPSで借りた2週間お試しサーバー
・CentOS8
・MariaDB
・PHP

【注意】
勉強のために構築した環境なので、本番等で運営できるセキュリティレベルではないと思います。

LAMPって?

LINUX  OS
Apache Webサーバ
MySQL/MariaDB データベース
PHP,Perl プログラム
のハッピーセット。

動的サイトを作り出す古典の体型のようなもの。

Apache

Apacheをインストール!

大人気のWebサーバーApacheを使います。
https://httpd.apache.org/

下記のコマンドでインストールします。

$ sudo yum -y install httpd

Apacheの設定ファイルは /etc/httpd/conf/httpd.conf です。
このファイルを見ると、 設定項目名 設定値 の書式で設定ファイルが書かれていることがわかります。
"#" で始まっているものはコメントアウトされています。

下記でServerNameの項目を編集してみましょう。
これはWebサーバー名を設定するための項目です。

$ sudo vim /etc/httpd/conf/httpd.conf

ServerNameはコメントアウトされているので、 "#" を削除して有効化します。
基本的にここはホスト名を記述するようです。

ServerName www.example.com:80

作業ができたら、構文チェックを下記のコマンドで行います。

$ httpd -t

Syntax OKならば大丈夫です。
失敗しているとエラーメッセージが出てくるので、それを参考に修正を行います。

Apacheの起動設定

$ sudo systemctl start httpd.service
$ sudo systemctl enable httpd.service

startで起動、enableでシステム起動時に自動起動するよう設定するコマンドになります。

Apache初期設定

まずファイヤウォールを設定します。初期では80番へのアクセスが許可されていません。

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --reload

上記コマンドで設定後リロードが完了します。

http://VPSのIPアドレス/ で、Apache初期のページを開くことができます。

。。。。私はここで開かず大苦戦しました。さくらのVPSの人はご注意です。
さくらのVPSにはデフォルトで「パケットフィルタ」なるサービスが実施されています。
こちらで80番を許可しないと、ファイヤウォールでの設定が許可されていても弾かれます。

こちらのコントロールパネルログイン後、パケットフィルタのタブをクリックし
接続許可ポートを追記してください。こちらの説明がわかりやすかったです。
https://vps-news.sakura.ad.jp/vps-pf/

初期ページが問題なく表示されたら、色々htmlを配置していじってみてください。
/var/www/html直下にhtmlを配置すると、ルーティングにしたがって閲覧可能になります。

MariaDB

MariaDBのインストール

次はデータベースになります。

$ sudo yum -y install mariadb-server mariadb

上記によってmariaDBに必要なもの一式がダウンロードできます。
次は設定ファイルを編集し、日本語が扱えるようにします。

$sudo vim /etc/my-cnf
datadir=/var/lib/nysql
socket=/var/lib/mysql/mysql.sock

冒頭に上記のような記述があるので、直後に以下を追記してください。

character-set-server=utf8

MariaDBの起動設定

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

Apacheの時と同様、自動で起動するようにも設定します。

MariaDB初期設定

MariaDBは初期設定用の対話式コマンドが標準で用意されています。

$ sudo mysql_secure_installation

基本的にyで答えていいですが、
途中 New password: とパスワードの設定を求められるので、
管理者パスワードにしたい文字列を入力してください。

PHP

次はプログラミング言語であるPHPをインストールです。

sudo -y install php php-mbstring php-gd php-mysql

なにやらいっぱいありますので、ざっくりまとめます。
- php ・・・PHP本体
- php-mbstring ・・・日本語などのマルチバイトに対応するためのパッケージ
- php-gd ・・・画像ライブラリを扱うためのパッケージ
- php-mysql ・・・MySQL/MariaDBと連携するためのパッケージ

下記を打ってバージョンが出てきたら無事インストールできています。

$ php -v

また、ApacheとPHPを連携するために一度Apacheを再起動する必要があります。

$ sudo systemctl restart httpd.service

php動作確認

PHPが無事動いているか確認するため、下記のコマンドでファイルを作成・編集します。

sudo vim /var/www/html/test.php
test.php
<?php echo phpinfo(); ?>

ウェブで http://VPSのIPアドレス/test.phpにアクセスして、
無事PHPの情報が出たらOKです。確認が終わったらセキュリティのためにtest.phpは削除してください。

wordpressのためのDB下準備

まずはMariaDBに接続します。

$ mysql -u root -p

パスワードを聞かれますので、mysql_secure_installationコマンド実行時に設定した
パスワードを入力します。

データベース操作が可能になったら、SQL言語を使用してデータベース・ユーザを作成します。

CREATE DATABASE db;

上記で「db」というデータベースを作成します。

GRANT ALL PRIVILEGES ON db.* TO "dbuser"@"localhost" IDENTIFIED BY "jfei0a3laas";

上記で「dbuser」というユーザー、「jfei0a3laas」というパスワードを設定します。これらは任意です。

FLUSH PRIVILEGES;

上記で権限テーブルをリロードします。

コマンド入力成功時は Query OK が出ます。
上記全て入力し終えたら exitを入力してMariaDBを出ます。

Wordpressを配置

最後にwordpressをインストールします。

$ curl -LO http://ja.wordpress.org/latest-ja.tar.gz

インストールしたtar.gzデータを解凍・展開します。

$ tar zxf latest-ja.tar.gz

インストールしたこれらを、 /var/www/htmlに移動して
閲覧可能にします。

$ sudo mv wordpress /var/www/html

下記コマンドで、権利者を設定します。 -Rオプションにより、
wordpress以下にあるファイルも一括で権利者を変更できます。

$ sudo chown -R apache:apache /var/www/html/wordpress

下記で、wp-configを雛形から生成します。


$ cd /var/www/html
$ sudo mv wp-config-sample.php wp-config.php

wp-configを編集します。

$ sudo vim wp-config.php

変更箇所は以下三点です。

データベース名
define('DB_NAME', ' /* ここに記入 */’);

ユーザー名
define('DB_USER', '/* ここに記入 */');

パスワード
define('DB_HOST', '/* ここに記入 */');

本来はセキュリティ的によくないですが、
勉強用のためSELinuxを無効にします。(有効だとWordpressが動きません)

sudo setenforce 0

wordpressを配置したルートにアクセスすると、おなじみのwordpress画面が飛び出してくるかと思います。やったね!

参考にさせていただいたもの

ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方 著: 中島 能和

パケットフィルタ の利用方法
lamp環境って何?lamp環境を構築するメリット
Mysql関係の備忘録 Qiita