Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月16日 at 16:39

***
Xserver側で、concrete5のダウンロードとその後の自動解凍の時点でpublic_html配下に
他のホルダがあることで「ダウンロード、展開に失敗しました。」となりました。
***
この部分がよくわからないのですが、どういう事でしょうか?
SSHを利用しているとかですか?
SSHを利用しての解凍は、パーミッションの関係でエラーが出た過去がありそれから使っていません。
代わりに、ローカルのファイルをzipにしてFTPでアップしてからPHPのZipArchiveで解凍しています。

サーバーのルートにインストールするという事で認識していましたがそれでよろしいでしょうか?
既存の稼働しているサイトがある場合は、新規でフォルダを作ってとなりますけど、その場合も本公開時にちょっと癖があります・・・


***
その後、local側とServer側のフォルダ(特にServer側のフォルダを追加)やFileを比較(Server側のfileをダウンロードしてlocal側のFileとWinMergeで比較し、必要都度Server側のfileを修正)しながら、追加や入れ替えを行って見たものの状況は変わらずでした。
***

これはアップしたデーターが欠損しているという事ですか?
だとしたらアップロードからやり直したほうがいいと思います。
サーバーにアップするファイルはapplication > config内のデーター意外、ローカルと同じ必要があります。

Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月16日 at 21:22
akiさま
 連絡ありがとうございます。


***
Xserver側で、concrete5のダウンロードとその後の自動解凍の時点でpublic_html配下に他のホルダがあることで「ダウンロード、展開に失敗しました。」となりました。
***この部分がよくわからないのですが、どういう事でしょうか?

 → 教えていただいた手順2で、「Xserverに、ローカルで制作していたconcrete5のデーターを丸々アップロード 」とあります。

 これでXserver側のドメイン/public_htmlの配下に、以下のフォルダ(application ,concrete ,packages ,updates )とファイル(.htaccess ,LICENSE.TXT ,composer.json ,composer.lock ,index.php ,robots.txt )がアップされますよね?

(それとも・ここから理解が間違っているのでしょうか?)


SSHを利用しているとかですか?
SSHを利用しての解凍は、パーミッションの関係でエラーが出た過去がありそれから使っていません。代わりに、ローカルのファイルをzipにしてFTPでアップしてからPHPのZipArchiveで解凍しています。

 → SSHは利用していますが、この例の場合は外して通常のFTPでアップしています。


その後、
手順3・で「Xserverにアップした、application > config内のデーターを全部削除」

ここで、config内:フォルダのdoctrine,generated_overrides、php(app.php, database.php)が削除されることになります。よね?


その後、
手順4で、concrete5をクリーンインストールするのですが、

concrete5をクリーンインストールする為に、
http://concrete5-japan.org/help/5-7/developer/installation/simple-downloader/
から、concrete5 CMS Simple Downloadereをダウンロードしてドメイン/public_htmlに置きます。(c5downloader.php )

(ここは正しいですか?)

ブラウザから、http://サーバーID.xsrv.jp/ c5downloader.php にアクセスし「ダウンロード開始」ボタンをクリック 。

この手順で、/public_html配下に競合するフォルダが存在しなければ、ダウンロードごに自動解凍され、インストーラーが立ち上がります。が、

/public_htmlには先にアップした(application ,concrete ,packages ,updates)フォルダが存在するため、「ダウンロード、展開に失敗しました。」エラーとなります。


 ここで、確認させていただきたいのですが、concrete5をクリーンインストールするのに他の方法(concrete5 CMS Simple Downloadereをダウンロードしないで行う方法があるのでしょうか?)


 「ダウンロード、展開に失敗しました。」エラーとならないように、先にアップした(application ,concrete ,packages ,updates)フォルダをリネーム(0714application ,0714concrete ,0714packages ,0714updates)したのです。(ファイルの方は展開で置き換わっていました)

 その後、MySQLのdbをインポートして

(application ,concrete ,packages ,updatesを0715application ,0715concrete ,0715packages ,0715updates) にリネームして、0714application ,0714concrete ,0714packages ,0714updatesをapplication ,concrete ,packages ,updatesをリネームし直しても)ダメでした。
もちろん大事なconfig配下フォルダのdoctrine,generated_overrides(内concrete.php)、とphp(app.php, database.php):特に database.phpの  'server' => '',  'database' => '',  'username' => '',  'password' => '', パラメータは修正してあります。
これでダメだったので、

再度、0715application ,0715concrete ,0715packages ,0715updatesをリネームして
(application ,concrete ,packages ,updates)フォルダの中身をapplication > config内のデータ以外をwinMergeで比較していき、フォルダの追加やファイルの追加をしましたが、これでもダメでした。
 

Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月17日 at 5:25
concrete5をクリーンインストールする為に、
http://concrete5-japan.org/help/5-7/developer/installation/simple-downloader/
から、concrete5 CMS Simple Downloadereをダウンロードしてドメイン/public_htmlに置きます。(c5downloader.php )


ここが違いますね。
ファイル自体はアップしてあるので利用する必要はありません。
config内を削除したら普通にアクセスすればインストールが始まります。
 

Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月17日 at 8:42
akiさま。

早朝から
ありがとうございます。

ダウンロードしないで、クリーンインストールすると、db入れ替え前ではエレメンタルのページで開くことができます。

db入れ替え後は、以前と同じエラー
An unexpected error occurred.
An exception occurred while executing 'SELECT t0.pkgID AS pkgID_1, t0.pkgHandle AS pkgHandle_2, t0.pkgVersion AS pkgVersion_3, t0.pkgIsInstalled AS pkgIsInstalled_4, t0.pkgAvailableVersion AS pkgAvailableVersion_5, t0.pkgDescription AS pkgDescription_6, t0.pkgDateInstalled AS pkgDateInstalled_7, t0.pkgName AS pkgName_8 FROM Packages t0 WHERE t0.pkgIsInstalled = ? ORDER BY t0.pkgID ASC' with params [1]: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'aitc_c5840db.Packages' doesn't exist
です。

.htaccessを確認すると
#suPHP_ConfigPath /home/a-itc/iine.pw/xserver_php/
#AddHandler fcgid-script .php .phps
#FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .php
#FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .phps
です。

これを
suPHP_ConfigPath /home/a-itc/iine.pw/xserver_php/
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
AddHandler fcgid-script .php .phps
FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .php
FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .phps
に変更すると、

 500 Internal Server Error になります。

• 常に発生する場合:
CGIのパーミッション設定に誤りがある。 / CGIのソースコードに問題がある。/ .htaccess の記述に誤りがある。」となります。
.htaccessの記載が間違っているのでしょうか?


FTPはWinSCPを使っていますが(SCPでもSFTPでもなくFTPです)

宜しくお願いします。
 

Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月17日 at 12:25
aclissさんのコメント見逃してました。
DBの大文字小文字が原因かもしれません。

Windowsの場合、my.iniでlower_case_table_namesの設定は必須ですよ。
 

Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月17日 at 19:24
akiさま

ありがとうございます。

lower_case_table_names
の件ですが、aciissさんから教えていただいた
Database Migration Tool を試してみました、しかし状況は変わらずでした
ただ、Database Migration Tool のメッセ―ジでlower_case_table_names=0と表示され
どうやら「my.iniに後続コンフィギュレーションを持っている必要がある」というメッセージから
my.iniに設定が必要なのはなんとなくわかったのですが、my.iniのどの位置にlower_case_table_namesをどの様に設定したら良いかが分からずじまいのままです。

追記:
Unix では、lower_case_table_names のデフォルト値は 0 です。
Windows では、デフォルト値は 1 です。
OS X では、デフォルト値は 2 です。
•Unix 上では lower_case_table_names=0 を、Windows 上では lower_case_table_names=2 を使用してください。
これでデータベース名とテーブル名の大文字と小文字の区別が保持されます。
この欠点は、ユーザーのステートメントが、Windows 上で正しい大文字または小文字でデータベース名およびテーブル名を常に参照していることを確認する必要があることです。
大文字と小文字が区別される Unix にステートメントを転送する場合、大文字と小文字が正しくなければこのステートメントは機能しません。
とうい情報も見つけたのですが

xserver側でどの様に指定するかがわかりません。

何度もアドバイスを戴いて恐縮なのですが、

教えていただけると助かります。
 

Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月18日 at 5:36
lower_case_table_namesの設定はローカル側であってXserver側での設定は必要ありません。
サーバーをいじるのには、.htaccessやphp.iniに限るなどの制限があると思うので、レンタルサーバーの場合サーバー側をいじるというのは現実的ではありません。
ローカルでサーバー側の設定にできる限り合わせるというのが必要だと思います。

my.iniの設定はここら辺に適当に追加してあげればいいです。
# The MySQL server
[mysqld]
lower_case_table_names = 2
port=


ただ、この設定をインストール後でしてもDBのテーブル等は小文字のままなので何かしらの対策が必要です。
この対策については小文字から大文字の変換が考えられますが、当方で経験が無いのでお答えできません。

最悪、サイト規模が大きくなければ初めからやり直すのが一番早いかもしれません。一度作り上げたものならばさほど難しくないと思うので。
テーブルやカラム名を全部チェックするのも現実的ではないと思いますし。

この大文字小文字についてはconcrete5に限らず、SQLを利用している各種CMS等に当てはまることなので、制作や開発時にローカル設定を注意するとしか言えません。
解決まで至らず申し訳ございませんが・・・
 

Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月18日 at 7:47
akiさま

朝からありがとうございます。

そうなんですね開発前に設定すべきことなんですね(後から設定し直してもダメかもしれませんが、やってみます)。一度作り上げてしまって、コンテンツもかなり追加しているので、Server側で再度行うのは可能だとは思いますが、時間がかかるので。

これでもダメなら、覚悟してXserver側でやり直します。
「教科書にはこの辺りは載っていなかった様に思えるのが残念です」

沢山のサポートと、丁寧なアドバイスありがとうございました。

p.s.
やはり、後からmy.iniに lower_case_table_names = 2を設定して
MAMPのPhpAdminでエクスポート から XserverでPhpAdminでインポートしてもダメでした。

別のドメインで,Xserver側で再構築します。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月19日 at 2:44
バージョン8.4.0 で標準インストールされるテーブル名を変更するSQL文作成してみました。
添付ファイルを解凍してください。
xServer の phpMyAdmin を 開き、「該当のデータベースを選択」して
[SQL]タブを開き、そのテキストエリアに 添付したファイルを解凍してできたファイルのSQL文をコピー&ペーストして[実行]を押してください。
これでテーブル名が大文字と小文字の組み合わせに変更になると思います。
(例)packages => Packages

これでサイトにアクセスすれば表示されるのではないかと思います。

(注意点)
アドオン インストール時に追加されるテーブルには対応していません。
全ての環境でテストをしたわけではなく動作を保証することはできません。ご了承ください。
必ずDBはバックアップを取り自己責任でお願いします。。

スッキリと回答できず申し訳ないのですが、せっかくコンテンツ作られたのにと思いまして。。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月19日 at 7:25
aclissさま

おはようございます。

ありがとうございます。

早速試してみます。

p.s.
 試してみました。
しかし、以下の様なsyntaxエラーがでています。申し訳ないです。
エラー
SQL query:

{\rtf1\ansi\ansicpg932\cocoartf1561\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset0 Helvetica;

MySQL のメッセージ:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{\rtf1\ansi\ansicpg932\cocoartf1561\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset' at line 1

P.S.2
 ALTER TABLE以降、全行コピペしたら、やはりエラーですが、

 今、テーブルを確認してみたら、
1番目のテーブルだけがリネームされていました。

arealayoutcolumns → AreaLayoutColumns

p.s.3
試しに、1行ずつコピペして
ALTER TABLE `arealayoutpresets` RENAME TO `AreaLayoutPresets`;\
「実行」すると
エラー
SQL query:

\

MySQL のメッセージ:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' at line 1
となるのですが、

テーブル名は AreaLayoutPresets に変わっています。

これは、根気よく、1行ごとコピペで「実行」すれば良いということでしょうか?


 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月20日 at 7:52
申し訳ないです。ファイル形式がリッチテキストになってたみたいです。。。。
新しくファイル添付しました。このファイルで試してみてください。

もう一点。フォーラムで一度投稿された内容に編集で追記されると書き込みした通知メールが飛ばないので、試された結果などは新しく投稿していただいた方がわかりやすいです。
よろしくお願いします。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月20日 at 21:36
aclissさま
 ありがとうございます。
お手を煩わせてしまいました。

 実は、localhostでサイト表示させながら、Xserver側で別のドメインを使って、2/3程度移植しました。 ベースがあるので約1.5日でここまで来ました。

折角SQL分を作って戴けたことですし、
今後もlocalhostで開発してレンタルサーバーにデプロイすることですので
時間を見て
実施してみたいと思います。

その時は、結果も含めて
改めて報告させていただきます。

ありがとうございました。
 

Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月22日 at 14:23
aclissさま

お世話様です。
 c5_change_table_name.sqlを試してみました。

結論から言うと、やはりダメでした。
指定戴いたTableで、少なくとも2つの不一致がありました。
1.ExpressForm170ExpressSearchIndexAttributes が存在しないのと、
2.mail2expresssearchindexattributes という余分なテーブルが存在しました。

mail2expresssearchindexattributesの中身を確認したら、

 自動返信メール用の設定があり、これは先日の私が失念していた
controller.phpとblock_form_auto_reply.phpに関連するものの様です。

従いまして、こちらの対応は諦めます。

今後、Windowsで開発するときに充分気を付けて行うということで、

色々サポート戴きありがとうございました。


p.s.
ところでcontroller.phpblock_form_auto_reply.phpについてはリネームしました

リネームした結果
他のページは全く問題ないのですが、
問い合わせページで、問い合わせフォームが全く表示されない
(ブランク行が空くのではなく、全くフォームブロックを置いていない状態とおなじ)
になりました。

こちらの方は、
ブロックを再度ドラックアンドドロップして編集しようとしましたが
「フォームブロック」が2つ存在し
1つは、controller.phpに関連したフォームの様で使えません

もうひとつは、ドラックアンドドロップできない状態です。
(こちらが元々のレガシーフォームのブロックの様ですが)


application/blocks/form/と/application/mail/に
オリジナルのものを入れ替えなおすなどの必要があるのだとは思いますが、
どのフォルダのどのファイルをCopyすれば良いのか分かりません
(この部分を含め、もう一度やり直す必要があると思っています)が、

これ以上お願いするのも心苦しいのですが、
なにかサポート戴けたら嬉しいです。
 

Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?

2018年7月23日 at 12:26
aclissさま

 メール送信の件、自己解決しました
おさがわせしました。
原因は2つありました。
1つは、(site_map_treeが悪さをしていた)メール自動返信機能追加の際に
view.php をコピーして、編集したsite_map_treeをリネームして無効化して
フォームブロックを再度配置して編集

もう一つは、外部SMPの設定が上手く行かない
ポート番号を設定してもダメなので、
結局、PHP関数の方に変えたこと

て、テストメール(PCからとiPhoneから)がOKになりました。

ありがとうございます。