PowerCMS X のサーバー作成からインストールまで
PowerCMS X を試用してみたい方に設定の流れを作ってみました。
安価なさくらのVPSを利用すれば(2週間のお試し期間があります)、とてもお手軽です。気に入って利用を続けても月額費用が安いので、安心して利用ができます。 PowerCMS X の評価版は問い合わせフォームから申し込みをしてください。「お問い合わせ種別」に「評価版のお申込み」のチェックを入れて送信してください。
※ 本記事は取りあえず PowerCMS X が動作すれば良いという視点で書いていますので、サーバーセキュリティや PowerCMS X の各種設定については考慮していません。トラブルが起きても一切の保証はできないので自己責任でお願いします。
サーバーの作成
最初にサーバーの作成からスタートします。さくらのVPSでサーバーを作りましょう。サーバーの設定から開始できると思います。(先にさくらの会員IDを発行してログインしておく必要があります。)
512MBプランは横スクロールで隠れているので気をつけてください。
Rocky Linux 9
512MBプラン
月額 671円
CPU仮想 1Core
メモリ 512MB
SSD 25GB
リージョン 大阪第3
「管理ユーザーのパスワード」を設定して「お支払い選択へ」進みます。
次の画面で「2週間お試し」を選択して内容に問題がなければ「お支払いを確定する」ボタンをクリックします。
申込みが完了すると、「サーバー一覧」画面に進みますが、サーバーはすぐにできないので、数分待つとリストに表示されます。
名前の箇所をクリックして、サーバー詳細を表示します。
「電源操作」から「起動する」を選ぶとサーバーが起動します。
「パケットフィルター設定」タブをクリックして、「パケットフィルターを設定」ボタンをクリックします。
「パケットフィルター設定を追加する」ボタンをクリックするとポートの設定ができますので、下記キャプチャのようにWebとメール設定をします。
最後に「設定を保存する」ボタンを押しましょう。
「基本情報」タブの中に「ホスト名」の情報がありますので、これがウェブのアドレスであり、SSHの接続先になります。
例 os3-123-12345.vs.sakura.ne.jp
PCでコンソールソフトを起動して、SSHしてみます。パスワードは最初に設定した「管理ユーザーのパスワード」です。
// 例
ssh rocky@os3-123-12345.vs.sakura.ne.jp
管理者になります。
sudo su
コンソールの先頭に「#」が付いたと思います。
Swap の設定
作業中にメモリ不足になるため swap の設定をします。下記はディスク容量から 3GB を割り当てる設定です。
dd if=/dev/zero of=/var/swap bs=1M count=3072
chmod 600 /var/swap
mkswap /var/swap
swapon /var/swap
echo "/var/swap swap swap defaults 0 0" >> /etc/fstab
swap の設定内容は下記の記事を参照してください。
Apache のインストール
Apacheをインストールします。
dnf install httpd
途中に表示されるメッセージは「y」で進みます。
起動と確認をします。
// 起動
systemctl start httpd
// 確認
systemctl status httpd
Active: active (running) と表示されれば成功です。
httpd.conf を開き「.htaccess」有効化します。
vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">の中にある AllowOverride None を All にします。
AllowOverride All
httpd をリスタートします。
systemctl restart httpd
ホスト名(例 http://os3-123-12345.vs.sakura.ne.jp)の情報でウェブブラウザにアクセスできると思います。https ではなく、http でアクセスしてください。「HTTP Server Test Page」が表示されたら成功です。
試しにドキュメントルートにファイルを作成してみましょう。
vi /var/www/html/index.html
中身はなんでもよいです。再度アクセスすると表示されたと思います。確認できたらファイルは削除しておきましょう。
rm -rf /var/www/html/index.html
今後のために html フォルダは apache ユーザーで777 にしましょう。
chown apache: /var/www/html
chmod 777 /var/www/html
自動起動設定をします。
systemctl enable httpd
確認します。enabled と表示されたら成功です。
systemctl is-enabled httpd
結果
enabled
PHPのインストール
dnf -y install php
PHPのバージョンを確認します。
php -v
Rocky Linux 9 は PHP 8.0 がインストールされると思います。それでよければ、読み続けてください。もし、PHP 8.2、8.3 を利用される場合は以下の記事を参考に設定をお願いします。
モジュールをインストールします。
dnf -y install php-mbstring
dnf -y install php-dom
dnf -y install php-libxml
dnf -y install php-pdo
dnf -y install php-json
dnf -y install php-simplexml
dnf -y install php-gd
dnf -y install php-zip
dnf -y install php-mysqli
httpd を再起動して、php を実行できるようにします。
systemctl restart httpd
自動起動設定をします。
systemctl enable php-fpm
確認します。enabled と表示されたら成功です。
systemctl is-enabled php-fpm
結果
enabled
MySQLのインストール
dnf install mysql mysql-server --allowerasing --nobest
バージョンを確認します。
mysql --version
私は mysql Ver 8.0.32 でした。
mysqld を起動して確認します。
// 起動
systemctl start mysqld
// 確認
systemctl status mysqld
Active: active (running) と表示されれば成功です。
続けて root ユーザーのパスワード設定をします。下記のコマンドを実行して対話式で進めて行きます。
mysql_secure_installation
下記のように順番に進めればOKです。「パスワード」と書いてある箇所は「8文字以上 + 数字・アルファベットの大文字と小文字・特殊文字を含む」で設定してください。
「Re-enter new password」入力の後はすべて「y」で進みます。
Press y|Y for Yes, any other key for No:y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:1
New password:パスワード
Re-enter new password:パスワード
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :y
Remove anonymous users? (Press y|Y for Yes, any other key for No) :y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :y
入力を終えると以下のメッセージが表示されます。
Success.
All done!
対話式の内容は「mysql_secure_installation」で検索すれば詳細に記載しているページが見つけられると思います。
自動起動設定をします。
systemctl enable mysqld
確認します。enabled と表示されたら成功です。
systemctl is-enabled mysqld
結果
enabled
Postfix のインストール
以下のコマンドでインストールをします。最後に main.cf を開きます。
dnf -y install postfix
systemctl enable postfix
cp -p /etc/postfix/main.cf /etc/postfix/main.cf.original_bk
vi /etc/postfix/main.cf
設定する箇所です。これらの設定は既にファイル内に存在していて、先頭に「#」が付いていたら削除して有効にします。「ホスト名」の部分は正しい情報を入力してください。(ホスト名の例 os3-123-12345.vs.sakura.ne.jp)
mydomain = ホスト名
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = localhost
mynetworks = localhost
home_mailbox = Maildir/
最後に postfix を restart します。
systemctl restart postfix
自動起動設定をします。
systemctl enable postfix
確認します。enabled と表示されたら成功です。
systemctl is-enabled postfix
結果
enabled
サーバーからメール送信のコマンドを実行することはできますが、おそらく受信できないと思います。hoge.vs.sakura.ne.jp のドメインは SPF レコードの設定がされていないからです。メールを送信させたいなら独自ドメインを取得しましょう。
サーバー証明書の設定
さくらのVPSが提供している「hoge.vs.sakura.ne.jp」でもサーバー証明書の設定が可能です。以下の記事を参考に設定をお願いします。
zip と unzip をインストール
運用で必要になるので、インストールしておきます。
dnf install zip unzip
bind-utils をインストール
コマンドラインから DNS を dig, nslookup, host で調査することがあるので、インストールしておきます。
dnf install bind-utils
インストールが終わると以下のコマンドが利用できます。
例
dig powercmsx.jp
nslookup powercmsx.jp
host powercmsx.jp
ベーシック認証の設定
誰でもウェブサイトにアクセスできる状態になっているので、ベーシック認証を設定しましょう。
vi /var/www/html/.htaccess
サンプルです。
AuthUserFile /var/www/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
パスワードを設定します。あらかじめ、ID/パスワード生成サイトで作っておきましょう。
vi /var/www/.htpasswd
IDが test で、パスワードも test の場合は以下になります。とりあえず何でもよいなら…。
test:OHoErIkOIxX4o
ホスト名の情報でウェブブラウザにアクセスするとベーシック認証が動作したと思います。
phpMyAdminのインストール
phpMyAdmin はGUIでデータベースを操作できるアプリケーションです。
phpMyAdmin サイトにアクセスします。
サイト右上の「Download 5.x.x」ボタンを押下して、「click here」を右クリックして、「リンクのアドレスをコピー」を選択するとダウンロードURLを取得できます。勝手に自身のPCにデータがダウンロードされたら、それは無視してください。
コンソールの作業です。html フォルダに移動します。
cd /var/www/html
curl コマンドで -O オプションとコピーしたURLを繋げて実行します。
curl -O <コピーしたURL>
ダウンロードを確認したらリネームして解凍します。
以下のコマンドはワイルドカードで指定しているので、そのままコピペで使えます。
解凍後は ZIP ファイルを削除して、所有者・グループを設定します。
確認
ll
解凍
unzip phpMyAdmin-*-all-languages.zip
ZIPファイルを削除
rm -f phpMyAdmin-*-all-languages.zip
リネーム
mv phpMyAdmin-*-all-languages phpMyAdmin
所有者・グループを設定
sudo chown -R apache:apache phpMyAdmin
確認
ll
ブラウザで、http://[ホスト名]/phpMyAdmin/index.php にアクセスします。ログイン画面が表示されたら成功です。
ユーザー名は root で、パスワードは MySQL の時に設定した値でログインできます。
PowerCMS X の準備
PowerCMS X のデータをSFTPでアップします。
SFTPはユーザー名「rocky」で、アドレスはホスト名で繋がります。
ホームディレクトリ(/home/rocky)に PowerCMS X のデータをアップします。PowerCMS X ファイルは「PowerCMSX.zip」で進めます。
次に /var/www/html 直下にファイルを移動します。
管理者になります
sudo su
ファイルを移動
mv /home/rocky/PowerCMSX.zip /var/www/html/
html フォルダに移動して、PowerCMS X ファイルを解凍します。
html フォルダに移動
cd /var/www/html
解凍
unzip PowerCMSX.zip
解凍後に zip ファイルを削除
rm -f PowerCMSX.zip
確認
ll
結果
drwxrwxr-x 3 root root 4096 Aug 22 10:41 PowerCMSX
解凍後は PowerCMSX のディレクトリができていますので、全ファイル apache にしましょう。
chown -R apache:apache PowerCMSX
PowerCMSX ディレクトリに移動します。
cd /var/www/html/PowerCMSX
フォルダの中身を確認すると「 powercmsx」フォルダが存在しています。
確認
ll
結果
drwxrwxr-x 19 apache apache 4096 Aug 22 10:36 powercmsx
「 powercmsx」フォルダの中にプログラムファイルを「PowerCMSX」フォルダの直下に移動します。
mv powercmsx/* .
移動したら、「powercmsx」フォルダを削除します。
rmdir powercmsx
「PowerCMSX」の中にプログラムファイルが配置できたと思います。
確認
ll /var/www/html/PowerCMSX/
結果
total 1152
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 alt-tmpl
drwxrwxr-x 2 apache apache 4096 Sep 15 2023 api
drwxrwxr-x 13 apache apache 4096 Sep 15 2023 assets
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 assets_c
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 cache
-rw-rw-r-- 1 apache apache 746356 Aug 22 10:36 class.Prototype.php
-rw-rw-r-- 1 apache apache 957 Jun 18 16:44 config.json-original.json
-rw-rw-r-- 1 apache apache 431 Sep 15 2023 db-config.php-original.php
drwxrwxr-x 2 apache apache 4096 Aug 22 10:40 docs
-rw-rw-r-- 1 apache apache 299772 Sep 15 2023 favicon.ico
-rw-rw-r-- 1 apache apache 291 Jun 18 16:45 _htaccess
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 import
-rw-rw-r-- 1 apache apache 340 Sep 15 2023 index.php
-rw-rw-r-- 1 apache apache 253 Sep 15 2023 info.php
drwxrwxr-x 14 apache apache 4096 Sep 15 2023 lib
drwxrwxr-x 2 apache apache 4096 Aug 6 10:12 locale
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 log
drwxrwxr-x 63 apache apache 4096 Aug 22 10:40 plugins
-rw-rw-r-- 1 apache apache 565 Sep 15 2023 preload.php
-rw-rw-r-- 1 apache apache 32080 Aug 6 10:12 pt-check.php
drwxrwxr-x 2 apache apache 4096 Sep 15 2023 site
drwxrwxr-x 2 apache apache 4096 Aug 22 10:41 support
drwxrwxr-x 5 apache apache 4096 Sep 15 2023 themes
drwxrwxr-x 5 apache apache 4096 Sep 15 2023 theme-static
drwxrwxr-x 8 apache apache 4096 Jun 18 16:45 tmpl
drwxrwxr-x 3 apache apache 4096 Jun 18 16:45 tools
config.json-original.json と db-config.php-original.php をリネームします。
mv config.json-original.json config.json
mv db-config.php-original.php db-config.php
db-config.php を開きます。
vi db-config.php
パスワードの行をデータベースで設定したパスワードに書き換えて保存します。
define( 'PADO_DB_PASSWORD', 'xxxxxxxxxxxx' );
データベースの照合順序を指定します。MySQL 8 なら下記の設定です。
末尾に追記してファイルを保存してください。
define( 'PADO_DB_COLLATION', 'utf8mb4_general_ci' );
php.ini の設定
アップロードできるファイルの最大サイズを大きくするため、php.ini を編集します。max_input_vars の推奨値は2000以上にします。 先頭に ; が付いているので削除しましょう。
vi /etc/php.ini
// 設定箇所
post_max_size 16M
upload_max_filesize 16M
max_input_vars = 2000 ← 先頭の「;」は削除
php-fpm を再起動して修正内容を反映します。
systemctl restart php-fpm
config.json のアクセス拒否設定
PowerCMSX フォルダ内にある config.json へのHTTPアクセスを拒否する設定をします。
sudo vi /etc/httpd/conf/httpd.conf
以下の設定を末尾に追記します。
# PowerCMS X
<Directory /var/www/html/PowerCMSX>
<Files ~ "\.(log|json)$">
Require all denied
</Files>
</Directory>
設定を保存した後、Apache を再起動して変更を反映させます。
systemctl restart httpd
フラッシュ(flush()) の設定
システム出力バッファをフラッシュ(flush())する設定をします。
vi /etc/httpd/conf/httpd.conf
以下の設定を末尾に追記します。
<Proxy unix:/run/php-fpm/www.sock|fcgi://localhost>
ProxySet flushpackets=on flushwait=20
</Proxy>
設定を保存した後、Apache を再起動して変更を反映させます。
systemctl restart httpd
tmp ディレクトリの設定
config.json に環境変数 'temp_dir' に '/tmp' 以外のパスを指定します。
デフォルトは、temp_dir に /tmp が設定されているので、フォルダ /var/www/tmp を作成して設定しましょう。
work_dir も同様の設定で大丈夫です。
フォルダを作成
mkdir /var/www/tmp
chmod 777 /var/www/tmp
編集
vi /var/www/html/PowerCMSX/config.json
書き換える
"temp_dir" : "/var/www/tmp",
"work_dir" : "/var/www/tmp",
PowerCMS X システムチェック(pt-check.php)
ブラウザで pt-check.php にアクセスします。
<自分のドメイン>/PowerCMSX/pt-check.php
以下のメッセージが表示されますが、無視して大丈夫です。
いくつかの推奨設定を満たしていませんが、PowerCMS Xをインストールできます。
MySQLへの接続に成功しました。データベース'powercmsx'を作成しました。
アップロードできるファイルの最大サイズは約16MBです。
memcached が有効ではありません。この拡張モジュールは必須ではありません。
normalizer が有効ではありません。この拡張モジュールは必須ではありません。
コマンド'/usr/local/bin/lftp'をPHPから実行できません。必須ではありませんが、プラグイン'Mirroring'がこれを必要とします。
コマンド'/usr/local/bin/estcmd'をPHPから実行できません。必須ではありませんが、プラグイン'SearchEstraier'がこれを必要とします。
PowerCMS X のインストールを開始
画面下部の「インストールを開始する」ボタンを押下します。
システムの設定
インストールに必要な以下の情報を入力します。
(入力内容は後から変更できます)
システムのメール(メールアドレスと同じ値)
ユーザー名(英文字もしくはメールアドレスと同じ値)
パスワード
パスワード (確認)
メールアドレス
表示名(ご自身のお名前フルネーム)
画面下部の「インストール」ボタンを押下します。
インストールが始まります。1分ほどで完了します。
PowerCMS X にログイン
ログインボタンをクリックするとログイン画面が表示されますので、先ほど登録した内容を入力します。
ログインできれば成功です。お疲れ様でした。
データベースのバックアップとリストア
サイト構築前にバックアップとリストアのテストをオススメします。構築作業が進むと、なかなかリストアテストができなくなるので、早めに実施をしてください。
トラブル対応
400 Bad Request
ログイン画面にアクセスした時に 400 Bad Request が表示された場合は、インストールする前の「システムの設定」で「サイトURL」を誤っている可能性があります。環境変数を追記してください。
<あなたのドメイン> の箇所は http から記述してください。
ファイルを開く
sudo vi /var/www/html/PowerCMSX/config.json
下記を追記
"cfg_admin_url" : "<あなたのドメイン>/PowerCMSX/index.php",
参考ページです。
PowerCMS X は既にインストール済みです。」とメッセージが表示される
pt-check.php にアクセスして、「PowerCMS X は既にインストール済みです。」とメッセージが表示された場合は、phpMyAdmin で powercmsx データベースを削除します。
powercmsx データベースにテーブルがいくつか作成されています。
phpMyAdmin で、powercmsx データベースを削除して、再度 pt-check.php にアクセスしてください。
MySQLへの接続に成功しましたがデータベース 'hoge.sample.com' の作成に失敗しました。
db-config.php に記述した「PADO_DB_NAME」の値にドットがあるとエラーになります。例えば下記のようにドメインで指定をした場合はドットをアンダースコアなどに変更してください。
define( 'PADO_DB_NAME', 'hoge.sample.com' );
↓ 変更
define( 'PADO_DB_NAME', 'hoge_sample_com' );
この記事が気に入ったらサポートをしてみませんか?