Ubuntu10.10 自宅サーバ構築手順:SNS(ソーシャル・ネットワーキング・サービス:OpenPNE3)の導入
この環境導入については公式マニュアル他参照しながら色々試してたのですが中々導入までには至らず…足りない情報を補完しつつ、ようやく開設(完了までの過程)に至る事が出来たのでそこまでの手順をまとめてメモしておこうと思います。
OpenPNE3を導入する際の事前準備として、Apache2とMySQLはそれぞれ導入が済んでいる事が必要です。
(以降の手順で、DB:MySQLとして進めて行きます)
- Ubuntu10.10 自宅サーバ構築手順:Webサーバ(Apache2)インストール - Diary of absj31
- Ubuntu10.10 自宅サーバ構築手順:DB実行環境(MySQL5.1)インストール - Diary of absj31
- 導入に際し必要なソフトをインストール。
absj31@absj31-MyHomeServer:/$ sudo apt-get install -y php5 php5-mysql php5-mcrypt php5-gd php5-xmlrpc php5-symfony1.0 absj31@absj31-MyHomeServer:/$ sudo apt-get install -y git git-core
Database | openpne3db |
User | openpne3dbuser |
Pass | openpne3dbpass |
absj31@absj31-MyHomeServer:/$ mysql -u root -p mysql> create database openpne3db; Query OK, 1 row affected (0.00 sec) mysql> use openpne3db; Database changed mysql> grant all privileges on openpne3db.* to openpne3dbuser@"%" identified by 'openpne3dbpass' with grant option; Query OK, 0 rows affected (0.03 sec) mysql> grant all privileges on openpne3db.* to openpne3dbuser@"XXX.XXX.XXX.%" identified by 'openpne3dbpass' with grant option; Query OK, 0 rows affected (0.00 sec)
- gitコマンドを利用して、OpenPNE3のアーカイブを入手。/opt 配下にインストールする事にした。
absj31@absj31-MyHomeServer:/$ cd /opt absj31@absj31-MyHomeServer:/$ sudo git clone git://github.com/openpne/OpenPNE3.git Initialized empty Git repository in /OpenPNE3/.git/ remote: Counting objects: 41984, done. remote: Compressing objects: 100% (13489/13489), done. remote: Total 41984 (delta 26977), reused 41350 (delta 26521) Receiving objects: 100% (41984/41984), 15.82 MiB | 1.53 MiB/s, done. Resolving deltas: 100% (26977/26977), done. absj31@absj31-MyHomeServer:/$
- インストールするバージョンを指定。の前にタグを確認してみる。一通り入っている模様。
absj31@absj31-MyHomeServer:/$ cd OpenPNE3/ absj31@absj31-MyHomeServer:/opt/OpenPNE3$ git tag -l OpenPNE-3.0.0 OpenPNE-3.0.1 OpenPNE-3.0.2 OpenPNE-3.0.3 OpenPNE-3.0.4 OpenPNE-3.0.5 OpenPNE-3.0.6 OpenPNE-3.0.6.1 OpenPNE-3.0.7 OpenPNE-3.0.8 OpenPNE-3.0.8.1 OpenPNE-3.0.8.2 OpenPNE-3.0.8.3 OpenPNE-3.0beta1 OpenPNE-3.0beta2 OpenPNE-3.0beta3 OpenPNE-3.1.0 OpenPNE-3.1.1 OpenPNE-3.1.2 OpenPNE-3.1.3 OpenPNE-3.1.3.1 OpenPNE-3.1.4 OpenPNE-3.1.5 OpenPNE-3.2.0 OpenPNE-3.2.1 OpenPNE-3.2.2 OpenPNE-3.2.2.1 OpenPNE-3.2.3 OpenPNE-3.2.4 OpenPNE-3.2.5 OpenPNE-3.2.5.1 OpenPNE-3.2.6 OpenPNE-3.2.7 OpenPNE-3.2.7.1 OpenPNE-3.2.7.2 OpenPNE-3.2.7.3 OpenPNE-3.2.7.4 OpenPNE-3.2RC1 OpenPNE-3.2beta1 OpenPNE-3.3.0 OpenPNE-3.3.1 OpenPNE-3.3.2 OpenPNE-3.4.0 OpenPNE-3.4.0.1 OpenPNE-3.4.1 OpenPNE-3.4.1.1 OpenPNE-3.4.2 OpenPNE-3.4.3 OpenPNE-3.4.4 OpenPNE-3.4.4.1 OpenPNE-3.4.5 OpenPNE-3.4.6 OpenPNE-3.4.6.1 OpenPNE-3.4.6.2 OpenPNE-3.4.7 OpenPNE-3.4.8 OpenPNE-3.4.9 OpenPNE-3.4.9.1 OpenPNE-3.4.9.2 OpenPNE-3.4RC1 OpenPNE-3.4beta1 OpenPNE-3.5.0 OpenPNE-3.5.1 OpenPNE-3.5.2 OpenPNE-3.5.3 OpenPNE-3.6beta1 OpenPNE-3.6beta2 OpenPNE-3.6beta3 OpenPNE-3.6beta4 OpenPNE-3.6beta5 OpenPNE-3.6beta6 OpenPNE-3.6beta7 OpenPNE-3.6beta8 OpenPNE-3alpha1 OpenPNE-3alpha2 OpenPNE-3alpha3 absj31@absj31-MyHomeServer:/opt/OpenPNE3$
- 最新目の安定板、OpenPNE-3.4.9.2をインストールする方向で行ってみる。
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo git checkout -b OpenPNE-3.4.9.2 Switched to a new branch 'OpenPNE-3.4.9.2' absj31@absj31-MyHomeServer:/opt/OpenPNE3$ git branch * OpenPNE-3.4.9.2 master absj31@absj31-MyHomeServer:/opt/OpenPNE3$
- 設定ファイルをサンプルファイルからコピー。
absj31@absj31-MyHomeServer:/$ cd OpenPNE3/ absj31@absj31-MyHomeServer:/OpenPNE3$ sudo cp config/ProjectConfiguration.class.php.sample config/ProjectConfiguration.class.php absj31@absj31-MyHomeServer:/OpenPNE3$ sudo cp config/OpenPNE.yml.sample config/OpenPNE.yml
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo vi config/OpenPNE.yml ------------------------------------ ###################################### # 基本設定 (Basic) ###################################### # SNS の URL # URL of the SNS base_url: "http://(ドメイン名)/openpne" 【システムで末尾にスラッシュ(/)が付加されるようなので、設定値としての末尾「/」は不要】 ###################################### # メール (Mail) ###################################### # SNS からのメール送信に使うドメイン # Domain to use for sending e-mail from the SNS mail_domain: "gmail.com" # メール投稿アドレスにメンバー毎にユニークなハッシュを含める # Contain an individual hash for an e-mail address that is used to post something to the SNS is_mail_address_contain_hash: true # メール投稿アドレスのハッシュの長さ # Length of hash for an e-mail address for posting mail_address_hash_length: 12 # SNS から送信するメールの Envelope From (Return-Path ヘッダ) に指定するアドレス # Envelope From (Return-Path header) address for sending e-mail from the SNS mail_envelope_from: "(取得済みGmailメールアドレス)" # SNS から SMTP 経由でメールを送信する場合の SMTP サーバのホスト名 # Hostname of the SMTP server for sending e-mail via SMTP mail_smtp_host: "smtp.gmail.com" # SNS から SMTP 経由でメールを送信する場合の SMTP の設定 # Config of the SMTP for sending e-mail via SMTP mail_smtp_config: auth: "login" username: "(取得済みGmailメールアドレス)" password: "(取得済みGmailメールアドレスのパスワード)" ssl: "tls" port: 587 # メールテンプレートに機能制限をおこなうかどうか # Add restriction to mail templates is_restrict_mail_template: true ------------------------------------
- インストール実施。DBに関する設定を適宜入力していく。最後に[Y]でインストールが始まる。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo ./symfony openpne:install -------------------------- | Choose DBMS: | - mysql | - pgsql (unsupported) | - sqlite (unsupported) | | -------------------------- mysql 【←入力後[Enter]押下]】 -------------------------- | Type database username | | -------------------------- openpne3dbuser 【←入力後[Enter]押下]】 ------------------------------------- | Type database password (optional) | | ------------------------------------- openpne3dbpass 【←入力後[Enter]押下]】 -------------------------- | Type database hostname | | -------------------------- localhost 【←入力後[Enter]押下]】 ---------------------------------------- | Type database port number (optional) | | ---------------------------------------- [そのままEnterキー押下] ---------------------- | Type database name | | ---------------------- openpne3db ---------------------------------------- | Type database socket path (optional) | | ---------------------------------------- [Enterキー押下] --------------------------------------------- | The DBMS : mysql | The Database Username : openpne3dbuser | The Database Password : ****** | The Database Hostname : localhost | The Database Port Number : | The Database Name : openpne3db | The Database Socket : | | Is it OK to start this task? (Y/n) | | --------------------------------------------- Y 【←入力後[Enter]押下]】
- 『installation is completed!』と出れば完了。
>> installer start clean install >> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"... >> sfPearFrontendPlugin downloading channel.xml ... : : : >> plugin Configuring plugin - sfImageHandlerPlugin >> plugin Configuring plugin - sfProtoculousPlugin >> link+ /OpenPNE3/web/sfProtoculousPlugin >> plugin Configuring plugin - sfSymfonyTemplatingViewPlugin >> installer installation is completed! absj31@absj31-MyHomeServer:/OpenPNE3$
- インストールファイルのお掃除。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo ./symfony project:clear-controllers >> file- /OpenPNE3/web/pc_backend_dev.php >> file- /OpenPNE3/web/pc_frontend_dev.php >> file- /OpenPNE3/web/mobile_frontend_dev.php >> file- /OpenPNE3/web/api_dev.php absj31@absj31-MyHomeServer:/OpenPNE3$
- web配下の.htaccessファイルを編集。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo vi web/.htaccess -------------------------------------------------------- # uncomment the following line, if you are having trouble # getting no_script_name to work RewriteBase /openpne/ 【←baseurlに即した値に変更】
- 上記設定を有効にするためにmod_rewriteを有効にする。(この設定を行う事が漏れていたが為に導入後ログイン出来ず、かなりハマッった…)
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo a2enmod rewrite Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration!
- Apache設定ファイルを変更。[AllowOverride None]の記述を[AllowOverride All]に変更。
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo vi /etc/apache2/sites-available/default --------------------------------------------------------- <Directory /var/www/> : AllowOverride All :
- lnコマンドでリンク設定を行う。参照先ディレクトリ配下も所有者を変更。
absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo ln -s /opt/OpenPNE3/web/ /var/www/openpne absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo chown -R www-data:www-data web/
- Apache2再起動。
absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo service apache2 restart
- ブラウザで http://(ドメイン)/openpne/ にアクセス。 sns@example.com/passwordでログイン。
- ログインが正常に行える事を確認。
- ログインが正常に行える事を確認。
取り敢えず、システムとして最低限利用可能な初期状態まで持って行く事は出来ました。整っている情報に中々巡り会えず難儀しました…。
上記の設定で軽く使ってみてるのだけれど、ドメイン名にスラッシュが二重に重なって設定されてしまい、所々でURLアクセスに不備が出ています。base_urlの最後にスラッシュ付加してるのが原因なのかな?後で入れ直して試してみるか…つかその前に、インストール後でも直せないものなのこの辺(OpenPNE.xml)の設定は?教えてください詳しいお方。(※追記:base_urlの設定値末尾がスラッシュで終わっていると余計に付加されてしまう形となる。設定値は http://(ドメイン名)/xxxx の形で記述。)
また、OpenPNEを運営していくには、様々な設定をカスタマイズしないと思ったような使いこなし方は出来なさそう。色々調べて試してみないと行けなさそうです。少しずつノウハウ溜めていこう。
参考: