インフラ周りにうとうと(疎疎)な私ですが、
克服の為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
<?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画面が飛び出してくるかと思います。やったね!