請看我們下列安裝介紹:
2.登入linux shell。
3.在 linux shell 下,執行下列指令:
yum -y install httpd php php-mysql mysql mysql-server
4.待上列指令執行完後, apache + php + mysql
(各版本會以yum當下為主)就安裝完成了。
因為這已經是linux裡常用的工具,
在自動安裝上已經相當的完整,
所以一行就可以搞定了。
但也不要因此輕蔑其管理,
快速安裝是一種opensource的精神,
想要獲得更精進的server管理,
還是需要投入相當的時數才行。
(本篇教學由unethost.com客服撰寫)
延伸閱讀:如何備份Cpanel後台安裝的套裝程式?
安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。
]]>
最近有獨立主機用戶,跟我們反應系統時間的問題,
登入centos查看,os的時間的確是對準台北時間,
但他們的程式跑出來的時間是美國時間,
針對這樣的狀況,就要改用程式語法進去查看一下。
<透過高權限的查詢>
如果權限許可,查詢主機的時間的部份,
可以透過 whm (root),及centos 的date語法。
whm:
centos:
<透過程式進行查詢>
只要將下列語法的 time.php 傳到ftp上,
在透過瀏覽器開啟即會顯示出主機時間。
<?php
$datetime = date ("Y- m - d / H : i : s");
echo $datetime ;
?>
或是下載time,解開zip在上傳即可。
後來查到的時間問題,
原來是bios引起的,所以得去調整一下bios的時間。
<由程式可以解決的方式?>
一般套裝軟體,可以透過程式後台去設定,
就可以強制時區。
自己撰寫的軟體,則是要加入相關的語法才有這樣的功能,
以php為例,語法是:
date_default_timezone_set('時區');
這樣就可以一勞永逸。
(本篇教學由unethost.com客服撰寫)
延伸閱讀:如何備份Cpanel後台安裝的套裝程式?
安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。
在如何設定 upload_max_filesize 參數裡,
我們有講解可以去自動調整php.ini的部份參數,
不過如果是已被公開,具有危險性的參數,
透過一般後台是無法開啟的。
在php5.2時,有一個參數是: allow_url_include,
被發現會有一些注入式攻擊,導致資料外洩的情況發生,
所以在自訂php功能裡,就會將這樣的參數關閉,
讓使用者盡量不去使用。
如果因為程式撰寫,還是得使用這個語法,
可以透過服務單通知我們開啟,
只是相當的風險,我們也都會先行告知的。
]]>
在cpanel主機系統裡,不論是虛擬主機或是實體主機,
只要有需要,都會安裝 php 切換的外掛。
除了切換php版本,還可以選擇相關的 php extensions。
以下是使用延伸模組,所遇到的狀況整理:
使用狀況1:
有些特殊extensions,只存在於特定的php版本,
像是register_globals,只支援到 php5.2之前,後來因為安全性,
5.3之後就沒有在支援。
使用狀況2:
Q:確定的php版本,有支援相關extensions,但在php切換裡沒有選項?
A:這是因為比較冷門的extensions,在選取功能中,預設是disable,
遇到這樣的狀況,可以通知我們協助處理。
使用狀況3:
Q:已選好的extensions,但是透過php info,似乎沒有啟動成功?
A:這是php切換功能異常,得通知我們處理。
最後就是,當要使用的php版本確定後,啟動extensions也都正常,
通常不要在去動這部份功能,經我們長期觀察,並不會在有其他狀況,
最常發生狀況,還是在於切換後才會發生。
(本篇教學由unethost.com客服撰寫)
延伸閱讀:如何備份Cpanel後台安裝的套裝程式?
安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。
我們曾在:
如何讓 cpanel 空間有獨立的 phpmyadmin (無痛安裝phpmyadmin)
介紹過使用phpmyadmin管理mysql。
今天有cpanel的獨立主機用戶,
phpmyadmin上傳後,出現了錯誤訊息:
Fatal error: Call to undefined function __() in
如何透過網頁error message找出解法?
1. google搜索看看,查一下是否php環境設定引起?
2. 除php版本問題之外, 根據多篇文章的提示,
大多數都是沒有安裝到 mbstring 引起的。
3. 但是透過 php.ini 查看後,發現server是有安裝mbstring。
遇到網路上找不出解答的情況?
1. 當網路上找不到解答,可以考慮直接查看log檔。
2. 像我們自己就有額外的測試方式,
比方說把主機調整到我們自己的優化設定。
根據本次的狀況,我們先把php handler調成fastcgi,
因為這可能是資料夾權限的問題,改為fastcgi可以先避開。
順利解決:
果不其然,將php handler 切成 fastcgi後,順利解決了。
(本篇教學由unethost.com客服撰寫)
延伸閱讀:如何備份Cpanel後台安裝的套裝程式?
安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。
點進去看完安裝步驟,都是大約需要快10步的操作,而且不保證不會出錯,
要是安裝過程中,出現無法預期的問題(一種錯誤是安裝中的,但更多的問題是現有設定會跑掉),就得在根據錯誤訊息去debugs。
2. 所幸在我們的虛擬主機上,已經導入了使用者可以自動調整php的系統,就擺脫了安裝php
函式庫的痛苦,並改以設定取代了安裝。 使用我們的功能,就不是安裝,而是安純的設 定,而設定步驟是相當容易上手的,其步驟如下:
(1) 登入cpanel
(2) 點擊 select php version (icon)
(3) 選擇 php 版本 ,及勾選相關的library,並存檔。
(4) 查看 php info ,就可以查到相關函式庫被啟動了。
而且操作完,幾乎就是無痛的,也不需要在除錯(除非是程式撰寫有誤)或是得在添加其他lib,有空我們會在多多介紹。
操作上述的教學,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。
最常見的狀況:
1. php 5.3 以後的版本,已經沒有支援 register_globals ,但在 php 5.2 以前,尚有許多網站,都有使用到 register_globals,一但關掉 register_globals 後,網站的功能都將失效,只好在程式修正之前,先暫用 php 5.2 並開啟 register_globals 。
2. 套裝程式的模組,因升級 php 5.4 後,導致網站無法使用,並出現錯誤訊息。為了不影響當前的使用,先將PHP切回 php5.2 ,就可先解決該錯誤訊息,後續的在逐步升級模組。
如果網站有以上的狀況,請參考 unethost.com 的 php 切換教學 。
延伸閱讀: 如何解決 Fatal error: Class ‘mysqli’ not found in
更多請看: 設定php函式庫,安裝或是設定PDFlib!?
]]>(*) 安裝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
使用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這件事,我相信對各家的主機商都是大工程。主要也是相容性的問題。如果升級一台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.
修改一行,把&去掉
function buildXML(&$params)
改成
function buildXML($params)
這樣就搞定了。
]]>