Warning: include(/home/blog66rr/public_html/wp-content/plugins/hyper-cache/cache.php): failed to open stream: No such file or directory in /home/blog66rr/public_html/wp-content/advanced-cache.php on line 24

Warning: include(/home/blog66rr/public_html/wp-content/plugins/hyper-cache/cache.php): failed to open stream: No such file or directory in /home/blog66rr/public_html/wp-content/advanced-cache.php on line 24

Warning: include(): Failed opening '/home/blog66rr/public_html/wp-content/plugins/hyper-cache/cache.php' for inclusion (include_path='.:/opt/cpanel/ea-php70/root/usr/share/pear') in /home/blog66rr/public_html/wp-content/advanced-cache.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /home/blog66rr/public_html/wp-content/advanced-cache.php:24) in /home/blog66rr/public_html/wp-includes/feed-rss2.php on line 8
apache – unethost無限空間虛擬主機 技術分享部落格 https://blog.unethost.com unethost 專注於提供優質的虛擬主機服務及相關問題解答 Tue, 26 Jul 2016 08:05:27 +0000 zh-TW hourly 1 https://wordpress.org/?v=6.0.8 如何在linux裡安裝 apache + php + mysql (centos 6.x) https://blog.unethost.com/how_to_install_apache-php-mysql_in_centos/ Tue, 26 Jul 2016 08:05:27 +0000 http://blog.unethost.com/?p=3769 閱讀全文 如何在linux裡安裝 apache + php + mysql (centos 6.x)]]> 當網站不使用cpanel進行管理時,
這時要在linux裡安裝apache+php+mysql,
其實真的是相當容易(管理維護則是另一個問題),

請看我們下列安裝介紹:

1.拿到主機資料後(vps或是獨立主機)

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後台安裝的套裝程式?

安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。

 

 

]]>
如何修改網站 index 的優先讀取順序? https://blog.unethost.com/edit_htaccess_to_change_index/ Thu, 16 Jun 2016 08:40:13 +0000 http://blog.unethost.com/?p=3561 閱讀全文 如何修改網站 index 的優先讀取順序?]]> apache_htaccess_index._wp

在一般虛擬主機,因為root權限問題,
無法直接去修改 apache 的 httpd.conf,

有一種改法是修改 /public_html 底下的 .htaccess 檔案,
這樣 web server 的部份設定,其優先權會以 .htaccess 為主。

在我們的知識庫裡,有.htaccess的部份教學

今天希望將訪客進站的優先讀取檔,
由 index.php 改為 default.php,
如果去修改 httpd.conf,這樣整部主機的網站可能因此被迫改動,
所以照著我們前一段的說明,改為修改 .htaccess 檔。
<如何設定語法>

1.其編輯語法為:

#Alternate default index page
DirectoryIndex default.php

2.如果是要設定多種排序
比方說讀不到 index.html 就改讀取 index.php

語法就是:

#Alternate default index page
DirectoryIndex index.html index.php
<友善的檔案下載>

點擊下載: .htaccess

這是第二範例,請在在修改成您要的內容,在上傳即可。

(內容為 .htaccess.zip ,因為這wp不允許直接上傳 .htaccess)

 

<進階用法>
如果將 .htaccess 傳到不同資料夾,
就可以控制不同資料夾的 index  讀取。

 

(本篇教學由unethost.com客服撰寫)

延伸閱讀:如何備份Cpanel後台安裝的套裝程式?

安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。

 

]]>
cpanel 次網域功能設定錯誤,導致的連鎖反應 https://blog.unethost.com/cpanel_sub_domain_name_setting_issue/ Mon, 09 May 2016 13:56:49 +0000 http://blog.unethost.com/?p=3366 閱讀全文 cpanel 次網域功能設定錯誤,導致的連鎖反應]]> cpanel_sub_domain_wp

今天講解的這個情況是相當冷門的狀況,
源於主機用戶的空間特殊設定,導致連鎖error。

<發生何種狀況?>
雖然是獨立主機用戶,但為了方便管理linux上的網站,
都還是會加裝cpanel控制台。

一開始遇到的問題我們列為問題2,後來又發生新的問題,
導致了兩種特殊狀況的發生:

1. 固定IP無法更換,一但切換到其他IP,網頁就無法正常顯示。
2. 透過固定IP進行瀏覽網頁,會發現其CSS的語法都異常,導致排列不齊,
用網址查看就沒問題。

<檢查出問題>
先有問題2,但是查看log檔,也看不出問題,幾乎查可無查,
所以處理進度幾乎停擺。

偶後解決完問題1,這個問題不攻自破。

現在先將處理拉回問題1,當固定IP切換到另一組IP後,
網頁就無法開啟,並會被導向到主機的hostname,
因為這個狀況太冷門,我們自己內部資料庫沒有處理方式,
所以我們找了國外的協力廠商幫忙處理。

後來經由廠商協助查看後發現:
該空間帳號的部份次網域及附加網域和網域寄放
都設定指向到hostname,可能是這個部份的設定引起的。

<解決問題>
我們將此設定狀況,告知了網站站長,並在其允許的情況下,
將所有指向hostname的設置,都移除掉,
一移除後,固定IP就恢復正常了。

然後站長自己想到CSS的問題,又去測試了一次,
也因此解決了。

但是當初為什麼會有指向hostanme的設置,
站長自己本身也沒印象了。

<結論>
有時我們教大家作空間設定,都希望大家是以標準模式下去運作。
因為有些問題,可能不單是撞到cpanel的bugs,
可能也是web server的問題。

一部server,單純架設web server,若不小心改壞後,
整部主機的web server會開不起來,而促使網管人員盡速修復。

但是cpanel有獨立各帳號權限的功能,所以改壞一個帳號,
並不會讓整部web server異常,但不保證改壞的空間,
能夠完整且正常的運行靜態或動態網頁。

 

(本篇教學由unethost.com客服撰寫)

延伸閱讀:如何備份Cpanel後台安裝的套裝程式?

安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。

]]>
關於cpanel與node.js的問題 https://blog.unethost.com/about_cpanel_issue_of_nodejs/ Tue, 26 Apr 2016 15:05:23 +0000 http://blog.unethost.com/?p=3287 閱讀全文 關於cpanel與node.js的問題]]> cpanel_nodejs_issue_wp

node.js 本身是一種 web server,
程式設計師可使用node.js建構網站及開發網站應用程式。

因其 web server 的特性,所以導致和cpanel的apache不相容。

<安裝套件功能>
我們在之前有介紹過,撰寫wiki的套裝程式mediawiki
mediawiki是wiki百科所採用的程式基底,
所以其功能是相當完整的。

最近有站長詢問mediawiki的額外套件功能,
因此發生一件很有趣的狀況。

<觀看說明及安裝文件>
站長想要安裝 mediawiki Parsoid,並找了線上說明給我們看。
因該頁的安裝說明不夠完整,所以我們找了Parsoid的工程安裝文件
後來仔細看一下linux的安裝步驟,其中有git,及nodejs。

並需要啟動node.js server。

cpanel_nodejs_issue_01

其實安裝這個套件,看到這步驟就卡住了。


<為什麼會有問題?>
主要是我們虛擬主機裡,都是使用cpanel控制台,
而cpanel的web server是apache,如果硬是裝上別套web server,
將會直接導致 80 port 的衝突或是.htaccess語法問題。

<如何解決?>
如果主機內只有單一網站,
或許可以試著改裝 node.js 和apache共存(用不同port及快取),
但有時增加一個特殊設定,可能就會因此弄出其他問題。

而同主機內有其他網站在使用,我們也不便直接去改,
以免有問題,會立即性影響到其他網站的使用。

尤其cpanel核心功能出現問題,也不是我們人力技術所能解決的。

如果未來cpanel有增加node.js的支援,
我們就會順應去啟動的,畢竟cpanel公司有一群工程師專門在debugs。

<獨立系統比較好運作>
後來我們建議該站長,如需使用到node.js的功能,
可能就要改用vps ……等等獨立系統,
這樣在去安裝 node.js server才是最穩當的。
(server裡的service越單純,出問題越容易除錯)

 

<結論>
我們在前年就有考慮,是否推出node.js的虛擬主機服務?
但如果要改裝相容node.js的空間控制台(市面上還真的有),
除了控制台公司的服務,其實還有我們自己的知識成本(解決問題的能力)在,
後來評估後發現,在虛擬主機裡可能不容易推node.js server,
因為會使用node.js應用的,都是軟體工程師,
其特性是習慣自己架server,而非租用虛擬主機。

 

(本篇教學由unethost.com客服撰寫)

延伸閱讀:如何備份Cpanel後台安裝的套裝程式?

安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。

]]>
如何修復web server,接收proxy server傳送來的真實訪客ip? https://blog.unethost.com/how_to_fix_web_server_visit_real_ip_from_proxy_server/ Mon, 11 Apr 2016 07:50:55 +0000 http://blog.unethost.com/?p=3195 閱讀全文 如何修復web server,接收proxy server傳送來的真實訪客ip?]]>  

real_ip_nginx_wp

今天這是比較特殊的情況,因為分流問題,
web前端還有額外架設proxy server,來抓取web server的資料。

但是因為設定問題,導致web server,
只會抓到proxy server本身的ip,
而不是抓到訪客的真實IP。

這部份的處理核心分為兩個階段(特定規格):

  1. proxy server (nginx)的處理
  2. web server (apache)的處理

1.proxy server的部份: 因為是用nginx架設,其nginx.conf,或proxy.conf,或virtual.conf,已經設定好顯示訪客真實ip的語法(如本篇的封面圖片),
資料傳送到web server後,web server也需要有相對應的mod去接收,
其mod是mod_rpaf。

2.web server的部份:直接登入web server安裝mod_rpaf (以centos為例)。

cd /usr/local/src
wget http://mirror.trouble-free.net/sources/mod_rpaf-0.6.tar.gz
tar -xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-*
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

接著在cpanel apache裡設定載入mod_rpaf及其參數:

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 在增加一組proxy的ip 
RPAFsethostname On
RPAFheader X-Real-IP

 

接著在重開apache,順利的話就可以抓到訪客真實ip,方便做購物記錄之類的。

 

(本篇教學由unethost.com客服撰寫)

延伸閱讀:如何備份Cpanel後台安裝的套裝程式?

安裝上述的軟體,我們提供虛擬主機試用,七天滿意保證,
功能完整使用不受限制,歡迎點我申請。

 

]]>
使用cpanel,確定ftp有檔案,系統配置也沒問題,但為什麼瀏覽器只會顯示 404 not found ? https://blog.unethost.com/cpanel_404_not_found/ Thu, 16 Oct 2014 13:08:16 +0000 http://blog.unethost.com/?p=861 閱讀全文 使用cpanel,確定ftp有檔案,系統配置也沒問題,但為什麼瀏覽器只會顯示 404 not found ?]]> 這可能是使用cpanel,偶爾會遇到一個問題,同台主機每個帳號配置都相同,其他的網站都可以正常顯示網站內容,但是這個網站,檢查過權限是沒問題的,檔案也都存在,但是瀏覽器就是只會顯示 404 not found 。

這是很有趣的一個除錯經驗:

1. 瀏覽器輸入 xxxx.com 會跳轉到 xxxx.com/cgi-sys/defaultwebpage.cgi,如下圖:
404_2

 

2. 瀏覽特定路逕的檔案,則是出現 404 not found ,如下圖:
404_1

3. 查看 error_log 檔,出現相關字串為: File does not exist: /usr/local/apache/htdocs/ 。

看了error_log提示,這似乎是有指向的問題,重新檢查了域名 dns  ip (A) 指向, 以及 whm 裡所配置的IP,結果找到問題了,這是域名指錯IP引起的,趕快修正後,恢復正常了,最基本的設定,真的是會是忙中有錯,如果是使用自架 name server ,則這樣的問題是不會發生的。

 

]]>
如何決定主機是否要分流? https://blog.unethost.com/load-balancing/ Wed, 23 Oct 2013 14:57:44 +0000 http://blog.unethost.com/?p=379 閱讀全文 如何決定主機是否要分流?]]> disp.cc 是個很有特色的電子布告欄網站,它用http + Ajax做出類似BBS的瀏覽效果,而且比BBS更好用。作者是台大電信所畢業的高材生。最近,disp.cc的人氣愈來愈高,我也順便看了一下,disp.cc的站長,knuckles是如何處理分流問題的。

引述站長在他個人的文章中,寫下的效能調校方法:

disp.cc load balancing structure

不過弄了之後發現,在一樣的價錢下,一台16G + 一台8G 的效能,比一台 24G 的效能好太多了 之前用單獨一台24G時,記憶體還空著很多,系統負載就飆高了… 看來要增加使用者不是單純加記憶體就好了

disp.cc的站長是租用日本的主機,所以有RTT上的優勢。而且該日本的主機商有提供一些高級的分流工具,例如node balancer,所以站長也可以相對容易完成分流這件事。雖然我個人認為,disp.cc站長做的決策非常的正確,但是,我卻不會建議我所有的客戶採用類似的解法。要說明這個觀點,要先從disp.cc的web server 設定開始講起。

Disp.cc的web server架構

在我寫這篇文章的時間點,disp.cc使用的web server是apache 2.2.15,PHP/5.4.20。雖然說,我沒有進一步的效能調節資訊,但是從站長提供的資料,我會猜測,之所以會發生『單獨一台24G時,記憶體還空著很多,系統負載就飆高了這種情況,這跟apache C10K問題有關。

apache C10K問題

這個問題是這樣子產生的:對於要寫網路程式,最直覺的寫法,就是用阻塞式I/O並且配合多執行緒。( blocking I/O & multi-thread ),又稱之為thread-model的寫法。這樣子雖然是最簡單最直接的寫法,在連接數(connection number)到達一萬(10k)時,因為大量的執行緒不停地做環境切換(context switch),導致增加硬體也無法提升效能的窘境。Context switch帶來的效能損耗會隨著執行緒(thread)愈多愈加嚴重,終於在10000個連接數時,到達崩潰的時間點。以今日的瀏覽器,往往輕易地可以產生6~10個平行的連接數,同時上線人數到達2000人時,這個C10K現象就會日益嚴重。

C10K問題的解法

相對於傳統的阻塞式I/O和多執行緒寫法,另一種寫程式的寫法,是使用非阻塞式的I/O,單一執行緒處理大量連接的寫法。代表作品是nginx。( nginx為了可以發揮多核心處理器的效能,也是可以生成多執行緒的,但是本質上,nignx還是使用event-model來處理連接數的問題。) 我的客戶中,有同時1萬人上線的大論壇,用了nginx之後,就可以用獨立主機(dedicated server)順順地跑。

disp.cc這個站,雖然沒有使用event-model來處理,但是因為分流的緣故,每一台機器上的connection數剩下一半,如此一來,就巧妙地迴避了C10K問題。除此之外,一般而言,VPS的架構,不同的VPS,硬碟的IOPS也是獨立的。所以這種分流也迴避了硬碟I/O的瓶頸。

VPS 與 Dedicated Server

從價格上來說,一定是VPS便宜。但是真的要講性價比的時候,獨立主機(dedicated server)因為可以使用百分之百的硬體資源,反而可以有更高的性價比。也就是說,同樣一塊錢買到的硬體運算效能,Dedicated Server一般而言是大於VPS。

獨立主機雖然性價比高,但是如果遇到了這種C10K問題,沒有使用event-model來處理,就變成一定要分流。而且這種時候的分流是不經濟的,因為如果主機上的資源尚未充分使用就分流,這就造成了資源上的浪費。除此之外,VPS比較具有彈性,如果5000個connection只要使用2G的RAM,我們可以輕易找到提供2G RAM的VPS。但是獨立主機的硬碟規格就不能如此隨意地客製化,獨立主機配合不同世代的CPU,RAM的大小會愈來愈大。

總結,如果某個大站的站長想要節省主機的費用,一般而言,使用獨立主機,可以比VPS省到30%~50%左右。但是,使用獨立主機時,就可能不適合參考disp.cc現行的分流方式了。

]]>
如何在centOS上,透過yum安裝基本的web server https://blog.unethost.com/centos-yum-install-apache-php-mysql/ Wed, 06 Feb 2013 17:55:43 +0000 http://blog.unethost.com/?p=209 閱讀全文 如何在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

]]>
apache mod_security關閉單一網域 https://blog.unethost.com/apache-mod_securit-dns-only-clos/ Tue, 21 Aug 2012 15:14:34 +0000 http://blog.unethost.com/?p=171 閱讀全文 apache mod_security關閉單一網域]]> 有一些程式,例如Ecshop,遇到apache mod_security這個模組,ecshop的舊版本,會有不相容的情況。這種時候,如果客戶不願意升級,我必須採取的處理方式,就是針對該客戶的單一網域,關閉apache mod_security

要針對單一網域關閉apache的mod_security,根據我的測試,無法使用.htaccess檔來做,會當掉。一定要直接把相關的指令,寫在apache的config檔裡。而cpanel/WHM的apache config檔,是配合GUI自動生成的,不能隨便修改。所以這個改法,必須考慮cpanel的檔案配置。方法如下:

mkdir -p /usr/local/apache/conf/userdata/std/2/username/domain.com

然後生成檔案:

/usr/local/apache/conf/userdata/std/2/username/domain.com/mod_security.conf

在這個檔案中,加入:

<IfModule mod_security2.c> SecRuleEngine Off </IfModule>

存檔

然後,執行:

/scripts/ensure_vhost_includes --user=username

其中,username是cpanel的使用者名稱,而domain.com是網域名稱。

]]>