• Stars
    star
    728
  • Rank 62,237 (Top 2 %)
  • Language
    PHP
  • License
    Other
  • Created over 13 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Our repository has moved to https://github.com/processwire – please head there for the latest version.

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

  1. About ProcessWire
  2. Installing ProcessWire
  3. Upgrading ProcessWire
  4. Debug Mode
  5. 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.

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

  1. Unzip the ProcessWire installation file to the location where you want it installed on your web server.

  2. 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

  1. Backup your database and backup all the files in your site.
  2. When possible, test the upgrade on a development/staging site before performing the upgrade on a live/production site.
  3. Login to your ProcessWire admin under a superuser account before upgrading. This enables you to see more verbose output during the upgrade process.
  4. 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.

This file is initially named htaccess.txt in the ProcessWire source. You will want to remove your existing .htaccess file and rename the new htaccess.txt to .htaccess

Sometimes people have made changes to the .htaccess file. If this is the case for your site, remember to migrate those changes to the new .htaccess file.

If using ProCache
If you are using ProCache, it will have added some things to your .htaccess file. Copy these changes from your old .htaccess file to your new one. The changes are easy to identify in your previous .htaccess file as they start and end with a "# ProCache" comment. Alternatively, you can have ProCache re-apply the changes itself by logging in to your admin and going to Setup > ProCache.

Additional upgrade notes

  • Completing an upgrade typically requires hitting reload in your browser 1-5 times to apply database updates. If logged into your admin, you will see notices about the updates that it is applying on each reload.

  • After completing the upgrade test out your site thoroughly to make sure everything continues to work as you expect.

  • If using Form Builder make sure you have the latest version, as past versions did not support ProcessWire 2.4+. With ProcessWire 2.7 we recommend FormBuilder 0.2.5+.

  • If using ProCache and you upgraded your .htaccess file, you should go to your ProCache settings after the upgrade to have it update your .htaccess file again. If no upgrades to your .htaccess file are necessary, than the ProCache settings page own't mention it.

  • If using ListerPro, we recommend using version 1.0.9+ with ProcessWire 2.7.

Upgrading from ProcessWire 2.6

The general upgrade process may be followed to perform this upgrade. It is not necessary to replace your .htaccess file. You should replace these directories/files:

  • /wire/
  • /index.php
  • /COPYRIGHT.txt (if present)
  • /LICENSE.txt (if present)

Next, check if any of your modules would benefit from upgrades. If using any of the Pro modules, there are newer versions that provide additional capabilities for ProcessWire 2.6 dev and 2.7. Visit the relevant support board at the ProcessWire forums to download the latest.

Upgrading from ProcessWire 2.5

The general upgrade process may be followed to perform this upgrade. In addition, please note the following:

  • New index.php file We recommend replacing your index.php file with this upgrade, though it is optional (the changes are not critical).

Upgrading from ProcessWire 2.4

The general upgrade process may be followed to perform this upgrade. In addition, please note the following:

  • New .htaccess and index.php files
    While not urgent, you will want to replace your .htaccess and index.php files as part of the upgrade. If you have modified either of those files, it's okay to leave them in place temporarily, as you can still use ProcessWire 2.5 with the old .htaccess and index.php files in place. But we recommend updating them when you can.

  • Does your site depend on other sites loading it in an iframe?
    Related to the above point, the new .htaccess file contains an option that you will need to disable if your site relies upon other sites loading yours in an <iframe>. If this is your case, please delete or comment out this line in your .htaccess file:
    Header always append X-Frame-Options SAMEORIGIN

  • TinyMCE rich text editor was replaced with CKEditor
    2.5 dropped TinyMCE as the rich text editor and replaced it with CKEditor. After installation of 2.7, you will see an error message on any pages that use TinyMCE. From this point, you may either install TinyMCE or switch your fields using TinyMCE to CKEditor. To switch to CKEditor, go to Setup > Fields > [field] > Details, and change the Inputfield Type to CKEditor (it may already be selected), then be sure to Save.

  • Already have CKEditor or HTML Purifier installed?
    A couple of modules that were previously 3rd party (site) modules are now core (wire) modules in ProcessWire 2.7. If you have either the InputfieldCKEditor or MarkupHTMLPurifier modules installed, you will get warnings about that after upgrading. The warnings will tell you to remove the dirs/files for those modules that you have in /site/modules/. Don't be alarmed, as this is not an error, just a warning notice. But it is a good idea to remove duplicate copies of these modules when possible.

Next, review the upgrade instructions for 2.6 to 2.7 for any additional instructions.

Upgrading from ProcessWire 2.2 or 2.3

Newer versions of ProcessWire have these additional requirements:

  • PHP 5.3.8+ (older versions supported PHP 5.2)
  • PDO database driver (older versions only used mysqli)

Please confirm your server meets these requirements before upgrading. If you are not certain, paste the following into a test PHP file and load it from your browser:

<?php phpinfo();

This will show your PHP configuration. The PHP version should show PHP 5.3.8 or newer and there should be a distinct PDO section (header and information) present in the output.

To proceed with the upgrade follow the general upgrade process above. You will want to replace your index.php and .htaccess files as well.

In addition we recommend adding the following line to your /site/config.php:

$config->httpHosts = array('domain.com', 'www.domain.com'); 

Replace domain.com with the hostname(s) your site runs from.

Next, review the upgrade instructions for 2.5 to 2.6 and 2.6 to 2.7 for any additional instructions.

Upgrading from ProcessWire 2.1

  1. First upgrade to ProcessWire 2.2.
  2. Follow the instructions above to upgrade from ProcessWire 2.2.

Upgrading from ProcessWire 2.0

  1. Download ProcessWire 2.2 and follow the upgrade instructions in that version's README file to upgrade from 2.0 to 2.2.
  2. After successfully upgrading to 2.2, follow the general upgrade process above.

Troubleshooting an Upgrade

If you get an error message when loading your site after an upgrade, hit "reload" in your browser until the error messages disappear. It may take up to 5 reloads for ProcessWire to apply all updates.

If using Form Builder, make sure you have version 0.2.3 or newer, as older versions did not support ProcessWire 2.4+. For ProcessWire 2.7 we recommend using FormBuilder 0.2.4 or newer.

If your site still doesn't work, remove the /wire/ directory completely. Then upload a fresh copy of the /wire/ directory.

If your site still doesn't work, view the latest entries in your error log file to see if it clarifies anything. The error log can be found in: /site/assets/logs/errors.txt

If your site still doesn't work, enable debug mode (as described in the next section) to see if the more verbose error messages help you to determine what the issue is. If you need help, please post in the ProcessWire support forums.

Debug Mode

Debug mode causes all errors to be reported to the screen, which can be helpful during development or troubleshooting. When in the admin, it also enables reporting of extra information in the footer. Debug mode is not intended for live or production sites, as the information reported could be a problem for security. So be sure not to leave debug mode on for any live/production sites.

  1. Edit this file: /site/config.php
  2. Find this line: $config->debug = false;
  3. Change the false to true, like below, and save.
$config->debug = true; 

This can be found near the bottom of the file, or you can add it if not already there. It will make PHP and ProcessWire report all errors, warnings, notices, etc. Of course, you'll want to set it back to false once you've resolved any issues.

Additional Resources


Copyright 2015 by Ryan Cramer / Ryan Cramer Design, LLC

More Repositories

1

ProcessWire-2.0

THIS IS AN OLD VERSION. Get the new one at the URL below:
PHP
39
star
2

SkyscrapersProfile

ProcessWire skyscrapers site profile
PHP
29
star
3

skyscrapers2

Skyscrapers profile templates (v2)
CSS
29
star
4

FieldtypeMapMarker

Fieldtype for ProcessWire - holds an address or location name, and automatically geocodes the address to latitude/longitude using Google Maps API.
JavaScript
28
star
5

ProcessHannaCode

Easily insert any complex HTML, Javascript or PHP output in your ProcessWire content by creating your own Hanna code tags.
JavaScript
24
star
6

LoginRegister

ProcessWire 3.x module for rendering and processing login, user registration, and profile edits.
CSS
23
star
7

regular

Uikit 3 “Regular” site/blog profile for ProcessWire 3.0.51+
PHP
21
star
8

ProcessExportProfile

Creates a site profile that can be used to install a new copy of ProcessWire.
PHP
20
star
9

FormTemplateProcessor

Form Template Processor for ProcessWire
PHP
20
star
10

jquery-asmSelect

A jquery plugin providing progressive enhancement to <select multiple> form elements.
JavaScript
19
star
11

ProcessHello

A starting point skeleton from which to build your own Process module.
PHP
18
star
12

IftRunner

PHP
16
star
13

TextformatterVideoEmbed

ProcessWire Textformatter module that enables translation of YouTube or Vimeo URLs to full embed codes, resulting in a viewable video in textarea fields you apply it to.
16
star
14

ProcessWireUpgrade

Upgrade ProcessWire core to latest master or dev version automatically in the admin.
PHP
16
star
15

ImportPagesCSV

Module that imports data from CSV files to create ProcessWire pages.
15
star
16

GoogleClientAPI

Google Client library for use with ProcessWire 3.x
PHP
15
star
17

BlogProfile

ProcessWire Blog Site Profile
PHP
13
star
18

DynamicRoles

Dynamic Roles for ProcessWire
PHP
12
star
19

ServicePages

ProcessWire Pages Web Service
PHP
11
star
20

MarkupLoadRSS

For ProcessWire 2.1+. Given an RSS feed URL, this module will pull it, and let you foreach() it or render it.
10
star
21

ProcessWireConfig

Enables you to customize most ProcessWire config settings from the admin, plus create your own.
PHP
9
star
22

FoundationSiteProfile

ProcessWire Site Profile Using Zurb Foundation 4. Drop-in replacement for the default site profile.
PHP
9
star
23

FieldtypeEvents

Example of creating an editable table of data as a Fieldtype and Inputfield in ProcessWire.
PHP
8
star
24

InputfieldCKEditor

CKEditor Inputfield module for ProcessWire
CSS
8
star
25

TfaTotp

ProcessWire two-factor authentication using TOTP (for Google Authenticator, Authy, MS Authenticator, etc.)
PHP
8
star
26

MarkupTwitterFeed

Twitter feed markup generator for ProcessWire
PHP
8
star
27

ProcessDatabaseBackups

Create and/or restore database backups.
PHP
7
star
28

LoginNotifier

ProcessWire Login Notifier module. Provides ability to send an email, ping a URL or save a log entry when a login occurs.
PHP
5
star
29

WireWordTools

ProcessWire API methods for English word inflection and lemmatisation, plus ability to use them in search queries.
PHP
5
star
30

TextformatterEmoji

ProcessWire module that converts 800+ emojis shortcodes in text to native browser UTF-8 emoji.
PHP
5
star
31

pw28

ProcessWire 2.8 development – a non-namespace version of ProcessWire 3.x. Note this may be merged to a separate branch in the ProcessWire repo.
PHP
5
star
32

CustomInputfieldAttributes

Add custom attributes to Inputfields in ProcessWire, FormBuilder, etc.
PHP
4
star
33

LoginFacebook

Provides Facebook login, user data, and account creation in ProcessWire 3.x
PHP
4
star
34

ProcessLanguageFieldExportImport

Multi-language field export/import tool for ProcessWire
PHP
4
star
35

TextformatterWebpImages

Format JPG/PNG img tags to use WEBP, auto-creating WEBP images as needed.
4
star
36

EmailImage

Send photos from your mobile phone to ProcessWire, from anywhere, on-the-fly.
PHP
4
star
37

FieldtypeTextUnique

Same as the Text fieldtype, but enforces that values stored are unique, site-wide.
4
star
38

PW2-PageLinkAbstractor

Converts links in textarea/rich-text fields to an abstract format for storage, and converts them back at runtime.
PHP
4
star
39

TextformatterPagination

ProcessWire module to paginate a large text field into multiple pages.
PHP
4
star
40

PageEditPerUser

Assign ProcessWire edit (or view) access to users on a per-page basis.
PHP
4
star
41

Helloworld

ProcessWire 'Hello world' demonstration module. Demonstrates the Module interface and how to add hooks.
PHP
3
star
42

MarkupLoadGCal

Google Calendar Loader for ProcessWire
3
star
43

TfaEmail

ProcessWire two-factor authentication for Email/SMS delivery
PHP
3
star
44

SessionAllow

ProcessWire module that enables you to configure whether to allow session for each request based on configured rules.
PHP
3
star
45

InputfieldTinyMCE

TinyMCE v6 for ProcessWire 3.0.200+
JavaScript
2
star
46

FieldtypeURLLanguage

Multi-language URL Fieldtype for ProcessWire 3.x
2
star
47

Less

This is a ProcessWire module front-end for the Wikimedia LESS parser.
PHP
2
star
48

TextformatterTextile

Textile text formatter module for ProcessWire 2.2+
PHP
2
star
49

MarkupHTMLPurifier

HTML sanitization and validation for ProcessWire. Serves as a front-end to the HTML Purifier PHP library.
PHP
2
star
50

PageEditFieldPermission

ProcessWire module that enables you to limit edit access (by role) to any field in the page editor.
2
star
51

LoginTimer

Normalize successful and failed login times to prevent timing attacks.
PHP
1
star
52

PageCleanEmptyDirs

Goes through all of your /site/assets/files/ directories and removes those that have no files in them.
PHP
1
star
53

ServiceCurrencyConversion

Currency conversion service module for ProcessWire
PHP
1
star
54

JqueryCollagePlus

Produces a nice grid output for ProcessWire image selection.
JavaScript
1
star
55

TextformatterBBCode

BBCode Text Formatter for ProcessWire using the NBBC Parser.
PHP
1
star
56

P21

Placeholder to redirect users to the new repo name (ProcessWire)
1
star
57

ProcessLatestComments

Generates a listing of all site comments in chronological order, making it easy to find and approve or remove them.
PHP
1
star
58

FieldtypeConcat

ProcessWire Fieldtype module that concatenates the values from one or more other fields at runtime.
PHP
1
star
59

FileValidatorImage

ProcessWire FileValidator module to validate JPG, PNG and GIF image files.
1
star
60

FileValidatorSvgSanitizer

SVG sanitizer module
PHP
1
star
61

PageEditRestore

Prevents page edits in the admin from getting lost when a user session is lost.
JavaScript
1
star
62

TextformatterFindReplace

ProcessWire module that applies find/replace patterns to text or markup. Supports simple and regex find/replace.
PHP
1
star
63

FieldtypeModules

ProcessWire Fieldtype that stores reference to one or more other modules.
PHP
1
star
64

InputfieldSelectMultipleTransfer

Multi-selection Inputfield module for ProcessWire using jquery.uix.multiselect (jQuery UI plugin by Yanick Rochon).
JavaScript
1
star
65

WireMailGmail

ProcessWire WireMail module that sends email through Google’s Gmail
PHP
1
star
66

WireCacheFilesystem

ProcessWire WireCache module that replaces the default cache handler with a file system based cache. Requires 3.0.218+
PHP
1
star