Name: Apache2 (+ PHP)
Short Name: httpd
URL: http://www.apache.org
Version: 2.4.37
Security Critical: no
Shipped: no
License: Apache Version 2.0
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.