クラウドファンディング、Goteoをインストールしてみた。

らら
らら

はじめに

別件で調べもの中、見つけたのでインストールしてみました。

オープンソースでPHPで作成されてた。Goteo

https://github.com/GoteoFoundation/goteo

準備

Goteoのバージョン2系はphp7に対応していないよう。3系から7に対応とヒストリに記載がある。

ただ、2系はpear、3系はsymfony,composer,nodejsの環境が必要です。

環境がCentos8なのでGoteo version: 3.5をいれることに。。

インストールした環境 php MySql Apacheはインストール済みの想定です。

Centos8.4

PHP 7.2.24

MySql 8

Apache/2.4.37

Centos8入れ替えないとな・・・

追加したパッケージ


yum install ruby-devel
yum install rubygems
yum install nodejs

PHP要ライブラリ 筆者の環境ではコンソール上のphp.iniでpdo_msyqlを有効にしました。

gd, mcrypt, curl, mbstring, json, mysql

php composer インストール


wget https://getcomposer.org/installer -O composer-installer.php
php composer-installer.php --filename=composer --install-dir=/usr/local/bin

Goteoインストール

Goteo自体、WEBルート直下しか動作できない。テンプレート上でルートの記述がある。

サブフォルダーでテストする方法は別途ポート8080などにして、httpd.conf等で、ウェブルートをインストールしたフォルダーを指定する必要があります。

ファイルをアップロードしたフォルダーにsshコンソールで移動しておく


composer install
npm install

nodejsを新規インストールした場合gruntをインストールしておく


npm install -g grunt

設定ファイルをコピーしておく


cp config/demo-settings.yml config/settings.yml

ビルドします


grunt build:dist

筆者は上記でエラー


......
Running "sass:devel" (sass) task
ERROR: Cannot load compass.
.....

compassの確認。入っている


compass -v
Compass 1.0.3 (Polaris)
Copyright (c) 2008-2021 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass

一応gemを更新して


gem update --system

sass-3.4.25が必要のようで、3.7.4をアンインストール。なんか、いつもここでつまづく。。


gem uninstall sass
Select gem to uninstall:
 1. sass-3.4.25
 2. sass-3.7.4
 3. All versions
> 2
Successfully uninstalled sass-3.7.4

で再度


grunt build:dist

完了したら。

config/settings.ymlを修正する。

urlは、Goteo自体、WEBルート直下しか動作できない。テンプレート上でルートの記述があるので変更が大変な感じ。

テストしたい場合は、webルートにサブフォルダーを作成してそこにソースを展開して、httpd.confで8080などポートを指定して

8080のドキュメントルートを指定したサブフォルダーを指定することで、とりあえずテストできます。要ファイアウォール変更 8080等


# url
url:
    main: //あなたのドメイン:8080

あとはSQLユーザー、パスとメールアドレスを変更しておく


# Database stuff
db:
    driver:   mysql     # Database driver (mysql)
    host:     localhost # Database host
    port:     3306      # Database port
    charset:  utf8mb4     # Database charset
    database: goteo     # Database schema (database name)
    username: xxx     # Database user for the goteo database
    password: xxxxx  # Password for the goteo database
# Mail transport
mail:
    # receiving emails
    mail:         xxx@xxxx.net     # Main
    contact:      xxx@xxxx.net     # consulting head
    manager:      xxx@xxxx.net     # accounts manager
    fail:         xxx@xxxx.net     # dev head
    log:          xxx@xxxx.net     # Loggin mail

設定後、mysqlでデータベースを作成しておく


create database goteo;

テーブルを作成します。


php bin/console migrate install

サブフォルダーで動かす場合

httpd.confに追加


<VirtualHost *:8080>
    ServerName あなたのサーバドメイン
    ServerAdmin xxx@xxxxxx
    DocumentRoot インストールサブフォルダーのフルパス/dist
    # Custom settings for apache
    SetEnv GOTEO_CONFIG_FILE インストールサブフォルダーのフルパス/config/settings.yml
    FallbackResource /index.php
    <Directory インストールサブフォルダーのフルパス/dist>
        Options Indexes FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
    #LogLevel info ssl:warn
    ErrorLog logs/あなたのサーバドメイン-error_log
    CustomLog logs/あなたのサーバドメイン-access_log combined
</VirtualHost>

設定後は、apache再起動します。

firewallを設定している場合は、該当ポートをあけておきます。


firewall-cmd --permanent --zone public --add-service 8080
firewall-cmd --permanent --zone public --add-port 8080/tcp
firewall-cmd --reload

これで準備完了です。

これで表示されるはずです。

http://あなたのサーバドメイン:8080

管理者ログインは初期のid,パスはrootです。

日本語化

下記をみるとファイルはありますが、日本語されていません・・・・

Resources/translations/ja

筆者は面倒だったので、perlでバッチを作成して

ymlは:で区切られているので分割して、翻訳部分のみだけにして、機械翻訳一括でして。再度バッチでUTF8で変換して戻しました。めんど。

英語は、すべてなかったので、スペイン語とマージしました。スペイン語の機械翻訳がかなり。。。まずい感じに・・

prelで分割 こういう時prel便利!


	$it_name="";
	$val="";
	if($line=~ /^(.*?):/igm) {
		$it_name=$1;
		$val=$';
	}

作成したファイルを上書きして再度

Resources/translations/ja

再度

http://あなたのサーバドメイン:8080

おお!!きたーと思ったら。。どうも、ユーザー画面のみ日本語で、管理画面は2系?のデザインでスペイン語?んー面倒ね。

どうも、テンプレートにスペイン語が直書きのよう・・・・

なので下記のフォルダーを適当に翻訳。。大体がxxx一覧、翻訳、修正、削除みたいな感じの修正

Resources/templates/legacy

再度

http://あなたのサーバドメイン:8080

あれ?まだ、だめなページが・・legacyをみてみるが。。なさそう。。まさか。。

Resources/templates/defaultの中身も必要だった・・・・汗

再度

http://あなたのサーバドメイン:8080

今度は、すでに登録されてる??データの部分がスペイン語??

実際、SQLの中に、カテゴリと、SDGsの部分がはいってるので、その2つだけ少し触ってみた。。。直るよね。。。あとFAQとかパス・・・

なんとなく触ってみて

再度

http://あなたのサーバドメイン:8080

よくみると、えーーーなんか部分的に、スペイン語?まじかー。該当の単語をgrepすると。。phpファイルの中に。。

きっと、まだ、新しいデザインに置き換わってないところは、多言語になっていないんだと。。気づく。。。おそ。。

googleでスペイン語翻訳すると。おかしな、日本語になるのでとりあえず。。そのままで。。

たぶん、内容的に、管理画面の追加。多言語分のデータの登録部分なので、FAQとかいらないのはそのままで。。とか。

管理画面で日本語翻訳を追加する場合

下記をデータベースで追加が必要です。


INSERT INTO `user_translang` (`user`, `lang`) VALUES  ('root', 'ja');

円を追加

修正後var/cacheをクリア

Resources/currencies.yml


JPY:
    name: '円'
    symbol: '¥'
    thousands: ','
    decimal: '.'
    active: true

結果

goteo0

goteo0

goteo0

goteo0

goteo0

ここが新デザインと、旧デザインが表示される。他にもたくさんありました。。

機械翻訳でおかしな部分も・・・

forkして日本語アップしようかと思ったけど、中途半端だから。。機械翻訳だし。。

さいごに

ここまでやって、疲れたので、肝心な動作確認してません。。

では。。

関連記事