Hướng dẫn how does php run on server? - làm thế nào để php chạy trên máy chủ?

Bạn cũng có thể tạo máy chủ của riêng mình trong PHP bằng mã!

<?php
set_time_limit(0);

$address = '127.0.0.1';
$port =4444;
$server = '$address + $port';

// <-- Starts Server
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Could not bind to address');
echo "\n Server is running on port $port waiting for connection... \n\n";

while(1)
{
    socket_listen($sock);
    $client = socket_accept($sock);

    $input = socket_read($client, 443);

    $incoming = array();
    $incoming = explode("\r\n", $input);

    $fetchArray = array();
    $fetchArray = explode(" ", $incoming[0]);

    $file = $fetchArray[1];
    if($file == "/"){ 

   

$ file = "src/browser.php"; // tệp này được mở với máy chủ khi nó bắt đầu!

    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');

Chạy mã này sau đó mở trình duyệt đến localhost: 443 hoặc bất kỳ cổng nào bạn chọn

Phải thừa nhận rằng bài đăng này ít hơn về nhiệm vụ thực tế của lập trình, và nhiều hơn về các hoạt động hậu trường của môi trường thực hiện của PHP.

Giới thiệu

PHP là một ngôn ngữ phía máy chủ phổ biến, tuyệt vời cho các ứng dụng web. Một số công ty và tổ chức lớn nhất từ ​​khắp nơi trên thế giới sử dụng PHP cho các hoạt động của họ (một số trong số họ có thể sử dụng mỗi ngày). Một lượng lớn các trang web và ứng dụng được cung cấp bởi PHP; Do đó, sự hiểu biết về ngôn ngữ PHP là bắt buộc phải hiểu đầy đủ và chấp nhận sức mạnh đằng sau các khung phổ biến (như Laravel, Codeigniter hoặc Symfony) và cách các trang web và ứng dụng phổ biến có thể xử lý dữ liệu của người dùng.

Để bắt đầu loạt bài đăng mini này, chúng tôi sẽ bắt đầu bằng cách xem xét cách người dùng tương tác với máy chủ web và cách máy chủ web và PHP nói chuyện với nhau.

Ngôn ngữ

PHP là một ngôn ngữ được giải thích. Điều này có nghĩa là bạn sẽ viết các câu lệnh mã (dòng mã) và khi một trang được yêu cầu, trình thông dịch PHP sẽ tải mã PHP của bạn, phân tích nó và sau đó thực thi nó. Điều này khác với các ngôn ngữ khác, chẳng hạn như Java hoặc C#, trong đó mã nguồn được biên dịch và sau đó được thực thi. Điều này rất hữu ích cho việc phát triển web trong thực tế là bạn không phải tổng hợp lại mã nguồn của mình để thay đổi mã tầm thường và các thay đổi có hiệu lực ngay lập tức đối với tất cả các yêu cầu tiếp theo.

PHP được viết dưới dạng tệp văn bản tiêu chuẩn với tiện ích mở rộng .php. Các tệp PHP thường được lưu trong một thư mục trong thư mục công khai của máy chủ web (hoặc thư mục gốc web). Trên hầu hết các hệ thống, điều này sẽ được đặt tên là public hoặc public_html. Ví dụ: nếu một tệp được lưu dưới dạng index.php trong thư mục gốc web, người dùng có thể truy cập nó bằng cách nhập http://www.example.org hoặc http://www.example.org/index.php.

1public/

2| index.php

PHP và các trang mặc định (chỉ mục thư mục)

Hầu hết các thiết lập máy chủ PHP và Web cho phép bạn sử dụng một tệp có tên index.php giống như bạn sẽ sử dụng tệp ____10. Tuy nhiên, hãy chắc chắn rằng bạn biết cái nào được ưu tiên để bạn không nhận được kết quả bất ngờ (thường là index.php).

Các vòng đời yêu cầu

Vậy chính xác thì điều gì đang xảy ra khi người dùng nhập URL

    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');
2? Khi người dùng nhập
    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');
2 trong máy khách web (ví dụ, trình duyệt), máy khách sẽ đưa ra yêu cầu
    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');
4 cho máy chủ (giả sử rằng cả hai chúng tôi đều đang sử dụng Apache). Khi Apache nhận được yêu cầu này, nó tìm kiếm một tệp có tên index.php (hoặc
    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');
0, hãy nhớ các chỉ mục thư mục từ trước đó?). Nếu một tệp có tên index.php được tìm thấy, về cơ bản, Apache nói "này, đây là tệp PHP vì nó có phần mở rộng .PhP. Tôi sẽ đưa cái này cho trình thông dịch PHP".

Sau khi Apache quyết định đó là một tệp PHP, nó cung cấp nó cho trình thông dịch PHP. Khi PHP nhận được tệp, nó sẽ đọc qua nó và thực thi bất kỳ mã PHP nào mà nó có thể tìm thấy. Sau khi được thực hiện với tệp, trình thông dịch PHP cung cấp đầu ra của mã, nếu có, trở lại Apache. Khi Apache lấy lại đầu ra từ PHP, nó sẽ gửi lại đầu ra cho trình duyệt hiển thị nó lên màn hình.

Đầu ra PHP và Apache

Người mới bắt đầu lập trình PHP thường có thể đặt câu hỏi như "Làm cách nào để tạo hình ảnh với PHP?" hoặc "Làm cách nào để tạo một hộp văn bản với PHP?". Thành thật mà nói, PHP cũng không. Theo nghĩa truyền thống, mục tiêu chính của PHP là tạo ra một số tài liệu HTML mà trình duyệt có thể hiển thị.

Tuy nhiên, các ứng dụng hiện đại được xây dựng với các khung MVC phía máy khách thường thấy vai trò của thay đổi PHP đối với việc tương tác với lưu trữ dữ liệu phía máy chủ.

Chúng ta hãy xem xét quá trình này với một sơ đồ. Trong sơ đồ này, chúng tôi sẽ giả sử người dùng sẽ truy cập trang web của Laravel tại

    } else {

        $filearray = array();
        $filearray = explode("/", $file);
        $file = $filearray[1];
    }

echo $fetchArray[0] . " Request " . $file . "\n"; 

// <-- Control Header
$output = "";
$Header = "HTTP/1.1 200 OK \r\n" .
"Date: Fri, 31 Dec 1999 23:59:59 GMT \r\n" .
"Content-Type: text/html \r\n\r\n";

$Content = file_get_contents($file);
$output = $Header . $Content;

    socket_write($client,$output,strlen($output));
    socket_close($client);

}
print('server running..');
8. Hình dưới đây có các số được khoanh tròn sẽ làm nổi bật các giai đoạn khác nhau của yêu cầu. Một lời giải thích từng bước của từng bước theo hình.

Hướng dẫn how does php run on server? - làm thế nào để php chạy trên máy chủ?

Bước 1 Người dùng nhập `http: // laravel.com` vào trình duyệt của họ và vòi/truy cập 'enter'. Bước 2 Sau khi người dùng đã khai thác/nhấn 'enter', trình duyệt sẽ gửi yêu cầu trang qua Internet đến máy chủ web. Bước 3 Máy chủ web nhận được yêu cầu và phân tích thông tin yêu cầu. Apache nhận ra rằng chúng tôi không chỉ định một tệp, vì vậy nó tìm kiếm một chỉ mục thư mục và tìm `index.php`. Bước 4 Vì Apache biết gửi các tệp kết thúc bằng tiện ích mở rộng tệp `.php` cho trình thông dịch PHP, nó yêu cầu PHP thực thi tệp. Bước 5 Trong bước này, PHP đang thực thi mã có trong tệp `index.php` từ yêu cầu. Trong bước này, PHP có thể tương tác với cơ sở dữ liệu, hệ thống tệp hoặc thực hiện các cuộc gọi API bên ngoài, trong số những thứ khác. Bước 6 Sau khi PHP đã thực hiện xong tệp `index.php`, nó sẽ gửi lại đầu ra cho Apache. Bước 7 Apache nhận được đầu ra từ PHP và gửi lại Internet đến trình duyệt web của người dùng. Điều này được gọi là `Phản hồi web`. Bước 8 Trình duyệt web của người dùng nhận được phản hồi từ máy chủ và hiển thị trang web trên máy tính hoặc thiết bị.

Như bạn có thể thấy, PHP tương tác với một máy chủ web một cách rất thực tế. Quá trình yêu cầu thực tế rất đơn giản và một trong những lý do mà PHP rất phù hợp để phát triển ứng dụng web.

Sự kết luận

Điều này kết thúc bài viết đầu tiên này trong một loạt nhỏ về những điều cơ bản của lập trình với PHP. Các bài viết tiếp theo sẽ bao gồm những thứ như biến, toán tử và chức năng. Sau đó, chúng ta sẽ đi sâu vào thế giới lập trình hướng đối tượng (OOP) và xem điều đó phù hợp với PHP như thế nào.

PHP hoạt động như thế nào trên một máy chủ?

Bước 1: Khách hàng yêu cầu trang web trên trình duyệt.Bước 2: Máy chủ (nơi cài đặt phần mềm PHP) sau đó kiểm tra.Tệp PHP được liên kết với yêu cầu.Bước 3: Nếu được tìm thấy, nó sẽ gửi tệp đến trình thông dịch PHP (vì PHP là ngôn ngữ được giải thích), trong đó kiểm tra dữ liệu được yêu cầu vào cơ sở dữ liệu.

PHP có chạy trên máy chủ hoặc máy khách không?

PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế để sử dụng cho mục đích web.Ban đầu, PHP đã viết tắt của trang chủ cá nhân, nhưng theo thời gian, nó đã phát triển để bao gồm điều đó trong bản mở rộng hiện tại đệ quy của nó, PHP: Bộ tiền xử lý siêu văn bản.server-side scripting language designed to be used for web purposes. Originally PHP was short for “Personal Home Page” but over time it evolved to include that in its recursive current expansion “PHP: Hypertext Preprocessor”.