田舎の風見鶏

PHP5.2でsoy cms 1.8.6以降のエラー回避について

soycms

なるべく新しいsoy cmsを利用したくて、結構頻繁にバージョンアップしていましたが、soy cms 1.8.6以降では管理画面には入れるけど公開ページが真っ白なので、soy cms 1.8.5を使い続けていました。

このサイトで使っているラクサバもPHP5.2.17です。
公式サイトではPHP5.2以降、推奨環境が5.2.20以降となっていますのでラクサバは非推奨環境ですね。

しかし仕事でPHP5.2.17でsoy cmsをインストールすることになり、最新の1.8.12をインストールしましたが、やはり公開ページは真っ白。

仕方ないのでエラーログを見て原因を調べてみました。

エラーログの場所はsoy cmsインストールディレクトリの/common/log/error-******.log

(******は西暦と月、2015年11月分のログはerror-201511.log)

これをダウンロードして開いてエラーを確認。

>PHP Parse error:  syntax error, unexpected T_FUNCTION in /soyをインストールしたディレクトリ/common/site_include/CMSBlogPage.class.php on line 280
>PHP Parse error:  syntax error, unexpected T_FUNCTION in /soyをインストールしたディレクトリ/common/site_include/DateLabel.class.php on line 39

CMSBlogPage.class.phpとDateLabel.class.phpの2つのファイルがエラーを吐いています。

エラー箇所近辺のコードを見ると共通してPHP5.3.0.0以降かどうかのif文での条件分岐でエラーを吐いています。

        >//条件付きフォーマット
        >if(version_compare(PHP_VERSION, '5.3.0', '>=0')){
        >   //preg_replaceのeオプションは5.5.0で非推奨になった
        >  //preg_replace_callbackは4.0.5から使えるが無名関数は5.3.0以降
       >     $time = $this->time; $year = $this->year; $month = $this->month; $day = $this->day;
       >    $format = preg_replace_callback("/%DATE:([^%]*)%/u",function($m) use ($time) {return date($m[1],$time);},$format);
       >     $format = preg_replace_callback('/%Y:([^%]*)%/u',function($m) use ($time, $year)  {return strlen($year)  ? date($m[1],$time) : '';},$format);
       >     $format = preg_replace_callback('/%M:([^%]*)%/u',function($m) use ($time, $month) {return strlen($month) ? date($m[1],$time) : '';},$format);
       >     $format = preg_replace_callback('/%D:([^%]*)%/u',function($m) use ($time, $day)   {return strlen($day)   ? date($m[1],$time) : '';},$format);
       > }else{
       >    $format = preg_replace("/%DATE:([^%]*)%/e","date('\\1',\$this->time)",$format);
       >     $format = preg_replace('/%Y:([^%]*)%/e',"strlen(\$this->year)  ? date('\\1',\$this->time) : ''",$format);
       >     $format = preg_replace('/%M:([^%]*)%/e',"strlen(\$this->month) ? date('\\1',\$this->time) : ''",$format);
       >    $format = preg_replace('/%D:([^%]*)%/e',"strlen(\$this->day)    ? date('\\1',\$this->time) : ''",$format);
       > }

PHPはほとんど触ったことがないし面倒くさかったので、PHP5.3.0かどうかのif分をまるごと削除しました。

強引ですがこれでPHP5.2環境でも動作しました。


sitemap.xmlを作成してくれる「sitemap.xml Editor」

日記 soycms

wordpressをお使いの方ならほぼ入れているプラグインだと思う[google XML sitemaps」のようなプラグインがsoy cmsにはありません。

SEO的にもまずいので簡単にsitemap.xml作れるツールを検索してみました。

sitemap.xml Editor

sitemap.xml editor

URLを入れるだけでsitemap.xmlを自動的に作成してくれます。

作成したsitemap.xmlはダウンロードして、soy cmsのファイルマネージャーからアップロード。

googleウェブマスターツールで送信して完了です。

ダウンロードしてアップロード、送信と手間が多いですが自分で作るよりは数段マシなので今はコレで我慢。

公式に対応していただけると嬉しいんですけどね。

それか誰かプラグイン作ってくれないかな?

PHPで書かれた「楽天アフィリエイトサイト作成システム 楽陳」を見つけたのでsoy cmsに組み込みたい

soycms

しばらく更新が滞ってました

今日はsoy cmsネタではありませんが面白いものを見つけたのでご紹介。

PHPで書かれた「楽天アフィリエイトサイト作成システム 楽陳」(らくちんと読みます)です。

自分のサイトに楽天市場の商品を掲載することができます。

楽珍

こんなかんじです。

他のサイトでwordpressも使っているんですが、wordpressにはプラグインで「VC search」や「CS SHOP」といった通販サイトの商品を簡単に記事に挿入できたり、検索窓を付ける事ができるのですが、soy cmsのプラグインにはそういった昨日を持ったプラグインがないので、ブログ記事で商品を紹介するときに、いちいち通販サイトを開いて、商品を検索して、タグをコピーして貼り付けと、結構な工数がかかります。

そこでsoy cmsでもそういった機能を持たせることができないか考えていたんですが、プラグインの開発ができればいいんですがそんな技術は持っていないの楽陳を使って実現させようと思います。

標準ページにPHPで楽陳のテンプレートタグを埋め込んで検索窓やを使って楽陳を呼び出して商品を表示させる。

個別の商品の表示は難しそうですが、キーワードを指定して表示件数を1件にすれば、ほぼ目的の商品は表示できると思います。

soy cmsのカスタマイズはwordpressほど難しくないので、こういった面では小回りがききますね。

ラクサバでsoy cmsを使う

soycms

soy cmsにおすすめのサーバ「ラクサバ」

「ラクラクミニ」プランなら月額99円で利用できます。

※ラクサバでsoy cmsを利用する場合Ver1.8.6以降では画面が真っ白になり表示されません。

Ver1.8.5以前を利用すれば問題なく使えます。(2015.11.16現在)

Ver1.8.6以降を利用する場合は一部ファイルの修正が必要です。

こちらの記事を参考に御覧ください。

PHP5.2でsoy cms 1.8.6以降のエラー回避について

月額99円でCMSの構築が簡単に試せる!!

ラクサバへのsoy cmsインストールは簡単。

インストーラーなし版をFTPでアップロードすれば完了。

あとはコントロールパネルへログインしてサイト作成をすればOK。

簡単にsoy cmsを利用できます。

その他にwordpressなどのインストーラーも完備しているので、soy cms以外のCMSを体験するのにも便利です。

ラクサバにはsoy cms Sqlite版が断然オススメ!!

ラクサバ「ラクラクミニ」プランではMysqlは1データベースしか利用できませんが、(ラクサバの仕様変更によりラクラクミニではMysqlは利用できなくなりました)soy cms Sqlite版を利用すればラクサバの容量が許す限り、サイトの構築ができます。

Mysqlはwordpressやmovabletypeに利用してsoy cms ではsqliteを利用すれば、サイト運用の幅も広がります。

soy cmsのインストールは基本的に標準のままでOKですが、PHPの設定はサーバーパネルにphp.ini設定も用意されているので、必要に応じてPHPのカスタマイズも可能です。

このサイトもSqlite版で構築していますが、特に支障なく稼働しています。

商用利用もOK

soy cmsには「soy shop」というネットショップ機能も用意されています。
ラクサバは商用利用OKなのでネットショップを開業したい方にもピッタリです。

soy cmsで企業サイトとブログを構築。soy shopでネットショップを運営
とsoy cmsで一括管理が可能です。

サイトの規模が大きくなればプランの変更も可能

「ラクラクミニ」プランでは容量やデータベースが足らなくなっても大丈夫。

プラン変更で上位プランへの変更も可能です。

プラン一覧
ラクラクミニ ラクラクライト ラクラクベーシック ラクラクゴールド
ディスク容量 2GB 10GB 30GB 60GB
機能一覧 独自ドメイン 3個 6個 20個 100個
独自サブドメイン 無制限 無制限 無制限 無制限
転送ドメイン 無制限 無制限 無制限 無制限
メールアドレス 20個 40個 100個 無制限
FTPアカウント 20個 30個 50個 200個
FTPアクセス制限
FTPS
メーリングリスト 1 2 10 無制限
データベース 1個 0個 2個 10個 25個
(MySQL5)
PHPMYADMIN
(標準搭載)
リモートMYSQL
転送容量 30GB/月 60GB/月 200GB/月 600GB/月
1ヶ月 - 310円(310円/月) 510円(510円/月) 1,230円(1,230円/月)
3ヶ月 - 820円(274円/月) 1,440円(480円/月) 3,500円(1,167円/月)
6ヶ月 600円(100円/月) 1,650円(275円/月) 2,780円(464円/月) 6,580円(1,097円/月)
12ヶ月 1,188円(99円/月) 3,090円(258円/月) 4,940円(412円/月) 11,830円(986円/月)
初期費用
1ヶ月 - 1,540円 1,540円 1,540円
3ヶ月 - 1,540円 1,540円 1,540円
6ヶ月 1,540円 1,540円 1,540円 1,540円
12ヶ月 1,540円 1,540円 1,540円 1,540円

最上位プランの「ラクラクゴールド」でも12ヶ月契約なら月額1188円で利用可能です。

soy cmsにおすすめの「ラクサバ」

もっと詳しいことを知りたい方はこちらをクリック


PHPの絶対パス指定 soy cmsにPHPを組み込んでみた

soycms

soy cmsにPHPを組み込むのにパスの指定で手こずったので、自分用備忘録として投稿。

soy cmsではサイトを作成するとサイトIDのディレクトリが出来ます。

サイトをルート指定するとトップページはドメインルートで表示されるので、サイトのディレクトリからトップページを開くとURLが違ってきます。

例:)

http://hogehoge.net/ :ルート設定しているので当然ドメインルートのURL

http://hogehoge.net/site/ :本当はこのディレクトリにファイルがある。

ルート設定したサイトのトップページに相対参照でPHPを組み込むと参照先が違うのでうまく動作してくれません。

そこでPHPでドメイン直下から絶対参照をさせます。
書き方は

include($_SERVER['DOCUMENT_ROOT'] . '/path/file_name.php');


$_SERVER['DOCUMENT_ROOT'] でドキュメントルート指定し、続けて目的のPHPファイルのパスを記入します。

これでうまく動きました。

また調べると思うので自分用に。

<< 1 2 3 4 >> 4ページ中2ページ目