本文へジャンプします。

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や書籍を参考にいろいろ試してみてください。

それではまた。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

福澤真

福澤真

ニフティクラウドのコンパネ開発、運用をしています。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。

世良迪夫

世良迪夫

ニフティクラウドのRDBなどを担当しています