2018年7月28日 星期六

自行架設單機版PHP網頁伺服器指南 (appserv)

目標:
自架appserv後,安裝 phpMyAdmin 4.0.10.20版

相關軟體:

1.appserv-win32-2.5.10
https://drive.google.com/file/d/1jFlDqc01kjK4vUGo_pAU-PKLUnTt2RrY/view?usp=sharing

2.phpMyAdmin-4.0.10.20-all-languages
https://drive.google.com/file/d/1sB2Bm5tILLm8x32U8AgB5i98bqdNBp2Z/view?usp=sharing

狀況:
  安裝appserv後,phpMyAdmin 的版本為 2.10.3 ,太過老舊,以至於一些常用功能無法使用,因此額外安裝新版 phpMyAdmin ,升級至 4.0.10.20

  會選擇用appserv做單機版的原因是,新版的XAMPP的PHP版本都在5.5以上,導致mysql_connection系列函數無法使用,必須要用 mysqli ,而以前寫的舊程式,要修改的東西實在太多了,只好選擇低版本的 php 來安裝了


以下是安裝時遇到的問題以及解決辦法

通過phpmyadmin登陸時提示以下錯誤:

phpmyadmin crypt_random_string requires at least one symmetric cipher be loaded

報錯原因:路徑問題。

解決辦法:

1、進入到phpmyadmin根目錄下,打開\libraries\phpseclib\Crypt\Random.php。

2、大概在195行,找到下面代碼並把紅色背景字體添加進去。

switch (true) {
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/AES.php’):
if (!class_exists('Crypt_AES’)) {
include_once 'AES.php’;
}
$crypto = new Crypt_AES(CRYPT_AES_MODE_CTR);
break;
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/Twofish.php’):
if (!class_exists('Crypt_Twofish’)) {
include_once 'Twofish.php’;
}
$crypto = new Crypt_Twofish(CRYPT_TWOFISH_MODE_CTR);
break;
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/Blowfish.php’):
if (!class_exists('Crypt_Blowfish’)) {
include_once 'Blowfish.php’;
}
$crypto = new Crypt_Blowfish(CRYPT_BLOWFISH_MODE_CTR);
break;
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/TripleDES.php’):
if (!class_exists('Crypt_TripleDES’)) {
include_once 'TripleDES.php’;
}
$crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CTR);
break;
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/DES.php’):
if (!class_exists('Crypt_DES’)) {
include_once 'DES.php’;
}
$crypto = new Crypt_DES(CRYPT_DES_MODE_CTR);
break;
case phpseclib_resolve_include_path('libraries/phpseclib/Crypt/RC4.php’):
if (!class_exists('Crypt_RC4’)) {
include_once 'RC4.php’;
}
$crypto = new Crypt_RC4();
break;
default:
user_error('crypt_random_string requires at least one symmetric cipher be loaded’);
return false;
}


錯誤訊息
Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\phpMyAdmin....

解決辦法 修改php.ini
appserv 的php.ini在哪??
→ C:\Windows\php.ini
max_execution_time 修改成 300


遭遇狀況
使用PHP擷取的時間,與現實時間差了八小時
解決辦法 修改php.ini

;date.timezone =
修改成
date.timezone = "Asia/Taipei"


遭遇狀況
Cannot send session cache limiter - headers already sent
解決辦法 修改php.ini

output_buffering = off
改成
output_buffering = 4096

沒有留言:

張貼留言