Name: Apache2 (+ PHP)
Short Name: httpd
URL: http://www.apache.org
Version: 2.4.37
Security Critical: no
License: Apache Version 2.0
License File: NOT_SHIPPED

Description:

This is a checked-in copy of Apache2 with OpenSSL and PHP for Windows.
It is used by the Blink layout tests.

To update, you'll need to fetch Apache2 and PHP. PHP can be found at
http://windows.php.net/downloads/releases/archives/. Make sure your Apache
binary matches the PHP one and your PHP build is the TS (thread-safe) one. As
of writing, PHP builds against the binaries at
https://www.apachelounge.com/download/.

The most recent update used:

33afeb018e0cee8592d44abbf72fda37f6a35586aeb5f4b4c1b717c681d82dd8  httpd-2.4.37-win64-VC15.zip
cf4f192bfab0b59b6af64a2ce9f4a0394ebce1a695d0f1a478c4443e601f9f87  php-7.2.12-Win32-VC15-x64.zip

To update:

 1. Go to the Chromium third_party directory and back up apache-win32,
    for example by renaming it as apache-win32.bak.

 2. Download Apache2, unpack, and move to "apache-win32". This directory
    should contain metadata files and bin/ and modules/ subdirectories.

 3. Copy ".gitignore" and "README.chromium" to the new apache-win32 directory.

 4. Download PHP and unpack; copy "readme-redist-bins.txt" to your Apache
    directory, copy "php*ts.dll" to bin/, and copy "php*apache2_*.dll" to modules/.

 5. It might be necessary to copy other DLL files to the directories
    where the relevant binaries are present. Update
    remove_files_not_needed_for_chromium.sh accordingly.

 6. Verify that Apache2 works, for example by running "run-blink-httpd"
    in the Blink tools directory. Update the win-httpd.conf configuration
    file if necessary.

 7. Update filenames as necessary and delete files that aren't need for Chromium
    using remove_files_not_needed_for_chromium.sh.

 8. Copy vsruntime{version}.dll from the corresponding MSVC version to
    bin/. (Note VC15/MSVC2017 and VC14/MSVC2015 are both version 140.) See also
    Microsoft's documentation:
    https://docs.microsoft.com/en-us/cpp/ide/determining-which-dlls-to-redistribute?view=vs-2017

 9. Copy the UCRT DLLs from the Windows SDK. Note this includes both
    api-ms-win-*.dll and ucrtbase.dll. See also Microsoft's documentation:
    https://docs.microsoft.com/en-us/cpp/ide/universal-crt-deployment?view=vs-2017
    We use the Local Deployment option because some of Chromium's bots do not
    include a full install. https://crbug.com/910745

10. Upload the executables and DLLs to Google Storage, to the
    chromium-apache-win32 bucket. See http://g.co/bugatrooper in order to get
    permission to upload. Upload all exe, dll and so binaries, e.g.:

    % find apache-win32/bin -name '*.exe' | upload_to_google_storage.py --bucket chromium-apache-win32 -
    % find apache-win32/bin -name '*.dll' | upload_to_google_storage.py --bucket chromium-apache-win32 -
    % find apache-win32/modules -name '*.so' | upload_to_google_storage.py --bucket chromium-apache-win32 -
    % find apache-win32/modules -name '*.dll' | upload_to_google_storage.py --bucket chromium-apache-win32 -

11. Optionally, prune the files that were uploaded and run gclient runhooks to
    verify that they are re-downloaded. Remember to clean up any temp files used
    in the above process before uploading a CL. The CL should contain sha1 files
    but not actual binaries.
