前段時間重裝了系統,後來說是又要用php,就重新搭建了apache+php+mysql的環境,由於之前搭建過好多次,感覺很easy,很快就搭建完成,然後寫了下面的常用的測試環境的代碼:
1 <?php 2 3 phpinfo(); 4 5 ?>
然後正常輸出,感覺環境沒問題,就沒管了……
最近要用了,運行以前的項目代碼(使用了CI框架)卻一直顯示空白頁面,得不到任何正確輸出。
囧了……
自己重新寫簡單的php語句都能正常運行,看來環境是沒問題的。
直到,使用了date()函數,才發現了一絲端倪。
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
但是,我明明已然在php.ini文件中配置了 date.timezone = Asia/Shanghai
好吧,php.ini文件中配置的信息沒有生效
最先想到的是服務器讀取的不是這個php.ini配置文件,因為以前遇到過wamp沒有刪除,然後自己重新配置環境,系統內存在不止一個php.ini文件,讀取的是歷史的配置文件。
查找系統文件,只有一個php.ini文件,而且重裝了系統,即便以往有現在也沒了。
再次查看phpinfo();
讀取的確實是我現在配置的php.ini
那麼問題就可能是php.ini文件有問題沒有被正確解析了。
我試著使用php代碼連接下數據庫,發現找不到相關的函數……
看來php.ini確實存在問題。
仔細檢查自己修改過的配置,沒有什麼問題……
再檢查一遍,還是沒有問題……
……
……
然後,到每天散步的點了,決定不弄了,實在不行全都刪了,重新搭建環境,關了電腦,下樓散步,然後打個電話吐槽今天的“幸福”生活……
散步回來之後,不甘心,還是要弄明白,不然睡不著……
然後,不死心的最後一次檢查了php.ini,終於讓我捉到這個bug了
配置擴展所在目錄時,漏寫了半邊引號,導致後面的解析都出現了問題,所以配置時區,訪問數據庫都沒能正確進行。
添加上半邊引號,重啟apache服務,OK了,一切又都運行得那麼美好
總結:粗心大意要不得……