Open kenyiu opened 10 years ago
你是放在 http://yourdomain.com/newsdiff/ 下面看的嗎? 如果是的話,要改 .htaccess 把 RewriteBase / 改成 RewriteBase /newsdiff
改了,仍然有問題 :( 而且,訊息中的NewsdiffController.php,我在整個folder中都找不到。
試試看在 index.php 的 Pix_Controller::dispatch(DIR . '/webdata/'); 前面加上
$_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen('/newsdiff'));
不過不確定會不會出問題 比較好是看看能不能獨立給他個 domain
因為 PixFramework 的使用大部份都是獨立 domain ,因此他看到 /newsdiff 這個網址就跑去找 NewsdiffController 了 但其實應該要找 IndexController 才對
謝謝!終於看到畫面了,但似乎連結都壞掉,我還是放在獨立domain好了。
另外,請問應在那裡create table? 因為我本來是靠models下的php, 相應create出table key_value
, news
, news_info
, news_raw
。
但運行php webdata/scripts/crawler-new.php
總是彈出warning, 似乎需要default value。
PHP Warning: Pix_Table SQL Warning: (1364)Field 'error_count' doesn't have a default value INSERT INTO `news`(`url`, `normalized_id`, `normalized_crc32`, `source`, `created_at`, `last_fetch_at`) VALUES ('http://www.appl in /var/www/newsdiff/webdata/stdlibs/pixframework/Pix/Table/Db/Adapter/MysqlConf.php on line 187
最後,可以請教一下初始設定步驟為:
php webdata/scripts/crawler-new.php
嗎?可以用 php webdata/prompt.php 進入提示字元模式 並且輸入
KeyValue::createTable();
NewsInfo::createTable();
News::createTable();
NewsRaw::createTable();
另外 NewsRaw 那邊之前為了方便砍掉舊資料,會以月份來分 table 如果要開一個月份的 table 可以用
NewsRaw::getDb()->query("CREATE TABLE news_raw_201410 LIKE news_raw")
我自己現在在跑是每十分鐘會跑一次 crawler-new.php 去抓清單 以及每一分鐘跑三隻 crawler-part.php
分別是 crawler-part.php 0 3 crawler-part.php 1 3 crawler-part.php 2 3
每隻 crawler-part.php 負責 1/3 的新聞來源
依據上述方法,在運行crawler-new.php 時仍會有warning
PHP Warning: Pix_Table SQL Warning: (1364)Field 'error_count' doesn't have a default value INSERT INTO `news`(`url`, `normalized_id`, `normalized_crc32`, `source`, `created_at`, `last_fetch_at`) VALUES ('http://www.appl in /var/www/newsdiff/webdata/stdlibs/pixframework/Pix/Table/Db/Adapter/MysqlConf.php on line 187
另外,沒有標題,是否正常?(table news_info
, news_raw
, news_raw_201410
仍然沒有資料寫入)
最後,所有分頁的連結仍然壞掉,但我已經改回原來版本。
The requested URL /index/source/1 was not found on this server.
還要跑 crawler-part.php 才會抓內容 可以用 php webdata/scripts/crawler-part.php 0 1 來抓 至於 warning 的部份,可以在 mysql 裡面幫 error_count 加上 default = 0 解決
有關warning部分,我還修改了last_changed_at
deafult=0, 但仍有訊息如下:
PHP Warning: Pix_Table SQL Warning: (1265)Data truncated for column 'url' at row 1 INSERT INTO `news`(`url`, `normalized_id`, `normalized_crc32`, `source`, `created_at`, `last_fetch_at`) VALUES ('http://www.appl in /var/www/newsdiff/webdata/stdlibs/pixframework/Pix/Table/Db/Adapter/MysqlConf.php on line 187
所以,我更改了欄位url
的類別為text
。
另外,似乎table news_raw
的raw
亦不夠大,會有data truncated的情況出現,所以更改了欄位raw
的類別為mediumtext
。
謝謝!
Pull request #12 修改了預設值,應該可以解決新安裝狀況下發生的預設值 warning 問題。該 pull request 另外亦有資料庫初始化的 script,應該可以簡化初始化設定問題。
設定好db後,運行了一次crawler-new.php,但在檢視index.php時出現了404字樣,於是在ErrorController.php加入
得出以下訊息。
請問應如何設定?