如何查看主機系統時間(php程式語法)

timezone_wp

最近有獨立主機用戶,跟我們反應系統時間的問題,
登入centos查看,os的時間的確是對準台北時間,
但他們的程式跑出來的時間是美國時間,
針對這樣的狀況,就要改用程式語法進去查看一下。

繼續閱讀 如何查看主機系統時間(php程式語法)

關於自訂(切換) php版本extensions的問題

php_extensions_wp

在cpanel主機系統裡,不論是虛擬主機或是實體主機,
只要有需要,都會安裝 php 切換的外掛。

除了切換php版本,還可以選擇相關的 php extensions。
以下是使用延伸模組,所遇到的狀況整理:

繼續閱讀 關於自訂(切換) php版本extensions的問題

如何解決 phpmyadmin ,出現: Fatal error: Call to undefined function __() in 的錯誤

phpmyadmin_issue_wp

我們曾在:
如何讓 cpanel 空間有獨立的 phpmyadmin (無痛安裝phpmyadmin)
介紹過使用phpmyadmin管理mysql

今天有cpanel的獨立主機用戶,
phpmyadmin上傳後,出現了錯誤訊息:
Fatal error: Call to undefined function __() in

繼續閱讀 如何解決 phpmyadmin ,出現: Fatal error: Call to undefined function __() in 的錯誤

我該如何安裝或是設定php 函式庫(PDFlib)呢!?

今天我們有虛擬主機用戶,通知我們要使用php的PDFlib。
通常我們在收到客戶請求後,就會先去 google 搜索一下要求的函式庫的設定方式,
而這次是PDFlib的,不僅多工(客戶要求->客服處理->客服回報->客戶),
還得消耗相當的閱讀,安裝,設定……等等時間。
繼續閱讀 我該如何安裝或是設定php 函式庫(PDFlib)呢!?

如何快速解決因為升級php版本,導致的程式問題呢?

近年來,php更新速度太快,導致早期開發的網站程式,可能因為新舊函式庫的相容性問題,因而導致網站無法應用的窘況,現在為了解決這樣的狀況,並可以先給修改程式一個緩衝,我們提供可自選php版本的方式。

繼續閱讀 如何快速解決因為升級php版本,導致的程式問題呢?

如何在centOS上,透過yum安裝基本的web server

有的客戶因為要跑相對比較吃硬碟I/O數的遊戲,喜歡不裝cpanel。但是不裝cpanel的話,剛拿到的centOS是連完整的web server環境都沒有的。本文就是來講解,如何在一台乾淨的centOS上,透過yum安裝基本的web server

(*) 安裝web server
1 for php
yum install php

2 for ioncube loader ( ioncube loader是一個跟加密的php source code有關的模組,不灌這個的話,如果要執行的插件是有加密的php source code,就跑不動了。)
wget -q -O – http://www.atomicorp.com/installers/atomic |sh
yum install php-ioncube-loader

3 for mysql
yum install mysql mysql-server php-mysql
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
修改mysql的 password
/usr/bin/mysqladmin -u root password ‘你要設定給mysql root的密碼

4 for httpd
yum install httpd
service httpd restart

php指定對外連線使用的IP位置

一般而言,主機商的主機,不會只有一個IP位置。通常會有超過一個,以備不時之需。然而,由於網路上的有些服務,常會鎖IP,所以透過php去存取遠端的網站時,有時候就必須考慮這個對外連線使用的IP位置。

使用ifconfig指令,通常eth0上附加的這個ip就是預設的對外連線用IP(outgoing IP address)。由於使用者登入主機時,是一般user,無法使用ifconfig。所以要用其它方法來判斷。其中一種方式是curl。下面這個指令就可以得到系統預設對外主動連線時所使用的IP了。

curl -s ip.appspot.com

而,如果對外是透過php去存取遠端的資料,又必須指定php一定要透過某個網路介面/IP address來連線的話,可以考慮使用php curl library。範例的code如下:

<?
$url = “http://www.google.com”
$curlh = curl_init($url);
curl_setopt($curlh, CURLOPT_USERAGENT, $uagent);
curl_setopt($curlh, CURLOPT_INTERFACE, “888.888.888.888“);
curl_setopt($curlh, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curlh);

echo $result;
?>

其中,”888.888.888.888″,就是要被指定用對外連線用的IP位置。

php 5.3.10-joomla

2012年4月初,我們開始陸續升級主機上的php版本。舊版的php 5.2.17已經是deprecated了。在接連得知有客戶的網站因為php 5.2的bug問題,被駭客攻擊之後,我們決定還是要忍痛升級php 5.3.10

升級php這件事,我相信對各家的主機商都是大工程。主要也是相容性的問題。如果升級一台shared host的php,老客戶的程式出現問題,我們還是得幫忙處理。

果然,我們一升級之後,客戶的joomla程式就出現了問題:本來沒有狀況的網頁,冒出了 Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in  …的字樣。

後來我們終於找到了問題,php 5.3對於語法嚴謹度的要求,比5.2還來得高。所以在 joomla的 modMainMenuHelper::buildXML() 這個函數,如果參數1傳入時,並不是用reference的型態傳入,就會造成問題。

解法是這樣子:
在檔案 /modules/mod_mainmenu/helper.php 中

修改一行,把&去掉
function buildXML(&$params)
改成
function buildXML($params)

這樣就搞定了。