<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # WebServer WorkerMan自帶了一個簡單的Web服務器,同樣也是基于Worker實現的。文件位置在Workerman/WebServer.php。這個WebServer開發的目的主要是為了方便運行一些簡單的Web程序,例如workerman-todpole等web界面程序。 ## 使用方法 在Applications/YourApp/start.php中添加 ```php use \Workerman\Worker; use \Workerman\WebServer; require_once __DIR__ . '/Workerman/Autoloader.php'; // 這里監聽8080端口,如果要監聽80端口,需要root權限,并且端口沒有被其它程序占用 $webserver = new WebServer('http://0.0.0.0:8080'); // 類似nginx配置中的root選項,添加域名與網站根目錄的關聯,可設置多個域名多個目錄 $webserver->addRoot('www.example.com', '/your/path/of/web/'); $webserver->addRoot('blog.example.com', '/your/path/of/blog/'); // 設置開啟多少進程 $webserver->count = 4; Worker::runAll(); ``` # WorkerMan的Webserver與普通Web開發異同 ### 1、普通Web程序架構運行機制 一般的Web程序一般都是基于nginx+php-fpm或者apache+php的架構開發的,這些架構的運行機制一般是是每個請求都會經過請求初始化、創建執行環境、詞法解析、語法解析、編譯生成opcode以及請求關閉釋放各種資源(如果有opcode緩存會跳過詞法解析、語法解析、編譯生成opcode步驟) ### 2、WorkerMan架構Web程序運行機制 WorkerMan是常駐內存的運行機制,只要PHP文件被載入編譯過一次,便會常駐內存,不會再去從磁盤讀取或者再去編譯,并省去了重復的請求初始化、創建執行環境、詞法解析、語法解析、編譯生成opcode以及請求關閉釋放各種資源等諸多耗時的步驟。剩下的只是簡單的計算過程,所以性能很高。正因為常駐內存,所以類、函數、常量等定義代碼只要運行一次,便可以永久使用,不會被銷毀,所以要避免反復加載類、函數、常量等定義文件。比較簡單的辦法是使用require\_once加載文件,避免重復加載重復定義。 ### 3、避免使用exit、die語句 同樣的,在程序中避免使用exit、die語句,使用exit、die會導致進程退出。可以使用```\\Workerman\\Protocols\\Http::end($msg)```函數替代exit、die函數。 ### 4、HTTP相關函數的使用 WorkerMan運行在PHP CLI模式下,PHP CLI模式下無法使用HTTP相關的函數,例如```header、setcookie、session\_start```等函數,請使用```/Workerman/Protocols/Http.php```文件中的```header、setcookie、sessionStart```等方法替換。 ### 5、Web入口文件 WorkerMan的WebServer默認使用index.php作為Web入口文件,例如配置```$webserver->setRoot('www.example.com', '/home/www/');```,則www.example.com 的入口文件為```/home/www/index.php```。當url訪問的文件(包括靜態文件和PHP文件)不存在時,會自動調用入口文件index.php ### 6、可用的超全局變量 可用的超全局變量有```$\_SERVER、$\_GET、$\_POST、$\_FILES、$\_COOKIE、$\_SESSION、$\_REQUEST```。 無法使用```php://input```,請用```$GLOBALS\['HTTP\_RAW\_POST\_DATA'\] ```代替。 注意HTTP文件上傳中,WorkerMan的```$\_FILES```結構與傳統PHP中的```$\_FILES```結構不同,WorkerMan中```$\_FILES```結構類似 ```php var_export($_FILES); array( 0 => array( 'file_name' => 'logo.png', // 文件名稱 'file_size' => 23654, // 文件大小 'file_data' => '*****', // 文件的二進制數據 ), 1 => array( 'file_name' => 'file.tar.gz', // 文件名稱 'file_size' => 128966, // 文件大小 'file_data' => '*****', // 文件的二進制數據 ), ... ); ``` 保存文件代碼類似 ```php // 例如保存到/tmp目錄下 foreach($_FILES as $file_info) { file_put_contents('/tmp/'.$file_info['file_name'], $file_info['file_data']); } ``` WorkerMan中無法使用```move\_uploaded\_file() is\_uploaded\_file()```這些函數。 ### 7、可以設置onWorkerStart、onWorkerStop回調 可以設置onWorkerStart、onWorkerStop回調,做進程啟動時全局初始化及進程退出(stop等命令)數據保存清理工作
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看