以前ハマって下書きのままになってたので掘り起こしました・・・。
concrete5で作ったサイトのsitemap.xmlをウェブマスターツールとかに登録しておきたかったので覚書。
xmlの設定場所
「自動実行ジョブ」をクリック。
「sitemap.xmlファイルを生成する」の箇所の「実行」をクリック・・・したところ、
ファイル concrete5をインストールしたURL/httpdocs/sitemap.xml の書き込みエラー
エラーがでてしまいました。
書き込みエラーの改善方法
※エラー箇所は現在のバージョンでは改善されているかも(未検証)しれませんので参考程度にどうぞ
ファイルのダウンロードをする
5.6.3.1の自動実行ジョブのsitemap.xmlでエラーを参考に直しました。
上記フォーラムページの最下部にある、「generate_sitemap.php」(ZIP)をダウンロードします。
確か同じファイル名だとうまくいかなかったので(曖昧すぎる・・・)ファイル名をgenerate_sitemap02.phpにして、
generate_sitemap02.php内の
class GenerateSitemap extends Concrete5_Job_GenerateSitemap {
の箇所を
class GenerateSitemap02 extends Concrete5_Job_GenerateSitemap {
に修正。
concrete5を設置した場所/jobs/にアップロードします。
インストール
インストール待ちに表示されますので「インストール」をクリック。
「ジョブが正常にインストールされました。」と表示されます。
今回インストールしたsitemap.xmlを「実行」して、エラーがでなればOK。
「example.com/sitemap.xmlのファイルに保存されます。 」と表示されます。
ジョブの自動化について
ゴミ箱の隣にあるアイコン・・・これは何というマークだ?^^;
「実行」を毎回クリックするのは面倒ですね。
こちらから自動実行に関する設定ができます。
cronが使えればそちらの設定が、cronが使えなくてもページにアクセスすると自動実行してくれるみたいです。
ジョブの削除について
エラーの出る方のジョブはゴミ箱のアイコンをクリックすると削除することができます。
が、確認のアラートは表示されませんので削除する際は気をつけてください。
一回誤って消しちゃいました(汗)
誤ってジョブを削除してしまったら
こちらのコミュニティが参考になりました。自動実行ジョブ サイトマップ作成の復活
application/bootstrap/app.phpに下記追加
Route::register('/reinstall_job/{jHandle}', function($jHandle) { \Concrete\Core\Job\Job::installByHandle($jHandle); return \Concrete\Core\Http\Response::create('Job installed.'); });
インストールページにアクセスする
「サイトマップ作成」を削除した場合→ http(s)://example.com/index.php/reinstall_job/generate_sitemap
「古いページバージョンを削除」を削除した場合→ http(s)://example.com/index.php/reinstall_job/remove_old_page_versions
どのジョブにアクセスしたらいいかわからない場合はconcrete/jobsフォルダの中にPHPファイルがあるのでそこから古いページバージョンを削除→remove_old_page_versions.php→http(s)://example.com/index.php/reinstall_job/remove_old_page_versionsだな!みたいな連想をしてください(酷い説明である)
インストールが完了されたと表示されたら実行ジョブ一覧ページを確認してください。
インストールが無事にできていたらapp.phpに追加したコードを削除してappファイルをアップロードしてください。