- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen Booth
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Its obsolete, throw it out!
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- Z68 motherboards
- iPad or Acer Aspire One?
- IQ
- LG Intello Washing Machine
- Lack of a challenge
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- NBN spends another $12 billion of our tax money on nothing
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Debian 5.06 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu 12.04 beta1 desktop amd64
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Upgrade Ubuntu to Linux Mint 12 LDXE for extra speed
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Text editors
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 Fields are hard to fix
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.14
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal 8
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Cel
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- Form alter to node
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Jdog
- Lightbox2
- Module variable
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Statistics
- Taxonomy
- Token
- Token ex
- Transliteration
- Trigger
- Watch
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Open source development hits another roadblock
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- Things to hate on Web sites
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Crying over spilt code
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
PHP unable to load dynamic library php_openssl.dll
Submitted by Peter on Thu, 2011-02-10 17:25
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_openssl.dll' - The operating system cannot run %1.
Windows, Apache, PHP, and OpenSSL. An error! How do you fix it? Real answers and you get to choose the easiest way for you.
You install Apache and PHP under Windows then hit this error message. Perhaps you use PHP under Apache happily for years then switch on SSL and hit the error. Pain. We will look at the error message than track back to the cause then hit some real easy solutions.
PHP Warning To PHP it is a warning message. To you it is critical because you cannot use SSL. You would not have switched SSL on if you did not need it. The warning bit is because the OpenSSL code is giving the wrong response to PHP.
PHP Startup PHP hits the error when PHP starts. PHP starts when the Apache Web server starts. If PHP things it is a warning instead of an error, PHP continues on and tells Apache to continue. You have to stop Apache, fix the problem, then start again.
Unable to load dynamic library Windows calls them DLLs. Linux and Unix use other names. PHP loads first then reads php.ini to see what other code is needed then loads DLLs based on the setting in php.ini. In Windows XP Pro, php.ini is in C:\Program Files (x86)\PHP and can be read by any text editor.
I recommend Bluefish as a Web related editor because you can use the same editor on both Windows and Linux. Bluefish will also recognize the different line endings across files from different operating systems. The Windows editors might bunch all the lines up together if they do not get Windows style line endings. If you use Java, bah choke spit Oracle proprietary, look at jEdit because it has better search facilities or Eclipse because it has more features than you will ever use in several lifetimes.
Look in php.ini for the line extension_dir="C:\Program Files (x86)\PHP\ext" or similar. This identifies the directory where your DLL extensions are stored. Look in that directory first for any missing extension.
While you are looking in php.ini, look for the line extension=php_openssl.dll. You found the line requesting the DLL. This line is created automatically by the PHP installation process. If you want to change the line up of modules, you can select PHP in the Windows Control panel then change the list of selected modules.
C:\Program Files (x86)\PHP\ext\ is the part of the PHP warning telling you where the DLL should be.
php_openssl.dll is the missing DLL. When you look for php_openssl.dll, you will find it is not missing because it was automatically installed by the PHP installation process or the change process, assuming you installed from the automatic installer.
The operating system cannot run %1. is just a distraction because you do not know what %1 means. %1 could be a program required by php_openssl.dll. The message is useless if it does not tell us what is really missing.
What has happened so far? Apache started PHP and PHP started php_openssl.dll then php_openssl.dll tried to load two modules, could not or found the wrong ones, then php_openssl.dll send a false message back to PHP about the problem being a warning, not a critical error, then PHP told Apache to go ahead without the missing bit.
What is missing or faulty? php_openssl.dll tries to load libeay32.dll and ssleay32.dll. They are in C:\Program Files (x86)\PHP. If they were missing, you would have a faulty installation. You can end up with a faulty installation if you use the .zip version of PHP instead of the full automatic install or you use one of those WAMP style packages for installing everything in one hit, those complete
packages are not always complete and do not always check every combination of options.
The real problem with libeay32.dll and ssleay32.dll is that they are also in C:\Program Files (x86)\Apache Group\Apache2\bin. php_openssl.dll tries to use the Apache version instead of the PHP version and chokes on the old code. This happens with any version of PHP from 5.1 through to 5.3 when used with anything other than the most current Apache. Why would you use a new PHP with an old Apache? Some new version of Apache kill PHP and you have to go back to an old version of Apache. A few times I have had to jump from APache 2.2 back to Apache 2.0 to make PHP work.
You want the most modern PHP because life is better with the new features and all the security updates. Apache has not changed much, for our purposes, between 2.0 and 2.2. Using Apache 2.0 to keep PHP happy is equivalent to choosing a small friendly dog to live in your apartment. Going the other way and using the latest Apache then settling for an old PHP is equivalent to choosing a pitbull or a mastiff for a tiny apartment full of young children.
How much difference are we talking about in libeay32.dll and ssleay32.dll? My Apache has SSL modules from September 2007. The PHP is from July 2010 and contains SSL modules from November 2007.
Solutions
Yeah, I hate the marketing abuse of solution
. Here are two fixes that really are solutions for some people. One or the other should work for you. Updating Apache is relatively easy and new versions include security updates, making the Apache update the preferred solution if it works for you.
Update Apache
When you update PHP, retry newer versions of Apache. You might get a newer version of the SSL code in Apache without installing anything that is so new, it breaks PHP.
A new version of Apache is unpredictable because it might contain an interface change and create a problem. You might not have a problem on one server because your site on the server does not use every part of Apache. Hundreds of your other sites might crash and burn because the change is in an area those sites use. I work on over 200 sites across a variety of servers, VPSs, test systems, Q&A systems, and customer configurations. Perhaps 20 out of 200 required a reversion to an older version of PHP at some stage. A very small percentage of those PHP reversions required an older version of Apache for compatibility. A few cases required a change from Apache 2.2 to 2.0 because a new version of PHP, or a module switched on in PHP, did not work with 2.2.
Copy libeay32.dll and ssleay32.dll
Copy libeay32.dll and ssleay32.dll from PHP to Apache, from C:\Program Files (x86)\PHP to C:\Program Files (x86)\Apache Group\Apache2\bin.
This is the easiest change but misses out on any other updates. Apache usually works with newer versions of modules. Your result might be different. Your Web site might use feature A, B, and C. An update might change B. Your testing might hit A and C many times but never B. One of your customers visits the site and selects something that uses B.
Conclusion
The error can be fixed easily with a manual change. Bringing your Web site up to date is more useful and should be done one day but is more work and requires extensive testing, something you should schedule for a quiet day with no distractions.








