I recently installed WordPress on this server for a new blog. I've been using homebrew software for years, but I want to see whether I like WordPress enough to switch this blog and others to the platform. I need all of my sites to be usable on mobile devices, a goal that is a long way from being true today. The new blog is far better out of the box on mobile than anything I've created on my own.
In the two weeks I've been running WordPress 4.4.2, I encountered several problems where it could not connect to resources on other Internet sites. I could not install themes or plugins in the web interface because of this error message:
There are no HTTP transports available which can complete the requested request.
I also could not use the Customize page or make the WP to Twitter plugin send messages to Twitter. I could avoid the problem with themes and plugins by installing them on my own, but the Twitter problem had no workaround.
I have PHP configured with Curl, so I didn't expect a problem making HTTP requests to other sites. But WordPress now requires SSL support in Curl. My version of the software lacked SSL. I compile my web server software from source on Linux instead of relying on package managers, so I needed to recompile Curl with SSL support. I thought that would be easy.
After much weeping and gnashing of teeth, here's what I had to do:
- Compile and install OpenSSL.
- In directories from which I installed past versions of Curl, run the command
make uninstallin each one to remove it from the server.
- Recompile Curl with the configuration option
--with-ssl, which found OpenSSL.
- Recompile PHP with the configuration option
--with-curl, which found the new SSL-enabled Curl.
- Reboot Apache.
The last thing I figured out was Step 2. Before that, when I compiled PHP it found a version of Curl on my server that did not support SSL and used it by mistake. This made WordPress angry.
WordPress is now mostly happy and can post to Twitter successfully. Customize works, as do themes and plugin downloads.
There are easier solutions if you use a package manager and the right versions of these programs are available. But I've been compiling source code by necessity across my LAMP stack for years. There were features I needed that weren't offered in packages.
I anticipate more posts like this one as I kick the tires on WordPress.