たまにデジハリでPHP講座の先生やっているので、こういう記事も書いてみます。基本的にはPHPの基礎をある程度理解した人向けです。
ド素人によるPHP開発環境構築・ツール紹介(Mac・Windows)とかぶる部分もありますし、いまちょっと調べたらPHPで動いている高度なオープンソースWebアプリケーション厳選15本まとめという記事もあったりしますが、「PHPでこんなこともできるんだな」ということで参考にしてください。
インストール方法とライセンスの詳細は自分で調べてください。
ソフトの紹介
基本的にはオープンソースが中心です。
CMS
CMSというのはContents Management Systemの略であり、「コンテンツを管理するシステム」を意味します。FTPとかをしなくてもサイトを更新できるというのが一番の魅力なのですが、その最終的に目指すところは「専門的な技術を持たない人でもサイトを運用できるシステム」です。
その用途によってどのツールを使うかは分かれると思いますが、自分の使いやすいソフトを見つけてください。
いずれもモジュールやプラグインと呼ばれる拡張機能を導入することによって、カスタマイズが可能です。Wikiをつけたり、掲示板をつけたり、色々できます。
WordPress
言わずと知れた有名ブログツールです。ブログ以外も色々とできます。テーマやプラグインの充実度、情報量などを考えると、PHPerが普通のサイトを作るなら、WordPressをオススメしておきます。
ベースがブログツールなので、あるジャンルのコンテンツが日時を追って増えていくようなサイトに向いています。
Drupal
純粋なCMSといった感じのツールです。カテゴリーでコンテンツを分けていくWordPressと異なり、サイトの構造を柔軟に設計していくことを目的としています。
日本ではあんまり有名じゃないですが、NASAとかMozillaに採用されているそうなので、信頼性は高いです。
Joomla!
Drupalと同じく、拡張性に富んだCMSです。ただ、日本語情報はちょっと少ないかな?
更新もわりと行われてます。
Xoops Cube
海外製のツールXoopsの開発から枝分かれしたCMSです。開発陣はほとんど日本人になりつつあるので、国産CMSの趣を持つようになりました。
CMSというよりは、コミュニティサイトを作成するためのツールなので、会員管理機能が充実しています。WordPressをXoopsの下にぶら下げるモジュールとか、ECをぶら下げるモジュールとか、かなり大規模なプラグインもたくさんあります。
基本的には機能をブロックにわけて、それをポコポコサイト上に置いていくイメージです。
MODx
わりと新しいCMSです。WYSIWYGに力を入れているので、サイト構造をカスタマイズする部分なんかもWYSIWYGになっています。
テンプレートシステムもSmartyっぽくてわかりやすいので、マークアップ脳の方は向いているんじゃないでしょうか。サイトのデザインもWordPress以外と比べるとシャレオツです。
スニペットとプラグインという拡張機能がありますが、詳細は作ったことがないのでわかりません。ちなみに、こうした独自テンプレート変数を採用している場合、「その知識は他であまり役に立たない」ということは心しておいてください。
Concrete 5
商用CMSがオープンソース化したもので、かなり新しいです。サイトを見たまま直していく(管理画面がない)のはけっこう衝撃的です。
拡張まではよくわからないのですが、CMSを運用する人のITリテラシーがメチャクチャ低い場合はかなりオススメです。今後に期待です。
その他CMS
掲示板
掲示板も昔は高機能なCGIツールでしたが、いまはWordPressやXoopsの拡張機能に入っちゃってるので、単独で使うことはあまりないと思います。
が、「既存サイトがすでに存在して、掲示板だけつけたい」という需要もあるかと思いますので、一応紹介します。
phpBB
わりと古くからある掲示板ソフトです。一時期サイトがクラックされて「大丈夫か?」と思った時期もありましたが、直ったみたいですね。
bbPress
WordPressの開発者チームが作っている掲示板です。公式フォーラムにも使われています。
WordPressに慣れている人はこれを使うといいでしょう。また、WordPressとユーザーを共有する機能もついているので、WordPressにフォーラム機能をつける場合はbbPreess一択です。必死こいてプラグイン探さなくても大丈夫!
ECサイト
ECサイトは幾つかありますが、ECのキモはサイトの外側ではなく、バックエンドの処理であります。特に購入アクション開始から決済完了まで(トランザクションといいます)がめんどくさいので、海外製のツールを使う場合はそこに注意してください。
あと、単純な物販サイトならすぐ作れますが、お客さんの要望も色々あると思うので、自分がカスタマイズしやすいものを見つけておくといいでしょう。なんだかんだいって、一番商売になりやすいです。
また、PHPとは関係ないですが、ECのキモはロジスティック(物流)だったりするので、この部分もある程度知っておいた方が親切なアドバイスができるんじゃないでしょうか。
EC Cube
国産ECパッケージです。デザインの変更はCSSなんかで可能ですが、ハードなカスタマイズはちょっとめんどくさいです。
Smartyを知っていればできないことはないはずなので、せっかくだからSmartyも覚えましょう。ファイル数が膨大なので、くじけそうになりますが…
一応、公式の決済モジュール(有料)もあったりするので、手数料等を考えてペイすると思えばそれを使うと楽なんじゃないでしょうか。僕は使ったことありませんが。
Magento
海外製のECパッケージです。最近熱いみたいですね。themeforestとか探すと、Magentoテーマがたくさんでてきます。一応日本語コミュニティもあります。
その他ECソフトウェア
ZencartとかOSCommerceとかありますが、僕個人の意見ではEC Cubeにしておいた方が無難かと思います。
Wiki
WikiはWikipediaみたいなものを作るときに役立ちます。CMSの一種ではありますが、単語ベースでページが生成されていくので、基本的には辞書みたいなものに向いています。コンテンツもほとんど文章にした方がいいです。
ナレッジ(知的財産)を蓄積していくときに役立ちますが、独自の記法を採用している場合が多いので、それをどうしていくかが運用のキモになります。ナレッジとして使用する場合は、会員管理機能も重要です。社内の重要な情報が外部に漏れちゃまずいですよね。
あと、個人的な意見ですが、Wikiは編集する側にある程度の知的レベルが求められます。しっちゃかめっちゃかにならないよう、注意してください。
Media Wiki
http://www.mediawiki.org/wiki/MediaWiki/ja
Wikipediaを誰でも使えるようにしたソフトです。Wikipediaとそっくりなので、見る側は違和感ないのがいいですね。「○○専用のWikipediaだと思ってください」と言えば、説明も楽です。
PukiWiki
http://pukiwiki.sourceforge.jp/
日本では一番使われていると思いますが、どうでしょうか。左上のロゴを一回は見たことがあると思います。
DokuWiki
アイコンがかわいいです。Wikiは違いがわかりづらいので、好きなのを選んでください。
SNS
SNSといえばmixiやFacebookです。SNSを導入する際に気をつけてほしいことは、求める機能が本当にSNSじゃないといけないのかを見極めるということです。
SNSは単に会員制のサイトであるというだけでなく、人と人とのつながりを重視したサービス(つまり、コンテンツは重視しない)なので、あまり短絡的にSNSを導入しないようにしてください。SNSの設計を変えるのはけっこう大変でめんどくさいです。
OpenPNE
mixiのクローンです。mixiみたいなものが作りたい場合は使ってください。デザインのカスタマイズは簡単ですが、機能的に何かをしようと思った場合、カスタマイズは結構大変です。Smarty必須です。
3.0以降はSymfonyになったはずなので、Symfonyモジュールの作り方(vendorディレクトリに何か入れるとか)を知らないと手も足もでないんじゃないでしょうか。
その他SNS
MyNETSというのがありますし、XoopsにもSNS拡張があったような気がします。
クローン系
○○クローンといって、既存のWebサービスを丸パクリしたようなツールが結構あります。「自分達専用の○○がほしい!」という強烈な需要がある場合は導入を検討してみてください。探せば他にも色々あると思います。
- Twitterクローン
- StatusNet
- Youtubeクローン
- PHPmotion
音楽とか画像とかも共有できます。
- はてなブックマーククローン
- Pligg
ソーシャルブックマーク以外にも使えるはずですが、投票などのソーシャル機能が豊富なので、そう認知されてますね。
いま検索したら、まとめ記事超有名サイトのPHP製無料クローンスクリプト38選がありました。書く前に調べればよかったですね…
サーバ管理
PHPは便利なので、サーバを管理する諸々のソフトとしても使われています。
一般ユーザ向けに使うことはあまりないと思いますが、知っておくと便利です。
特に新しくサービスを立ち上げる場合は、Webサイトだけでなく、開発環境やメール・DB周りなども一緒に作ることが多いので、知っておいた方がいいでしょう。
また、サーバ管理系のツールはあまりカスタマイズすることもないと思うので、インストール方法だけ知っていればいいんじゃないでしょうか。いざとなったらPHPなので直したりできます。
phpMyADmin
http://www.phpmyadmin.net/home_page/index.php
MySQLを管理するためのPHPソフトです。共有レンタルサーバを借りるとはじめから入っている場合もあります。MySQLをコマンドラインでカタカタやるのは大変なので、入れておきましょう。
外部サーバのMySQLも管理できますし、レプリケーションとかもできます。
Postgres使ってる場合はphpPgAdminというのがありますし、SQLite使ってる場合はSQLite Managerというのがあります。
Postfix Admin
http://postfixadmin.sourceforge.net/
WebデザイナーからPHPへ進んだ人はPostfix自体を知らないかもしれませんが、要するに送信用メールサーバー(SMTP)だと思ってください。最近はSendmailではなく、Postfixを使っているところが多いです。
メールアドレスの登録とか、ドメインの追加とか、メールの転送設定ができます。Postfixを設定するのは超めんどくさいので、GUIで管理できるようにすると便利です。
RoundCube
Gメールみたいなものです。自分でメールサーバを立てたときはこれを使うと楽です。
iF.SVNAdmin
http://www.insanefactory.com/if-svnadmin/
Subversionリポジトリを管理するためのツールです。リポジトリの追加とか、ユーザーの追加とかけっこうめんどくさいので、これを使うと少しだけ幸せになれるかもしれません。
Zabbix
サーバを監視するツールです。サーバが落ちてるとか、帯域が遅いとか、メモリがやばいとか教えてくれます。当たり前ですが、監視したいサーバとは違うサーバにインストールした方がいいです。
ここまでくるともうPHPとか関係なくて、サーバに関する知識が求められますね。
情報収集のコツ
新しいものを探す
ソフトウェアを探すときなのですが、更新頻度が高いものを選びましょう。
ググるときも検索オプションで「1年以内」などの指定を行い、古くさい情報を掴まないようにしたいものです。「枯れたソフト」の方がいいソフトなのですが、放置されているとセキュリティホールがそのままになっている可能性が高いので。
日本語情報が多いものを探す
海外ではよく使われているけれども日本語情報が少ないソフトは、国際化などで難アリの場合があります。
工数を節約するつもりで選んだのに、翻訳してたらすごい時間が経ってたなどというケースも考えられるので、注意してください。メール周りやデータベースの文字化けでハマることも多いです。最近のはそういうことも少ないみたいですが…
あと単純に英語ができない場合は日本語を頼りにするしかないですね。
ブログを見る
PHP関連だとMOONGIFTとPHPSPOT開発日誌あたりを見ておくと、PHP製ソフトウェアの情報がわりと入ってきます。
まとめ
「なんかPHP製のソフトって色々ありますね」という凡庸な感想しかありません…
インストールして外面だけ変えて運用するのか、プラグインやモジュール開発までディープにやるのかによってビジネスの仕方は変わってくるかと思います。
書いてみて思ったんですが、まとめ記事で全部にスクリーショットつけてる人とか凄いですね! つけようと思いましたが、めんどくさ過ぎて挫折しました。やっぱりがんばってつけました。