ProcessWire
Our repository has moved to https://github.com/processwire – please head there for the latest version.
Install / Use
/learn @ryancramerdesign/ProcessWireREADME
Welcome to ProcessWire 2.7
This document is in Markdown. An HTML formatted version of this document can be read at: https://processwire.com/download/readme
Table of Contents
- About ProcessWire
- Installing ProcessWire
- Upgrading ProcessWire
- Debug Mode
- Additional Resources
About ProcessWire
ProcessWire is an open source content management system (CMS) and web application framework aimed at the needs of designers, developers and their clients. ProcessWire gives you more control over your fields, templates and markup than other platforms, and provides a powerful template system that works the way you do. Not to mention, ProcessWire's API makes working with your content easy and enjoyable. Managing and developing a site in ProcessWire is shockingly simple compared to what you may be used to.
- Learn more about ProcessWire
- Download the latest ProcessWire
- Get support for ProcessWire
- Browse and install ProcessWire modules/plugins
- Follow @ProcessWire on Twitter
- Contact ProcessWire
- API Cheatsheet
- Sites running ProcessWire
- Read the ProcessWire Blog
Installation
Requirements
- A web server running Apache.
- PHP version 5.3.8 or newer.
- MySQL 5.0.15 or newer.
- Apache must have mod_rewrite enabled.
- Apache must support .htaccess files.
Installation from ZIP file
-
Unzip the ProcessWire installation file to the location where you want it installed on your web server.
-
Load the location that you unzipped (or uploaded) the files to in your web browser. This will initiate the ProcessWire installer. The installer will guide you through the rest of the installation.
Installation from GitHub
Git clone ProcessWire to the place where you want to install it:
git clone https://github.com/ryancramerdesign/ProcessWire
Load the location where you installed ProcessWire into your browser. This will initiate the ProcessWire installer. The installer will guide you through the rest of the installation.
Troubleshooting Installation
The homepage works but nothing else does
This indicates that Apache is not properly reading your .htaccess file.
First we need to determine if Apache is reading your .htaccess file at all.
To do this, open the .htaccess file in an editor and type in some random
characters at the top, like lkjalefkjalkef and save. Load your site in
your browser. You should get a "500 Error". If you do not, that means
Apache is not reading your .htaccess file at all. If this is your case,
contact your web host for further assistance. Or if maintaining your own
server, look into the Apache AllowOverride directive which you may need
to configure for the account in your httpd.conf file.
If the above test did result in a 500 error, then that is good because we know your .htaccess file is at least being used. Go ahead and remove the random characters you added at the top. Now look further down in the .htaccess file for suggested changes. Specially, you will want to look at the RewriteBase directive, which is commented out (disabled) by default. You may need to enable it.
Resolving an Apache 500 error
The presence of an Apache 500 error indicates that Apache does not like one or more of the directives in the .htaccess file. Open the .htaccess file in an editor and read the comments. Note those that indicate the term "500 NOTE" and they will provide further instructions on optional directives you can try to comment out. Test one at a time, save and reload in your browser till you determine which directive is not working with your server.
Resolving other error messages or a blank screen
If you are getting an error message, a blank screen, or something else unexpected, see the section at the end of this document on enabling debug mode. This will enable more detailed error reporting which may help to resolve any issues.
In addition, the ProcessWire error log is located in the file: /site/assets/logs/errors.txt - look in here to see if more information is available about the error message you have received.
If the above suggestions do not help you to resolve the installation error, please post in the ProcessWire forums.
Upgrades
Best Practices Before Upgrading
- Backup your database and backup all the files in your site.
- When possible, test the upgrade on a development/staging site before performing the upgrade on a live/production site.
- Login to your ProcessWire admin under a superuser account before upgrading. This enables you to see more verbose output during the upgrade process.
- If you have 3rd party modules installed, confirm that they are compatible with the ProcessWire version you are upgrading to. If you cannot confirm compatibility, uninstall the 3rd party modules before upgrading, when possible. You can attempt to re-install them after upgrading. If uninstalling is inconvenient, just be sure you have the ability to revert if for some reason one of your modules does not like the upgrade. Modules that are compatible with ProcessWire 2.4-2.6 are generally going to also be compatible with 2.7.
If you prefer an automatic/web-based upgrade, an upgrade module is available for upgrading to 2.7. This upgrade utility can also help with upgrading other modules as well.
General Upgrade Process
Before upgrading, login to your ProcessWire admin under a superuser account. This is not required to upgrade, but is recommended for more verbose output during the upgrade.
Upgrading from one version of ProcessWire to another is a matter of deleting these files/directories from your old version, and putting in fresh copies from the new version:
/wire/
/index.php
/.htaccess
Removing and replacing the above directory/files is typically the primary thing you need to do in order to upgrade. But please see the version-to-version specific upgrade notes documented further in this section. Further below are more details about how you should replace the files mentioned above.
After replacing the /wire/ directory (and the other two files if needed), hit reload in your browser, anywhere in the ProcessWire admin. You should see messages at the top of your screen about updates that were applied. Depending on which version you are upgrading from, you might also see error messages--this is normal. Keep hitting reload in your browser until you no longer see any upgrade related messages (up to 5 reloads may be necessary).
NOTE: Renaming is an alternative to deleting, which gives you a quicker path to revert should you want to. For example, you might rename your /wire/ directory to be /.wire-2.4.0/ with ".wire" rather than "wire" to ensure the directory is hidden, and the 2.4.0 indicating the version that it was. Once your upgrade is safely in place, you could delete that .wire-2.4.0 directory (or keep it around). If you keep old version dirs/files in place, make sure they are not http accessible. This is typically done by preceding the directory with a period to make it hidden.
Replacing the /wire/ directory
When you put in the new /wire/ directory, make sure that you remove or rename the old one first. If you just copy or FTP changed files into the existing /wire/ directory, you will end up with both old and new files, which will cause an error.
Note that the /wire/ directory does not contain any files specific to your site, only to ProcessWire. All the files specific to your site are stored in /site/ and you would leave that directory alone during an upgrade.
Replacing the /index.php file
This file doesn't change often between minor versions. As a result, you don't need to replace this file unless it has changed. But when in doubt, you should replace it.
Replacing the .htaccess file
This is also a file that does not always change between versions. But when it changes, it is usually important for security that you are up-to-date. When in doubt, replace your old .htaccess file with the htaccess.txt from the new version.
