當前位置:首頁 » 編程語言 » php授權

php授權

發布時間: 2023-07-20 23:45:57

A. 如何運行php

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:

我們要在電腦上運運ASP文件 只要裝IIS就可以。

哪要運行PHP文件呢。該怎麼辦!~

解析:

如何安裝運行php

1. Unix/Windows: 我的php.ini 文件應該放在哪?

UNIX下默認它應該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人會在編譯時改變它,使用--with-config-file-path 標志。 例如, 你可以這樣設它: --with-config-file-path=/etc

然後你可以復制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。

Windows下 php.ini默認的路徑是 Windows 系統目錄. 如果你在使用 Apache webserver, php.ini 則最先在 Apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對應不同版本的 Apache(同一台機器上)。

更多細節請查閱 configuration file.

2. Unix: 我安裝了 PHP, 但我每次載入一個文檔, 會得到下面的消息: Document Contains No Data ! 怎麼回事?

這可能是因為你的 PHP 發生了core-mping錯誤。 查找你的伺服器錯誤日誌文件,看看是否屬於這種情況。 然後報告這個錯誤。如果你知道怎樣使用 gdb ,你可以提供一個 backtrace 在你的錯誤報告里。這將會對開發人員解決 這個問題有很大幫助。如果你是在將PHP作為Apache模塊使用,那麼請按下面的步驟做:

停止 d 進程

gdb d

停止 d 進程

> run -X -f /path/to/d.conf

瀏覽你剛才出錯的 URL

> run -X -f /path/to/d.conf

如果你還有 core mp, gdb 現在會通知你

打入: bt

在你的 bug report里應該包含backtrace 。 這些會被發往 bugs.php/

如果你的腳本使用了正則表達式函數 (ereg() and friends), 你應該確保你編譯 PHP 和 Apache 用的是同一個正則表達式包。 在 PHP 和 Apache 1.3.x 這個過程是自動進行的。

3. Unix: 我使用 RPMS 安裝 PHP , 但Apache 不支持 PHP頁面! 怎麼辦?

假設你安裝了 Apache 和 PHP(從 RPM ) , 你需要反注釋或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so

And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */

... 到全局域里, 或者到你想要的 支持PHP的虛擬域里。

4. 我使用 RPMS 安裝 PHP 3 , 但是它沒有我需要的資料庫選項支持! 我該怎麼辦?

因為 PHP 3 內建支持的關系, 編譯一個完整的可適於所有應用的 PHP RPM是相當困難的。 在 PHP 4有談到這點。 對 PHP 3, 我們只好建議你使用INSTALL.REDHAT (在 PHP包里)描述的機制。 如果你一定要使用 RPM 版的 PHP 3, 讀...

RPM 包管理器設置 RPMS 簡單的安裝,不帶資料庫支持 and 因為RPMS 使用 /usr/ 而不是標準的 /usr/local/ 目錄存放文件. 你需要告訴 RPM 文件你要支持哪種資料庫以及它們的最上級目錄的位置。

下面的例子將解釋在Apache模式下怎樣支持通行的資料庫Mysql.

當然所有的這些可以稍作修改,以支持其它的PHP支持的資料庫。我們假設你安裝了 MySQL and Apache ,完全是用 RPMS 安裝的。

首先,移去 mod_php3 : rpm -e mod_php3

然後取得rpm包並安裝, 不是 --重編譯 rpm -Uvh mod_php3-3.0.5-2.src.rpm

編輯/usr/src/redhat/SPECS/mod_php3.spec 文件

在 %build 一節里增加你想要的資料庫支持, 以及路徑信息。

對 MySQL 你應該增加: --with-mysql=/usr \

%build 節看起來象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex

改動完成後,象下面這樣重編rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

重啟 Apache,你已經得到了rpm下的Mysq

l的支持。 注意到這種做法比你重新得到一個 PHP 3 的tarball 代碼,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。

5. Unix: 我用 FrontPage 擴展包對Apache打了補丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容嗎 ?

不是, PHP 和 FrontPage擴展包運行得很好.。問題是FrontPage 包修改了幾個Apache 結構參數,而PHP要用到它們.在FrontPage擴展包被打上後, 重新編譯 PHP (使用 make clean ; make ) ,會解決這個問題。

6. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面時,空白一片。

在瀏覽器里用 查看源文件 看你的腳本,你可能會發現你看到的是源程序。 這表示 web server 並沒有送腳本到PHP去執行。肯定是伺服器配置上哪兒出了錯。 仔細檢查PHP安裝的 server 配置。

7. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的 PHP頁面時,我得到一個 server 500 error。

這是伺服器在運行 PHP 時發生了錯誤。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常,這個錯誤就是由於伺服器配置引發的,應該仔細檢查。

8. 某些操作系統: 我安裝PHP沒出錯,可是我啟動Apache時,得到一個 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress

這個問題其實與 PHP 無關, 而與 MySQL 客戶端庫有關。 --with-zlib,有些操作系統需要,而有些不需要。MySQL FAQ已經講述了這個問題。

9. Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面, 得到如下錯誤: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:

這是 PHP 根本沒有產生任何輸出。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常。

一旦PHP在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因為以下原因:

你的PHP腳本的許可權許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的PHP文件,它樣都必須能被匿名 inter 用戶 ISUR_ 訪問

腳本文件根本不存在(或者不是你認為的位置。)請注意在IIS里,你能夠阻塞這個錯誤,做法是在設置腳本映射目錄時, 選上 check file exists 框。這樣如果腳本不存在,伺服器會返回一個404錯誤。 這樣做也有其它的一些好處, 就是IIS僅為你做經過授權的操作。

10. Windows: 我嚴格按照install的要求做,可是還是不能讓我的php在IIS下工作。

確定任何想要運行PHP的用戶有操作php.exe的許可權! IIS 使用匿名的inter用戶,它是在IIS安裝時系統自動增加的。 這個用戶需要操作 php.exe的許可權. 還有,任何需要授權的用戶也必須有訪問 php.exe的許可權。 在 IIS4下,你要告訴它PHP是一個腳本引擎。

B. Php網站需要授權才能使用後台的全部功能,這個該如何破解啊

install.lock文件表示網站已安裝(數據完成初始化),沒有這個文件打開網站可能會跳轉到安裝界面。
如果你有源碼的話,完全可以通過修改密碼跳過授權進去後台。但這要看源碼復雜程度。另外如果後台功能有授權用戶許可權問題,那修改就更麻煩了。
如果你掌握了資料庫,不如直接在資料庫里增加個用戶數據,賬號密碼和用戶許可權隨便填,難點在於找到密碼加密的方法。

C. 怎麼給自己開發的一套php程序授權域名

不難。

重點是在於怎麼獲取這個域名,和怎麼防止別人篡改這個授權。


1 獲取網站域名

$url卜滾=$_SERVER["HTTP_REFERER"];//獲取完整的來路URL

$str=str_replace("http://","",$url);核局//去掉http://
$strdomain=explode("/",$str);//以「/」分開成數組
$domain=$strdomain[0];//取第一個「/」以前的字元

用上面的方法才准確無誤,如果你用PHP自帶的函數就不對如:
$_SERVER['SERVER_NAME']這個函數它獲取的是伺服器域名


獲取域名以後,可以在寫一個方法,把獲取到的域名發到授權的伺服器 判斷一下,是否就是型氏余認證過的,如果是就可以訪問,不是就提示 沒有授權啥的

D. php怎麼獲取釘釘員工授權信息

做過一個E應用,使用lumen框架,和你的思路是一樣的,新用戶點進去就自動授權注冊應用,數據存到我們自己的資料庫中,不依賴釘釘,我們還同步了部門信息,如果粘貼復制和下面的那個同學一樣,看上去你也會覺得懵,方法都是封裝好了的。

建議你這樣試試看:

  1. 獲取AccessToken:

    後端通過corpid,corpsecret請求介面gettoken?corpid=id&corpsecret=secrect獲取AccessToken

  2. 獲取釘釘用戶userid:

    前端需要相應的處理,攜帶authCode請求,加上AccessToken這兩個參數請求介面/user/getuserinfo?access_token=access_token&code=authCode這個

  3. 獲取釘釘用戶詳情:

    使用access_token和上一步的釘釘userid 請求介面 /user/get?access_token=ACCESS_TOKEN&userid=

  4. 插入釘釘用戶的數據到你的 資料庫中

我們這樣做的:

/**

* 釘釘免登陸獲獲取用信息

* @param $authCode

* @param $url

* @return array

*/

static function outhLogin($authCode, $url)

{

if (empty($authCode) || empty($url)) {

return self::returnError('1101', self::$errorArray['1101']);

}

$accessToken = ComponentDingtalk::getPcAccessToken();

if ($accessToken['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '獲取access_token失敗');

return self::returnError('1102', self::$errorArray['1102']);

}

$dingUserId = ComponentDingtalk::getDingUserid($accessToken['data'], $authCode);

if ($dingUserId['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用戶userid獲取失敗(調用釘釘API)');

return self::returnError('1103', self::$errorArray['1103']);

}

$dinguserInfo = ComponentDingtalk::getDingUserInfo($accessToken['data'], $dingUserId['data']);

if ($dinguserInfo['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用戶信息獲取失敗(調用釘釘API)');

return self::returnError('1104', self::$errorArray['1004']);

}

$userInfo = $dinguserInfo['data'];

return self::transaction(function () use ($accessToken, $userInfo, $url) {

if (count($userInfo['department']) > 1) {

$departIdArr = [];

$departNameArr = [];

for ($i = 0, $iMax = count($userInfo['department']); $i < $iMax; $i++) {

$departInfo[$i] = ServerDepartment::getByDdDepartid($userInfo['department'][$i]);

$departIdArr[] = $departInfo[$i]['id'];

$departNameArr[] = $departInfo[$i]['name'];

}

$depart['id'] = implode(',', $departIdArr);

$depart['name'] = implode(',', $departNameArr);

} else {

$ddDepartmentId = implode(',', $userInfo['department']);

$depart = ServerDepartment::getByDdDepartid($ddDepartmentId);

}

//插入用戶

$user = ServerEmployee::getByDdUserid($userInfo['userid']);

if ($user && $user['status'] == 2) {

return self::returnError('1105', self::$errorArray['1105']);

}

if (empty($user)) {

$roleId = 0;

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$userId = ServerEmployee::insert($roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$userId) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用戶初始化創建失敗');

return self::returnError('1106', self::$errorArray['1106']);

}

}

$userId = $userId ?? $user['id'];

// 更新Token

$id = $userId;

$roleId = $user['roleId'];

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$updateParams = ServerEmployee::update($id, $roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$updateParams) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '用戶信息更新失敗' . json_encode($updateParams, JSON_UNESCAPED_UNICODE) . '/' . json_encode([$id, $roleId, $departId, $name, $mobile, $depart, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status]));

return self::returnError('1107', self::$errorArray['1107']);

}

// 前端的配置信息

// 獲取jsTicket

$jsTicket = ComponentDingtalk::getPcJsTicket($accessToken['data']);

if ($jsTicket['code']) {

self::logError(__CLASS__ . '->' . __FUNCTION__, '獲取jsTicket失敗(調用釘釘API)');

return self::returnError('1111', self::$errorArray['1111']);

}

// 組裝簽名數據

$curUrl = $url;;

$nonceStr = uniqid('', true);

$agentId = $_ENV['PROJECT_ddInterfaceAgentID'];

$timeStamp = time();

$corpId = $_ENV['PROJECT_ddInterfaceCorpId'];

$signature = ComponentDingtalk::getSign($jsTicket['data'], $nonceStr, $timeStamp, $curUrl);

$config = array(

'url' => urldecode($curUrl),

'nonceStr' => $nonceStr,

'agentId' => $agentId,

'timeStamp' => $timeStamp,

'corpId' => $corpId,

'signature' => $signature

);

// 獲取當前角色的許可權

$roleInfo = ServerRole::getById($roleId);


// 當前用戶的頂級部門(不含根部門)

$departInfo = ServerDepartment::getById($departId);

if ($departInfo['parentid'] == 1) { // 二級部門(總經辦)

$departRootId = $departId;

$departRootName = $departName;

} else {

$sonDepart = ServerDepartment::getById($departInfo['parentid']);//分組

if ($sonDepart['parentid'] == 1) {

$departRootId = $sonDepart['id'];

$departRootName = $sonDepart['name'];

} else {

$grandsonDepart = ServerDepartment::getById($sonDepart['parentid']);//部門

if ($grandsonDepart['parentid'] == 1) {

$departRootId = $grandsonDepart['id'];

$departRootName = $grandsonDepart['name'];

} else {

$grandchildDepart = ServerDepartment::getById($grandsonDepart['parentid']);//分公司

$departRootId = $grandchildDepart['id'];

$departRootName = $grandchildDepart['name'];

}

}

}

$company = ServerDepartment::get(['parentid' => 0, 'dd_departid' => 1]);


return self::returnSuccess(array(

'id' => $userId,

'name' => $name,

'token' => $token,

'tokenOverAt' => $tokenOverAt,

'config' => $config,

'power' => $roleInfo['power'] ?? '',

'departId' => $departId,

'departName' => $departName,

'departRootId' => $departRootId,

'departRootName' => $departRootName,

'company' => $company['name'],


));

}, function (Exception $e) {

echo $e->getMessage();

self::logError(__CLASS__ . '->' . __FUNCTION__, $e->getMessage());

return self::returnError('1108', self::$errorArray['1108']);

});

}

E. PHP程序如何設置域名授權綁定

第一。必須對方同意綁定在該網站
第二。必須你的域名,必須ip轉向該php程序ip
地址
第三。該php程序,必須綁定你的域名。
關於綁定,一般是在
iis設置裡面,有一個主機頭。把你的域名綁在上面就行了。
祝樓主好運。

F. 一段PHP網站域名授權,怎麼破解~

在代碼前面加一句賦值就行;

$_SESSION['authcode']=true;
if(!isset($_SESSION[『authcode』])){
$query=file_get_contents(『http://你的域名/check.php?url=』.$_SERVER[『HTTP_HOST』]);
if($query=json_decode($query,true)){
if($query[『code』]==1)$_SESSION[『authcode』]=true;
elseexit(『
『.$query[『msg』].』
『);
}
}
熱點內容
書本編譯是什麼意思 發布:2025-02-08 04:45:56 瀏覽:951
淘寶密碼賬號在哪裡看 發布:2025-02-08 04:29:39 瀏覽:536
描繪四季的美文寫一份朗讀腳本 發布:2025-02-08 04:29:21 瀏覽:138
金蝶軟體伺服器是電腦嗎 發布:2025-02-08 04:27:06 瀏覽:973
linux如何搭建c編譯環境 發布:2025-02-08 04:24:49 瀏覽:820
ps腳本批量處理切圖 發布:2025-02-08 04:19:03 瀏覽:57
iisftp命令 發布:2025-02-08 04:04:39 瀏覽:455
安卓為什麼軟體老更新 發布:2025-02-08 03:53:40 瀏覽:735
演算法實際應用 發布:2025-02-08 03:53:07 瀏覽:535
c語言加密文本 發布:2025-02-08 03:47:50 瀏覽:681