web:mirror
This is an old revision of the document!
How to create a PHP.net mirror
Setting up an official (or unofficial) mirror is described within the official mirror page. However, setting up your own mirror via SVN is possible too and is especially helpful for those working on the PHP website.
I'm lazy. Just give me something to execute
Save the following shell script as IcanHazPHPWeb.sh Then execute sh ./IcanHazPHPWeb.sh And wait for ca 10 minutes. (took 7m30.871s on my box)
#!/bin/sh mkdir ~/php.net cd ~/php.net # Checkout the english manual sources svn co https://svn.php.net/repository/phpdoc/modules/doc-en # Checkout the actual website, except for the distribution/ and extra/ dirs (huge binary files, takes days to download) svn co --depth immediates https://svn.php.net/repository/web/php/trunk phpweb cd phpweb svn up --set-depth infinity ./styles ./security ./images ./reST ./manual ./backend ./stats ./bin ./releases ./conferences ./pear ./license ./js ./ie6update ./archive ./include # Some files are pre-generated on master.php.net for various reasons (cd include && for i in countries.inc last_updated.inc mirrors.inc pregen-confs.inc pregen-events.inc pregen-news.inc; do wget "http://www.php.net/include/$i"; done;) (cd backend && for i in ip-to-country.db ip-to-country.idx; do wget "http://www.php.net/backend/$i"; done;) cd .. # Install PhD and build the manual cd doc-en php doc-base/configure.php pear install doc.php.net/phd_php phd -d doc-base/.manual.xml -P PHP -f php cd .. cd phpweb # Symlink the generated english documentations from our PhD build dir (cd manual && ln -s ~/php.net/doc-en/output/php-web en) echo "Now copy&paste the VirtualHost config from http://php.net/mirroring.php#settings" echo "Fill out the 'template' and restart apache"
Note: To see the “new look”, add ?beta=1 after the url, or enable the cookie from /my.php
The SVN way, but with a hack
- Checkout phpweb (svn co http://svn.php.net/repository/web/php/trunk phpweb)
- Within phpweb, run this:
<?php // Note: This is a complete hack // Mirror to steal from $mirror = 'http://www.php.net/'; // Files phpweb needs (typically from rsync box) $files = array('include/mirrors.inc', 'include/countries.inc', 'include/pregen-events.inc', 'include/pregen-news.inc', 'include/pregen-confs.inc'); foreach ($files as $file) { file_put_contents($file, file_get_contents($mirror . $file)); } // Another required file, let's create it ourselves file_put_contents('include/last_updated.inc', '<?php $LAST_UPDATED=' . time() . '; ?>'); ?>
- Make a virtual host, see The official mirror page
- If wanting the PHP Manual too, either:
- Rsync it
- Download it
web/mirror.1293465327.txt.gz · Last modified: 2017/09/22 13:28 (external edit)