技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類(lèi) >

阿里云PHP環(huán)境

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2019-02-03 00:02┆點(diǎn)擊:

  Aliyun Cloud Engine (以下簡(jiǎn)稱(chēng)ACE)提供基于PHP 5.3.5的運(yùn)行環(huán)境(Runtime Environment),支持標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)、Memcache、Cron、Session、storage,同時(shí)增加一些高級(jí)特性來(lái)滿足開(kāi)發(fā)者的需求。ACE選擇PHP作為首選支持語(yǔ)言,主要是因?yàn)槟壳皣?guó)內(nèi)的開(kāi)發(fā)者以使用PHP語(yǔ)言的比重最大,未來(lái)會(huì)考慮支持持Node.js,ASP.net,Python和Java等。

  ACE的PHP Runtime和官方標(biāo)準(zhǔn)PHP環(huán)境幾乎完全一樣,99%的代碼可以不加任何修改完美的運(yùn)行在ACE環(huán)境中。ACE出于安全和性能的考慮,對(duì)標(biāo)準(zhǔn)PHP進(jìn)行了一些擴(kuò)展和改進(jìn)。ACE的PHP會(huì)隨著官方的版本升級(jí)而升級(jí),當(dāng)官方版本升級(jí)時(shí),我們會(huì)評(píng)估其重要程度,并根據(jù)ACE自身特點(diǎn)合并到我們的Runtime中。

  限制:

  ACE平臺(tái)為保證應(yīng)用安全性和穩(wěn)定性,對(duì)各類(lèi)服務(wù)設(shè)定了一些限制和配額,用戶在使用前應(yīng)當(dāng)仔細(xì)閱讀,避免使用中出現(xiàn)問(wèn)題:

  1.資源限制

  memory_limit : 腳本可分配的內(nèi)存 默認(rèn):32M

  post_max_size: post數(shù)據(jù)大小 默認(rèn):10M

  upload_max_filesize 上傳文件大小 默認(rèn):4M

  2.禁用函數(shù)

  出于安全性的考慮,ACE禁用了一些php函數(shù),禁用的標(biāo)準(zhǔn)主要有四點(diǎn)::

  1) 出于對(duì)安全性的考慮

  2)出于對(duì)資源管理的考慮

  3) 不常用的API

  4) 我們提供更好替代方案的API

  詳細(xì)的限制列表請(qǐng)參考:安全禁用函數(shù)列表

  3.解決方法

  安全禁用函數(shù)的具體影響以及解決方法:

  1) 文件緩存

  CE本地文件讀寫(xiě)受限制,雖然通過(guò)上面的文件讀寫(xiě)同步可以實(shí)現(xiàn),但是考慮到效率問(wèn)題,建議在文件緩存上面再部署一層全文memcache緩存結(jié)構(gòu)。

  2) Memcache緩存

  //連接

  $mem = new Memcache(); //創(chuàng)建memcache對(duì)象,內(nèi)部會(huì)訪問(wèn)agent獲取地址及ID

  $mem->init();

  //保存數(shù)據(jù)

  $mem->set('key1', 'This is first value', 0, 60);

  $val = $mem->get('key1');

  //替換數(shù)據(jù)

  $mem->replace('key1', 'This is replace value', 0, 60);

  $val = $mem->get('key1');

  //保存數(shù)組

  $arr = array('aaa', 'bbb', 'ccc', 'ddd');

  $mem->set('key2', $arr, 0, 60);

  $val2 = $mem->get('key2');

  //刪除數(shù)據(jù)

  $mem->delete('key1');

  $val = $mem->get('key1');

  //關(guān)閉連接

  $mem->close();

  ?>

  3) 存儲(chǔ)服務(wù)

  由于不能直接寫(xiě)本地文件,move_uploaded_file 方法已不能正常使用,改用ACE提供方法支持

  move_uploaded_file($tmp_name, $filename)

  替換為:

  $ce = new CEStorage();

  $result = $ce->upload($tmp_name, $filename);

  #$rs1 = $ce->errmsg(); 輸出錯(cuò)誤信息

  #$rs2 = $ce->errno();

  $result 為返回的附件文件路徑,形如: $filename

  該路徑可直接訪問(wèn)。