ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

Joomla!をインストールしてみよう ~LAMP環境でCMSを構築~

こんにちは、株式会社ドリーム・アーツの石田です。

今回は企業のウェブページなどを簡単に作成することができるCMS(コンテンツマネージメントシステム)のうち、オープンソースで無料で使えて機能も豊富なJoomla!(http://www.joomla.org)をニフティクラウド上にインストールしてみたいと思います。

さて、皆様の会社のウェブページはどのように管理されているでしょうか?
多くの会社のホームページは、今でもHTMLを直接編集してFTPでアップしたものが多い様です。
実は、弊社のコーポレートサイトもそんな風に作られています。

HTMLを直接編集して、FTPでアップすると自由度が高く凝ったデザインのページを作れる一方、新しいページを掲載したいときにも必ずデザイナーさんの協力を仰がないとできないので、情報のタイムリーな更新は難しくなってしまいます。

こんなときにはCMSです。CMSを使うと一度デザインのテンプレートを設定したらあとはブログを書くようにページを追加していくことが可能になります。CMSには商用製品やオープンソースで無料で使えるもの等いろいろあります。今回インストールするJoomla!はXOOPSやWordPressなどと並び有名どころの一つです。

弊社でも、Shopらんのサポートサイト(https://support.shoprun.jp)をJoomla!で作って運用しています。

Joomla!は、PHPで作られていてデータベースとしてMySQLを利用します。WebサーバーはApache httpdを使います。LinuxとあわせていわゆるLAMP(Linux + Apache + MySQL + PHP)の構成です。ニフティクラウドでもLinuxサーバーを使って簡単にインストールすることができます。

それでは早速インストールを始めていきましょう。

サーバーの作成

まず、ニフティクラウドのコントロールパネルにログインして、Joomla!を動かすサーバーを作成します。

今回構築する環境は、いわゆるLAMP環境なので、LinuxのOSイメージを利用します。32bitでも64bitでもどちらでもいいのですがアクセスが増えてきたときにメモリを増やして対応することを想定して「CentOS 5.3 64bit Plain」を選択しておきます。

64bitのOSイメージを選択しておかないとメモリを増やしたくても4GB以上のサーバースペックを選択できないので注意が必要です。

サーバーのスペックは、PHPはメモリ食いなのでminiだとメモリが足りないので最低でも small を選択します。本番稼働させる場合は small2 ぐらいから始めるといいでしょう。

LAMP環境のセットアップ

サーバーが作成できたら早速SSHでログインしてLAMP環境をセットアップします。

PHPやMySQLのインストールは、yumコマンドで行います。

# yum -y install php53 php53-mbstring mysql-server php53-mysql httpd

しばらく待つとインストールが完了します。 httpサーバーとして使うには、TCPの80番ポートへの接続を受け付けるようにiptablesの設定を変更する必要があります。 viで、/etc/sysconfig/iptables を開いて以下のように修正します。

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j DROP
-A RH-Firewall-1-INPUT -i lo -j ACCEPT

## DO NOT EDIT !!!!
-A RH-Firewall-1-INPUT -m tcp -p tcp --sport 67:68 -j ACCEPT
-A RH-Firewall-1-INPUT -m udp -p udp --sport 67:68 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## DO NOT EDIT !!!!

## 以下の行を追加します
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

修正が終わったらルールを適用します。

# service iptables restart

試しに Apache を起動してブラウザからアクセスできるか確認してみます。

# service httpd start

ブラウザからサーバーのIPアドレスを指定して、http://111.171.xxx.xxx にアクセスしてみます。

うまくいくと以下のようにApacheのテストページが表示されるはずです。

Apache httpdの確認ページ

MySQLデータベースの設定

Joomla!のデータはMySQLに保存されます。Joomla!のインストール時にはMySQLに接続できないといけないのでまずMySQLを起動します。

# service mysqld start

インストールしたてのMySQLはセキュリティ面であまりいい状態ではないので、起動したらセキュリティを高めるために、 mysql_secure_installation コマンドを実行します。

# mysql_secure_installation




NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ※インストール後は root ユーザーにパスワードが設定されていないので Enter を入力します
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y ※rootユーザーにパスワードをセットします
New password: ※新しいパスワードを入力します
Re-enter new password: ※もう一度入力します
Password updated successfully!
Reloading privilege tables..
... Success!


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? [Y/n] Y ※匿名ユーザー(anonymous)を削除します
... 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? [Y/n] Y ※リモートサーバーからの接続を拒否します
... 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? [Y/n] 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? [Y/n] Y ※設定を反映します
... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

次に、Joomla用のデータベースのインスタンスを作成します。

# mysqladmin -uroot -p create joomla
Enter password: ※先ほど設定したパスワードを入力

これで、MySQLサーバーの設定は完了です。

Joomla!のインストール

いよいよ、Joomla!の現在の最新バージョンである1.6.3をダウンロードします。

※2011年8月17日追記:
Joomla! は1.7.0がすでにリリースされており、1.6系についてはメンテナンスが終了しています。なるべく早く1.7系をご利用ください。

# cd /tmp
# wget http://joomlacode.org/gf/download/frsrelease/14659/64120/Joomla_1.6.3-Stable-Full_Package.zip

インストールした zip ファイルをそのまま Apache httpd のディレクトリに展開します。

# cd /var/www/html
# unzip /tmp/Joomla_1.6.3-Stable-Full_Package.zip
# chown -R apache:apache /var/www/html

ここから先はSSHを離れてブラウザでインストールを継続します。

再び、ブラウザでこのサーバーにアクセスしてみると、先ほどの CentOS のデフォルトページとは異なり、Joomlaのインストール画面が表示されます。

Joomla_1_2

ほとんどそのまま「次へ」で進んでいけばいいのですが、「4. データベース設定」だけは以下の通りに設定する必要があります。

データベースタイプ MySQLi
ホスト名 localhost
ユーザ名 root
パスワード 設定したパスワード
データベース名 joomla

これでインストールは完了です。

インストールが完了したら、http://サーバーのIPアドレス/administrator/ にアクセスするとJoomla!の管理画面が開きます。

 

Joomla_admin_2

DNSを設定して、サーバーのIPアドレスをドメイン名でアクセスできるようにすれば、本番で運用可能なサーバーとなります。

15分もかからずにインストール完了です。

ニフティクラウドを使うと、このような高機能なCMSもあっという間にセットアップでき、負荷が上がったらサーバータイプを変更したり、ロードバランサーで負荷分散したりと自由に構成が変更できます。

アクセスが増えても安心できます。

Joomla!は、非常に高機能なCMSです。様々なプラグインやキレイにデザインされたテンプレートが豊富にそろっています。Joomla!の使い方などはWebや書籍を参考にいろいろ試してみてください。

それではまた。