程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 《APMServ 5.1.2》使用圖解

《APMServ 5.1.2》使用圖解

編輯:PHP綜合
1、下載APMServ5.1.2.rar並解壓縮


2、打開APMServ5.1.2主程序APMServ.exe


3、虛擬主機配置(看不清可點擊放大)


4、虛擬目錄配置(看不清可點擊放大)

 1、問:如何將舊版本的《APMServ 5.0.4增強版》中的網頁和數據庫資料遷移到《APMServ 5.1.2》中?
  答:將《APMServ 5.1.2》解壓縮到另外一個目錄,如果舊版本的《APMServ 5.0.4增強版》處於啟動狀態,先點擊舊版APMServ.exe中的停止按鈕,然後將舊版本www網頁目錄下的除phpmyadmin目錄以外的目錄文件全部復制到5.1.2版的www\htdocs目錄下,將舊版本MySQL\data數據庫目錄下的目錄文件全部復制到5.1.2版的MySQL4.0\data目錄下,確認在5.1.2版中能夠正常訪問這些網頁和數據庫後,刪除舊版本目錄即可。

  2、問:“80、443端口被占用,Apache2無法啟動。”是怎麼回事?
  答:如果您裝有IIS或其它HTTP服務器軟件並啟動,將占用80端口(如果IIS開啟SSL支持,還會占用443端口),可以將IIS更改一個端口,或者在APMServ中更改Apache的端口。

  3、問:為什麼啟動APMServ後,但在Windows的服務列表中沒有“Apache2”一項或“Apache2”處於停止狀態?
  答:請不要將APMServ放在含有中文的路徑中,因為以服務模式啟動的Apache不支持中文目錄,例如“D:\網站服務器\APMServ\”會導致Apache無法啟動。同理,添加虛擬主機、虛擬目錄時,路徑中也不能含有中文。

  4、問:我用MySQL5.1新建數據庫和導入原來MySQL4.0.x的數據全是亂碼,就像這樣“?????????????????????”,全是問號,如何解決?
  答:從MySQL4.1版本開始,MySQL增加對多國語言、多字符集的支持,APMServ使用了中文字符集GBK。而舊的MySQL4.0.x、MySQL3.x版本一般默認的字符集是latin1,以latin1編碼進行儲存,由於只支持單字符集,以非中文編碼的latin1編碼保存中文數據並不會出現亂碼。
  舊MySQL4.0.x數據導入MySQL4.1.x或5.x等支持多字符集的MySQL高版本數據庫後,非中文編碼的latin1編碼保存的數據就會顯示成“??????????????”。解決方法有很種,你可以在百度、Google搜索“MySQL4.1 字符集”或“MySQL5 字符集”了解相關資料。這裡給你一種簡便的方法,打開PHP程序中負責連接MySQL數據庫的文件(例如conn.php),增加一行mysql_query('set character set GBK');即可。例如:
$conn=mysql_connect ("127.0.0.1", "root", "");
mysql_select_db("database"); //database是數據庫名
mysql_query('set character set GBK');
  附:Discuz!官方論壇有一篇針對Discuz!用戶的“關於轉換或者升級以後出現亂碼情況的說明”,對MySQL4.1及更高版本的字符集問題有詳細地介紹,你可以參考一下。
  http://www.discuz.net/viewthread.php?tid=201826

  5、問:為什麼服務器在連續運行多天後或訪問峰值後,進程中的一個Apache.exe占用內存上百兆不減少?
  答:用記事本打開apache2\conf\httpd.conf,查找MaxRequestsPerChild,將MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。  
  通常在“Windows任務管理器-進程”中可以看到兩個apache.exe進程,一個是父進程、一個是子進程,父進程接到訪問請求後,將請求交由子進程處理。MaxRequestsPerChild這個指令設定一個獨立的子進程將能處理的請求數量。在處理“MaxRequestsPerChild 數字”個請求之後,子進程將會被父進程終止,這時候子進程占用的內存就會釋放,如果再有訪問請求,父進程會重新產生子進程進行處理。
  如果MaxRequestsPerChild缺省設為0(無限)或較大的數字(例如10000以上)可以使每個子進程處理更多的請求,不會因為不斷終止、啟動子進程降低訪問效率,但MaxRequestsPerChild設置為0時,如果占用了200~300M內存,即使負載下來時占用的內存也不會減少。內存較大的服務器可以設置為0或較大的數字。內存較小的服務器不妨設置成30、50、100,以防內存溢出。

  6、問:為什麼某些在老版本PHP中編寫的PHP程序,在APMServ中不能傳遞變量? 
  答:PHP開發組基於安全性考慮,get、post、session在PHP 4.2.0以及後續版本中,自動全局變量默認是關閉的,所以要從上一頁面取得提交過來得變量要使用$_GET['foo']、$_POST['foo']、$_SESSION['foo']來得到,而在之前的PHP版本中直接就可以取得變量。這就造成了某些在舊版本PHP中編寫的PHP程序,在新版本PHP中不能傳遞變量(APMServ 5.1.2中的PHP版本為最新的5.1.2)。
  當然您也可以修改自動全局變量為開(用記事本打開APMServ\PHP\php.ini-dist,修改register_globals=Off為register_globals=On)。考慮到安全性與兼容性,還是強迫自己按照PHP新版本的要求,熟悉新的寫法比較好。
  《PHP手冊》自動全局變量的相關說明請見:
  http://cn.php.net/manual/zh/language.variables.predefined.php
  《PHP手冊》打開自動全局變量可能導致的安全性問題請見:
  http://cn.php.net/manual/zh/security.globals.php
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved