Chapter 10 - Webtix - Center Stage Software

Transcription

Chapter 10 - Webtix - Center Stage Software
Chapter 10: Webtix
Definition: Webtix is a collection of php functions to connect the internet to your sales files.
The usual way is to think of Webtix as another clerk on your network – with severely limited
privileges. However, Webtix is a ‘clerk’ that works 24 hours a day for less than the minimum
wage.
Webtix is supplied as a set of PHP scripts. The scripts are actually small
programs that are interpreted by PHP. The scripts can be modified by an
HTML editor or text editor.
Seat selection is by a Best available, or user-selectable listing. If you are
using “Best available.” The seats get selected in whatever order you
choose. Because of the wide variety of opinions as to what is the best
available, there are 3 separate orders for ‘Best available.’ For example:
With user-selectable
seats, the chart is
displayed and your
customers select by
clicking.
Note: their seats will
be moved if they try to
leave empty seats on
both sides of them.
10 :1
Chapter 10 - Webtix
System requirements:
You need a standard LAMP stack and a static IP. You need Apache 2, PHP 5 and MySQL5.
You must be able to bring up the default web page from a browser. Your internet
connection is important. A connection of 1mb/s is the minimum people are happy with. A
residential DSL connection will work – slowly. Go to
http://www.broadbandreports.com/speedtest to find what your speed really is. A 2 GHz
computer with 2G ram is the minimum.
You can have your web site at one ISP and Webtix on a local machine. This makes a lot of
sense for the organizations that use a lot of graphics. They keep their site at a local ISP on
top of a large pipeline with lots of bandwidth. The Webtix computer usually has a lower
bandwidth requirement and can be kept locally. All the customer sees is a button that says,
“Click here to purchase tickets.”
Webtix can be put on the same server as your database however:
1. Serving web pages consumes a lot of processing power - especially with a site
certificate. You may notice your network slowing down.
2. If your web site is hacked, all your data will be compromised. Having your data on a
separate server, with a non-mapped drive, is safer.
3. If you are keeping credit cards, you are at risk. This will not be approved under PCI
regulations. A computer with card information must be separate from the rest of the
network and the internet. And, you must have a firewall with stateful packet inspection
separating that computer from the rest of the network.
Other things that are handy to know:
You will want a firewall with ports 3306, 80 and 443 open.
Navicat is a simple MySQL program. Cost is about $125. They have a trial version. It is
handy for getting into the database (if you like that sort of thing).
If you install phpMyAdmin, you need to be aware of the lack of security. Do not run it as
root in the default directory. Rename the phpMyAdmin subdirectory to something else.
Best of all, move the directory to another part of your disk until you need it.
You will want a site certificate. You don’t need it for Webtix to function but lots of people
will want you to have it (including your bank). This certificate is what gives you the
little lock on the bottom of your screen. These things are $125 to $250 and are
available from companies like Comodo.com, Thawte.com, RSA, Verisign, Geotrust etc.
Handling credit cards puts you at risk. You must follow the guidelines of the PCI standard.
If you don’t, you can be put out of business in a matter of minutes. The specifications
are at http://usa.visa.com/merchants/risk_management/cisp_overview.html Among
other things, you need a firewall with “stateful packet inspection,” anti virus software,
security procedures, and a policy manual. Because complying with the regulations is
so difficult and important, a service like Authorize.net or MerchantPlus.com makes a
lot of sense. You avoid the regulations by not keeping the card numbers on your
computer or in your office.
10:2
2002-10 Center Stage Software
Chapter 10- Webtix
First, you need to do a few things:
Talk to your bank. Bankers are the ones who set the rules here. Tell them that you are
planning to do sales over the internet. They will tell you what you need to do e-commerce
and get e-commerce certification. They may insist that you have a site-certificate (to give
you the little lock at the bottom of your browser window). Do things the banker’s way. If
you don’t, fines start at $10,000 and they will revoke your merchant account.
How are you processing credit cards now? Wintix5 and Webtix5 still support PC Charge. We
also recommend taking a look at Authorize.net or Merchantplus.com. Both of them store
the credit card numbers on high security sites. You avoid the CISP regulations by not
keeping the card numbers in your office. Any maintenance (refunds, cancellations, extra
charges) are done through a web interface.
Get an email response form setup. It takes about five minutes to enter a “mailto” command
in your home page. This starts getting your customers trained to order over the web.
Get a simple html form to post the data with a submit button. This will take a bit longer
since it is an actual web page that uses cgi scripting. You will need to enter your list of
shows, performances, and prices. Let your customers know that if they submit an order on
the internet, they will get first priority. This form is the one you will expand on when you
finally jump into Webtix.
The whole process can take a couple weeks.
Note: if you have a service that emulates a static IP (domain forwarding service) this will
probably not work with an SSL certificate. You will need to use Webtix with the NoSSL
option turned on and processing directed to the Simple Integration Method (SIM) from
Authorize.net.
Installation is copying the PHP scripts into the proper folders. Then, you need to set up the
/ticketing/_custom/_includes/config.php with the information to connect.
2002-10 Center Stage Software
10: 3
Chapter 10 - Webtix
Where do you put the server?
You need both database and web services. And, the users in the office and customers on the
internet need to use the same data. No matter what you do, it will be a tradeoff. It's made more
complicated by the fact that you have many options.
In our opinion, the best solution is to have 2 computers. One computer supplies the web
services and is at the ISP. The second computer supplies the database services and is located
at the box office, behind a firewall. That gives the best responsiveness to the box office bunch.
Because ISP's sit on a very large data connection, response is great.
A second solution is to have everything on 1 computer in the box office, behind a firewall. The
advantage here is that the box office has control of everything. This is also the least expensive.
Another third solution is to have everything at the ISP. The advantage here is that the ISP
takes care of everything. The disadvantage is that the computers in the box office are
dependent on the data links. If the box office has good connection (at least 500 kb up and
down), performance will be acceptable.
10:4
2002-10 Center Stage Software
Chapter 10- Webtix
ODBC Setup
Explanation: The standard way for Windows programs to communicate with a database
server is through ODBC. This is another sacred acronym that means, “Open Data Base
Connectivity.” It is part of every Windows computer. But, it needs to be set up.
You will need the MySQL ODBC connector. You can get it from the Wintix installation disk or
download it from MySQL.com
1.
Run the ODBC connector to set up the connections. The name is
C:\Tix7\mysql-connector-odbc-5.1.6-win32.msi
The process will go through a couple steps and then vanish. If you are curious and
want to see what happened, go to the Control panel | Administrative tools | Data
sources (ODBC). It will look something like this:
Most of you have installed programs before. This should not be a mystery. The ODBC
connection might be new. Just let it do its thing. It’s painless. You only need to do it once.
Now is a good time to double click on the MySQL driver and turn off the connection pooling.
2002-10 Center Stage Software
10: 5
Chapter 10 - Webtix
Logging into your MySQL database with Wintix
You will need 2 MySQL logins. You have 2 now. the first is from Localhost. The
second is from anyplace outside of localhost (anywhere). You should also have
good passwords (12+ characters, upper and lower case, with numbers). By
nature, your password has to be known to you and only you.
In order to use Wintix to login, you will need to modify the Sqlrdd.ini. You can
use a text editor (like Notepad). When you look in the Sqlrdd.ini file you will see
something like this:
connString=MySQL=285.118.239.75;UID=;PWD=;DTB=tix7
This will connect you to 285.118.239.75 and give a login screen like this:
Once you get comfortable with logging in, you will probably want to set some
defaults. You can change the Sqlrdd.ini file so you just need to enter your
password. Or, you can change it to automatically enter both your name and
password. If you leave the password blank, you will be prompted for a password.
If you leave both the name and password blank, you will be prompted for both.
Lets say your login is george and your password is spelvin. You would change
the Sqlrdd.ini to contain:
connString=MySQL=285.118.239.75;UID=george;PWD=spelvin;DTB=tix7
With that, you will be logged in automatically and never see the login dialog box.
Of course, you do need a secure office to do this. And, you must not be keeping
credit card numbers (File | Initialization | Credit cards | Save the full card number
must be unchecked).
10:6
2002-10 Center Stage Software
Chapter 10- Webtix
Setting up Webtix to handle requests
You need to give Webtix permission to sell shows. This is done through the domains. Each
show that you intend to sell needs to have the internet as a one of the domains.
Click on the Internet options button for the show that you want to put on
sale. You will get the following screen:
2002-10 Center Stage Software
10: 7
Chapter 10 - Webtix
Note the Use the ranking Seating preference #1, 2, & 4. This is to give your customers a
choice as to their idea of the best seats. Obviously, you need to give them at least 1 choice.
These preferences are set up when you set up the seating plan. You need to set it up for
every seat. Click on Tools | Seating plans | Modify plan to get to the seating plans. Then, do a
a right-click and block select.
The price codes are going to be the prices that the Webtix (the Internet domain)
will be allowed to sell. Payment types are the types of money that Webtix will be
allowed to take.
10:8
2002-10 Center Stage Software
Chapter 10- Webtix
Each performance must have an on and off sale date and time:
The option, “Exclude from Internet sales” will turn off sales to Webtix – and Webtix only. This
is a handy way to turn off sales for a performance from home. You can access this section
through the Promoter section of Webtix.
The fields PerfInfo1 and PerfInfo2 are optional. They are text fields, specific to the
performance. Usually, they are used to add extra information to the Webtix scripts.
2002-10 Center Stage Software
10: 9
Chapter 10 - Webtix
If you have a large chart and have the Multiple charts turned on:
Each section needs to be available to Webtix – if you want to sell that section.
Click on Edit the entries and you will get into the good stuff:
Most of the fields are not changeable or are not used. For our purposes, there are 2 fields you
need to be concerned about:
Plan description – this is what shows up on the customer’s screen. It tells them what
section they can select
Domain list – this lists the domains that can sell a particular section. Obviously,
‘Internet’ must be one of the domains. You do not need to use commas, upper
and lower case. However, it makes it easier to read
Webtix chart – this will allow customers to select their own seats
10:10
2002-10 Center Stage Software
Chapter 10- Webtix
Move seats – this will allow Webtix to move the seats the customer selected to stop
single seats from appearing.
There is a lot of repetitious work here. You can use control-C, control-X, and
control-V to automate some of it.
2002-10 Center Stage Software
10: 11
Chapter 10 - Webtix
HTTPS – what creates the little lock on your customers screen
HTTPS through SSL (or PICS) encrypts traffic that flows over the wire in a Web request. Both
the data sent and the data returned over an HTTPS link is secure through encoding that
occurs on both the client and server.
SSL is implemented at the HTTP level through Web server security by installing a secure
certificate on your Web server. Certificates must be purchased from a Certificate Authority
such as Thawte (www.thawte.com). In order to install a secure certificate you need to apply
for the cert, prove that your business is who you say you are (read: paper work that takes a
few days), and a fee ($250 first time $150 renewal). For installation instructions check with
the Certificate Authority. They all have very detailed instructions.
Once installed, HTTPS usage is very transparent to your application. All you have to do to run
securely is change your links to HTTPS:// instead of HTTP://. When the request data is
captured everything looks just like a plain HTTP request.
10:12
2002-10 Center Stage Software
Chapter 10- Webtix
Reporting through Webtix
The reporting section was never something we thought would be important.
However, our customers tell us otherwise. Webtix reporting relieves the
box office manager from incessant phone calls from promoters and
managers. In every case, the question always is, “How are sales
doing?”
Using the Webtix reporting system, they can get reports every minute if
they like. One of our customers refers to it as the GYODR system (get
your own damn report).
All the reports here were built from our customers’ suggestions.
To give clients access to their domain through Webtix, make sure of the
following:
Passwords must be turned on in Wintix initialization
Don’t forget: George Spelvin is used as a demonstration password only. You
need to remove it on a production site. Otherwise, you will give anyone
able to read instructions ability to modify all shows that Webtix has on
sale.
You don’t want that.
2002-10 Center Stage Software
10: 13
Chapter 10 - Webtix
In Wintix
Create an account for the client in Wintix and give them their own domain. This
domain must be listed in the DOMAIN list for any show you want to give the
client access to.
To get here in Wintix: Click on Tools/Password/Edit the List of Users
Log in as SYSADM (default password is SYSADM unless you change it)
10:14
2002-10 Center Stage Software
Chapter 10- Webtix
Create an account of the same name and password in your list of Windows
users and give them DOMAIN ADMIN privileges.
To add DOMAIN to a show in Wintix Click on:
Show / Edit a Show / Show Title / Internet Options / Domains
Click on ADD A NEW DOMAIN, and replace NEWDOMAIN with Domain Name
you’d like. (Any show you want to sell online must also have INTERNET
domain)
Customize REPORTS.HTM with an html editor to match the feel of your website.
Once the client logs in over the web, they will be able to choose which report
they would like to run (Run of Show, Single Performance, All Performances,
Report for Sales in a Day).
2002-10 Center Stage Software
10: 15
Chapter 10 - Webtix
After choosing report type, reports can be customized to include any listed data
fields.
10:16
2002-10 Center Stage Software
Chapter 10- Webtix
Once the report has been run to the screen, it can be copied and pasted into any
spreadsheet program. Here is a sample report:
The blank sale (#1619) represents a Webtix sale in progress. If it is not
completed within a half hour, Seat Release will cancel the sale.
2002-10 Center Stage Software
10: 17
Chapter 10 - Webtix
Online Reporting
To give clients access to their domain through Webtix, make sure of the
following:
Passwords must be turned on in Wintix initialization
Create an account for the client in Wintix and give them their own domain. This
domain must be listed in the DOMAIN list for any show you want to give the
client access to.
To get here in Wintix: Click on Tools/Password/Edit the List of Users
Log in as SYSADM (password is SYSADM unless you change it)
10:18
2002-10 Center Stage Software
Chapter 10- Webtix
To add DOMAIN to a show in Wintix Click on:
Show / Edit a Show / Show Title / Internet Options / Domains
Click on ADD A NEW DOMAIN, and replace NEWDOMAIN with Domain Name
you’d like. (Any show you want to sell online must also have INTERNET
domain)
Customize REPORTS.HTM with an html editor to match the feel of your website.
Once the client logs in over the web, they will be able to choose which report
they would like to run (Run of Show, Single Performance, All Performances,
Report for Sales in a Day).
2002-10 Center Stage Software
10: 19
Chapter 10 - Webtix
After choosing report type, reports can be customized to include any listed data
fields.
10:20
2002-10 Center Stage Software
Chapter 10- Webtix
2002-10 Center Stage Software
10: 21
Chapter 10 - Webtix
Once the report has been run to the screen, it can be copied and pasted into any
spreadsheet program. Here is a sample report:
10:22
2002-10 Center Stage Software
Chapter 10- Webtix
Domain report
This report lists everything sold for your domain. It lists:
Each performance
Tickets sold
Dollar amount of the sales
Seats remaining
Capacity
Percent sold
2002-10 Center Stage Software
10: 23
Chapter 10 - Webtix
Reports, by day
These reports have similar information to what the Wintix reports have.
The Daily Sales report lists each sale:
10:24
2002-10 Center Stage Software
Chapter 10- Webtix
2002-10 Center Stage Software
10: 25
Chapter 10 - Webtix
The What Shows report lists every performance and what was sold for it.
As with the other reports, you can do a control-A, control-C, and copy the data. Then, open your
spreadsheet and do a control-V. All the data will be pasted in your spreadsheet.
10:26
2002-10 Center Stage Software
Chapter 10- Webtix
Excluding specific seats or sell only specific sections
If you want to exclude specific seats from the web, the way to do it is through the Webtix domain
permissions.
First, go to the domain setup for each show and take a look at the categories the domain "INTERNET"
is allowed to sell. Then, reduce those categories to just 1 or 2 that you will specify in the plan.
Next, go into the seating plan and put in the same internet categories in the valid price codes *only
those seats for sale on the Internet.*
If you are using best available selection, seats are selected until there is a break in the seats or the
seating preference changes. You can use this behavior 2 ways:
1. If you want people to be grouped in a center section, put breaks between the seats. Then, when the
center section of 1 row becomes filled, the next seats selected will be in the next row.
2. If you have cabaret seating with tables and you want the people to be grouped into tables, make
sure that all the seats for a table have the same preference ranking. And, make sure that all the other
spaces have a preference ranking of zero.
You can turn the automatic seat selection on when you edit a performance and press shift-F7 (in
standard Wintix). Or, in the Wintixpro version, click on edit a chart and then click on ‘Edit the entries.
Sort orders are also what customers using Webtix see when they select what seats they want.
Look in Chapter 5 in the section, “Working with Seating Plans” for more information.
Definition: a “break” between the seats is a space, on the plan, that has a preference ranking, but is
not for sale. Either the status is blank or the seat has no valid price codes. One example of a break is
the space that is put in for an aisle.
Use the right click and block select to save time here.
2002-10 Center Stage Software
10: 27
Chapter 10 - Webtix
Allowing customers to select their own seats on a seating chart
There are 2 philosophies here. One philosophy is that the box office manager decides what seats the
customers will get. This has been put forth by one of our customers:
"If I enjoyed a fiery Hell, then I'd let them select their own seats. But right now, there is now way on
God's Green Earth I would allow them to do that. They would leave an empty seat between them and
the next couple just to hang their coat. Then, they would get angry at me for selling that seat." – Carla
Ramlal, box office manager of Handel and Hayden Society
The other philosophy is that people should select their own seats. It makes them feel better to have a
choice. However, if you give them a chance, there will be single, empty seats all over the chart. The
solution is to move their seats after they have selected them. Webtix will do it automatically.
It works like this: Webtix looks at the seats that have been selected. Then, it checks the seats on either
side. If there is a single seat on the left or right side, Webtix will move the seats to the right or left and
fill in the hole. Obviously, there will be some seating arrangements where you will not want the seats
moved (theatre-in-the-round or cabarets). You can turn the feature off for those charts.
To use this feature with Webtix, edit the show in Wintix and edit the performance. Then, press shift-F7.
You will have a window like this:
10:28
2002-10 Center Stage Software
Chapter 10- Webtix
At the bottom are 3 options:
Use best available seat selection in Wintix
Use the interactive chart (Webtix only)
Allow Webtix to move the seat choices
You probably want the bottom 2 options checked. This will allow your customer to select their own
seats. And, will move them.
Allowing customers to select their own seats will give them the interactive seating chart in Webtix.
However, if you let them sit exactly where they want, you will end up with a lot of single seats that will
be difficult to sell. The solution is to allow Webtix to automatically move the seats. Webtix will move the
seats 1 seat to either the right or left, as needed.
You would not want to turn on this option where the seats are not in a proscenium layout. This can
include cabarets, arenas, theatre-in-the-round, and vertically numbered seats.
If you have a larger space, you will have broken the chart up into several pieces by turning on the
multiple chart option. To turn on this option in that case, you need to edit the seating chart and click on
the Edit the entries button. Move to the right side. Here’s what you will get:
2002-10 Center Stage Software
10: 29
Chapter 10 - Webtix
Domains and Webtix
In Webtix, the domain allows Webtix to sell specific shows and specific prices. It also tells
Webtix to take particular performances off sale before or after the off sale date and time.
Every show has a list of domains that that can sell tickets for it. “Internet” must be part of the
domain list for Webtix to sell the show. At least 1 price code must be checked. 1 payment type
must be checked. What price codes the domain can sell for that show. Each show can have as
many domains as you want.
To get to this section, edit the show. Click on Internet options. Click on domains.
10:30
2002-10 Center Stage Software
Chapter 10- Webtix
Promotional codes
Promotional codes are the internet version of a coupon. What they do is allow your customers to enter
a special code that you have given them. Then, they are allowed to purchase a certain number of
tickets at a special price.
These codes are specific to 1 show. They also have a date and time that they go on and off sale.
To get to this section, edit the show. Click on Internet options. Click on promotional codes.
2002-10 Center Stage Software
10: 31
Chapter 10 - Webtix
Tickets and ticket delivery methods
Tickets are sent as a PDF attached to each sales record. This happens automatically when Webtix is
told to render the PDF tickets. This is the variable: $cstage['Render_PDF_Tickets']
It is in /ticketing/_custom/_includes/config.php
Ticket delivery methods
Let’s say you live in a neighborhood where no one trusts the postman. They would not want anything
valuable to be mailed to them. However, they would trust Fed Ex and UPS. They would even be willing
to pay extra for the service. But, they could only order tickets up to 2 days before the performance.
That’s the purpose in the ticket delivery methods.
You can specify a method that the tickets will be sent, the cost, and the cut-off day:
To get to this section, edit the show. Click on Internet options. Click Ticket delivery methods.
Note:
1. Each delivery option will automatically disappear from your customer’s choices at the number of
days before the off sale date and time.
10:32
2002-10 Center Stage Software
Chapter 10- Webtix
Collecting more information as part of a Webtix sale – Season tickets
This section deals with the “FormChoice” variables.
Let’s say you need to collect a little more information from your customers. These can be things like
menu choices (chicken, steak, or chocolate cake), or performance preferences with a season ticket, or
additional registration information with class sessions. Webtix does not have any direct way of asking
for this information. The only thing that comes close is the remarks field.
The solution is to add some a variable or 2 with the first letters being “FormChoice.” This information is
stored as HTML in one of the ShowInfo fields and called when you need it.
It can also be used to sell season tickets:
For this, the following text was cut and pasted into the ShowInfo1 field:
<div class='text'><p>New season tickets will be processed after the renewals have been
completed on 3/31/08<br><b>Please choose a day...</b>
<select name="formchoiceDay" size="1">
<option value="Friday-8:15pm">Friday-8:15pm</option>
<option value="Saturday-8:15pm">Saturday-8:15pm</option>
<option value="Sunday Matinee-2:15pm">Sunday Matinee-2:15pm</option>
</select></p>
<p><b>Now choose a week...</b>
<select name="formchoiceWeek" size="1">
<option value="1st week of the run of the show">1st week of the run of the show</option>
<option value="2nd week of the run of the show">2nd week of the run of the show</option>
2002-10 Center Stage Software
10: 33
Chapter 10 - Webtix
<option value="3rd week of the run of the show">3rd week of the run of the show</option>
<option value="4th week of the run of the show">4th week of the run of the show</option>
</select>
<p><b>Seating preferences</b><br>
<select name="formchoiceSeating1" size="1">
<option value="Center Section">Center Section</option>
<option value="Audience Left">Audience Left</option>
<option value="Audience Right">Audience Right</option>
</select>
<p><b>Seating preferences</b><br>
<select name="formchoiceSeating2" size="1">
<option value="Front Row (Handicapped-Accessible)">Front Row (HandicappedAccessible)</option>
<option value="Aisle">Aisle</option>
<option value="Back Row">Back Row</option>
<option value="Doesn't Matter">Doesn't Matter</option>
</select>
<p><b>New or Renewal?</b><br>
<select name="formchoiceNew" size="1">
<option value="New">New Season Ticket Holder</option>
<option value="Renewal">Renewal</option>
</select></div>
We will assign the seats for you and mail them to you...please ignore the date on the ticket
receipt that says "Nov 30, 1999"<br>
<b>Shows include:<br>Fiddler on the Roof (9/12/08-10/5/08)<br> Man of La Mancha
(11/14/08-12/7/08)<br>Annie (1/2/09-1/25/09)<br>Sound of Music (2/27/09-3/22/09)<br>Jesus
Christ Superstar (4/24/09-5/17/09)<br>Music Man (6/19/09-7/12/09)</b><br>after you've made
your choices, click the green button below to continue...</p>
10:34
2002-10 Center Stage Software
Chapter 10- Webtix
Credit card processing
For settings and comments that are missing in your "config.php" look in "config_template.php".
Following are settings from "config_template.php" that you would modify in setting up creditcard processing in "config.php".
----------To process credit cards:
$cstage['processCards'] = true;
$cstage['cc_testing'] = false; // test credit card - not live
----------To change credit-card processor to PCCharge:
$cstage['cc_module'] = "pccharge"; //
(authorize_nossl,authorize,merchantplus,pccharge,wintix) credit card processor module
$cstage['pcCharge'] = "filename"; // File Name
$cstage['pcCharge_CCSoftware'] = "/media/somewhere"; // Software Directory Location
$cstage['pcCharge_TID'] = "your merchant number"; // Merchant Number
$cstage['pcCharge_cProcessor'] = "your id"; // Processor ID
$cstage['pcCharge_XML_File'] = true; // (true/false) Use XML File Format
$cstage['pcCharge_SecondsToWait'] = '10'; // 0 or greater
----------If you cannot get Webtix-PCCharge to work, the "wintix" module saves all cc data to the
database for processing later in Wintix. Just make sure you have the settings:
$cstage['cc_module'] = "wintix"; //
(authorize_nossl,authorize,merchantplus,pccharge,wintix) credit card
$cstage['saveCcNumber'] = "full"; // (none, full, partial) - save credit card to database
-----------------------------Excerpt from config_template.php:
// Credit Card Settings
$cstage['saveCcNumber'] = "__SAVE_CC_NUMBER__"; // (none, full, partial)- save credit
card?
$cstage['processCards'] = __PROCESS_CARDS__; // true / false Will Webtix process credit
cards?
$cstage['cc_module'] = "__CC_MODULE__"; //
(authorize_nossl,authorize,merchantplus,pccharge,wintix) credit card
processor module // The "wintix" module does NOT process, collect, or validate anything.
ALL orders need to be re-processed in WINTIX to collect funds.
$cstage['cc_testing'] = __CC_TESTING__; // test credit card - not live
$cstage['cc_error_tolerance'] = __CC_ERROR_TOLERANCE__; // number of tries a customer
has to attempt cc processing per session
$cstage['cc_login'] = "__CC_LOGIN__"; // login used to access credit card processor
$cstage['cc_key'] = "__CC_KEY__"; // key or password for using with login
$cstage['cc_hash'] = "__CC_HASH__"; // optional for some credit-card processors
// PC Charge Specific Configurations
$cstage['pcCharge'] = "filename"; // File Name
2002-10 Center Stage Software
10: 35
Chapter 10 - Webtix
$cstage['pcCharge_CCSoftware'] = "/media/somewhere"; // Software Directory Location
$cstage['pcCharge_TID'] = "your merchant number"; // Merchant Number
$cstage['pcCharge_cProcessor'] = "your id"; // Processor ID
$cstage['pcCharge_XML_File'] = true; // (true/false) Use XML File Format
$cstage['pcCharge_SecondsToWait'] = '10'; // 0 or greater
10:36
2002-10 Center Stage Software
Chapter 10- Webtix
Installation of Webtix on a LAMP stack
This chapter is based on our experiences and it intended as a guide only. The reason to use Linux is
not because it’s less expensive. The reason to use it is because it’s simpler, easier, more secure, more
reliable, and the quality of help you can find is better.
In our offices, production servers run Open Suse. Don’t let that sway your decision though. There are
other Linux distributions you should consider: CentOS, Red Hat, Debian, Mandrake, and Ubuntu to
name a few. Each distribution has its own advantages. You should base your decision on what you are
familiar with.
Install Apache and PHP on a MySQL server. Make sure that Apache is enabled by bring up the
index.html. Requirements:
PHP 5.3 with apache2-mod_php5, php5-curl, php5-dom, php5-mysql, php5-mysqli, php5dbase, php5-gd, php5-mcrypt, php5-zlib
Apache 2
MySQL 5
Lynx - if you are planning to use the scheduled reporting feature
Zend Framework (if you are using it)
Test MySQL by typing mysql at a command prompt (it may need to be enabled in the inittab). At this
time, it is also useful to install Navicat (there is a free version for Windows and Macs). You need to
open port 3306 in the firewall.
In Navicat, login as root (no password). This can only be done on localhost. Of course, you will want to
change this vulnerability. While you are in Navicat, create new users with passwords. The only place
they will need access to is the working subdirectory. By default, this is called tix7. You will need to
create this database. There are several tools to do this. We have found Navicat to be the easiest.
Transfer the tables of the tix7 database on to your server. And, make a backup copy of the database
on your server.
Installing the PHP scripts:
Unzip the contents of the ticketing folder into the working directory. It will default to unzipping into
./ticketing. This will be listed in Apache’s configuration file as the HTDocs variable.
CentOS and Red Hat: /var/www/html
Ubuntu:
/var/www/
Suse:
/srv/www/htdocs
Launch your browser and go to the document root (where the PHP files were unzipped to). Open
events.php. This form will walk you through the configuration settings.
2002-10 Center Stage Software
10: 37
Chapter 10 - Webtix
This installer is a one-time installer. It cannot be automatically run again. After this is run, you must
make any further changes in the ./ticketing/_custom/_includes/config.php. If you want the same report,
run ./ticketing/admin/testinstallation.php.
10:38
2002-10 Center Stage Software
Chapter 10- Webtix
Installation notes:
1.
Have your Authorize.net login and key ready
2.
Set /ticketing/_custom/_includes/ to be world writable before running the installation
script. Set it to be read-only when you are finished.
3.
Set /ticketing/_includes/temp_files and /ticketing/_includes/temp_fonts
to be world readable and writable.
4.
Remove /ticketing/_includes/module_install/ when finished
5.
The Webtix configuration file is /ticketing/_custom/_includes/config.php
This message means that PHP cannot connect with the MySQL server. You need to edit your
./_includes/config.php and check the following entries:
dbHostName
dbUsername
dbPassword
dbDatabase
Make sure all the tables are type InnoDB. If any of the tables are MyISAM, Webtix will not work.
Security hole: The default behavior of text editors is to make a backup copy of the file that was edited.
For most of the PHP scripts, this does not make any difference. In the case of the config.php, you are
exposing a world-readable copy of the file that contains the password to read and write your data.
You don’t want this.
You will want to change other things
./_css/maincss.php
The style sheet
./_includes/page_header.php
The header of the pages
./_includes/page_footer.php
The footer of the pages
./_includes/ticket template
The layout of the ticket
./_includes/email
Email templates
Run the file, Events.php. Your shows will come up. To test the installation, run the file
./admin/testinstallation.php. This will tell you if you need to make any changes. In particular, the
./includes/temp_barcode, ./includes/temp_fonts, and ./includes/temp_pdf need to be world readable
and write able.
Once the testinstallation.php does not give any errors, you will be up and running.
An occasional problem: The program will stop at process.php. If the email tickets is set to false, Webtix
works. This can be caused by 4 things:
•
Insufficient memory allocated in /etc/php5/apache2/php.ini minimum is 30MB (default is 8MB)
•
There is word-wrapping in the tickets (php5-dom refuses to handle this)
•
Proper fonts are not installed (you must have a seraph font and a sans seraph font)
•
Your mail server may be down (check and see if you can send and receive email)
2002-10 Center Stage Software
10: 39
Chapter 10 - Webtix
Accessories:
phpMyAdmin is a free tool that is easy to use, flexible, and handy for a wide variety of jobs. It can also
be a huge security hole. It’s not that the code is bad, it’s just that you must set it up properly.
Some suggestions:
Rename the subdirectory phpMyAdmin to something else
Move the subdirectory out of the HTML path when you do not need the program
Do not make the program capable of logging in without a username and password
Use a good password – 12 to 16 characters, upper and lower case with some numbers
Everyone on the internet will know you have the program installed. They will be constantly trying
to get in.
Navicat has an inexpensive GUI tool. This is a little different from phpMyAdmin since it works locally
(from your desktop) and accesses the MySQL data directly. Like phpMyAdmin, it is handy for
doing a lot of things. It works on Windows, Linux, or Mac. Of note:
Free versions and trial versions are available
You can connect straight to the database, or use an SSL, SSH, or HTTP tunnel
If you have a paid copy ($125), you can do other things like reports and scheduled tasks and
data transfer. It has the easiest way to back up a MySQL database we have found (just copy
your database to another server)
Firewalls: You will need a firewall with deep packet inspection (stateful packet inspection). The built-in
firewalls in Red Hat, CentOS and Suse are supposed to do this but we are not sure if they are
really stateful packet inspection. Verifiable information on these firewalls is hard to come by. A
hardware-type firewall from SonicWall, starts at $400. Other firewalls can go up to about
$10,000.
10:40
2002-10 Center Stage Software
Chapter 10- Webtix
Setup for Wintix for SSH tunneling
Explanation: Every time you sent anything over the internet, someone can read it – whether you want
them to or not. The people who do it range from criminals (who are looking to harvest credit card
numbers) to the government (their carnivore project). If you are sending sensitive data (especially
credit card numbers), you need to protect it. This includes the passwords that you log in with.
Solution: Use Putty for remotely accessing your MySQL database. Putty is an open source program
that runs on a Windows machine. It sets up a connection with a SSH machine and encrypts everything
in between. The encryption is 128 bit encryption. Warning: use of Putty is illegal in countries where
encryption is outlawed. An additional benefit is that you can close port 3306 on the MySQL server that
Webtix uses.
If you want to use an SSH tunnel with Navicat, go to http://www.enginsite.com/tunnel_howto.htm
Note: A VPN tunnel will do the same encrypting as is done here. However, VPN tunnels are usually a
lot more complicated and can be expensive. Putty is free. Setting this up will only take you about 10
minutes.
You can download Putty from http://www.chiark.greenend.org.uk/~sgtatham/putty/
1. Start Putty. Since this is the first time you have run the program, you will see a blank screen:
2002-10 Center Stage Software
10: 41
Chapter 10 - Webtix
2. Enter the Host name (or IP address). Enter a description under Saved sessions and click on the
Save button:
3. On the left side, click on Connection | SSH | Tunnels and enter the following information:
Enter "3306" for "Source Port" and enter "localhost:3306" for "Destination".
10:42
2002-10 Center Stage Software
Chapter 10- Webtix
4. Click "Add" button so that screen displays "L3306
localhost:3306"
5. You should have the session named in step 1. If you do not, click on Session | Saved sessions and
give the connection a name. Click on the Save button to save the entry.
6. Open up the Sqlrdd.ini file with Notepad (not a word processor). Configure it to access localhost and
save the file. For example, the file might look like this:
7. Open Putty. Log into the server with your name and password (this is your operating system name
and password – not the MySQL one)
2002-10 Center Stage Software
10: 43
Chapter 10 - Webtix
You are finished You now have an encrypted SSH tunnel. All computer between your computer and
the server will be encrypted.
Start Wintix (or Mintix or Tixsales). You will see you are logged into “Localhost”
Keep Putty open and logged in as long as you are using the program. If you close Putty, Wintix will
give a message, “Not connected to localhost.”
To restart the SSH tunnel, use the following procedure:
1. Start Putty
2. Doubleclick on the name of the session you saved
3. Login into the server
4. Start Wintix (or Mintix or Tixsales)
10:44
2002-10 Center Stage Software
Chapter 10- Webtix
Setting up Webtix for arenas, ice hockey rinks, football stadiums, and other large
areas
Explanation: Up till now, all the seating charts have been for one chart for one date and time. This is
fine for smaller organizations. However, once you get more than 2000 seats or so (in a proscenium) or
500 seats (in an arena) the chart gets too big to display as a monolithic unit. The solution is to break
the chart into pieces. Sometimes, this is called a Multichart. With this method, the number of seats is
unlimited. The record is 48,000 seats.
How to get all those seats into Webtix:
1. The first step is to get an image of the arena. This image is what the customers will see. You do
not want it to be a large image. That takes too long to load. A file 100K in size is about right.
Your customers will click on a section of the image and be taken to the appropriate chart. For
this example, we are using Freedom Hall in Louisville (a modest 26,000 seats).
2. The second step will be to map the sections with an HTML mapping tool.
3. The third step will be to put the mapped numbers into the plan’s data.
4. The final step is to put the image into the field shows.multichart_image field.
Mapping the image (you will need a mapping tool).
2002-10 Center Stage Software
10: 45
Chapter 10 - Webtix
Next step is to start mapping the image. You need to select the image and select the option
draw a polygonal area (hot zone). Note: All images that you draw must be polygons. They
must have at least 5 sides. Rectangles and circles will not work. It will look something like
this. You will need to give the image a label when you are done. Give it a descriptive name.
Go on to the next image. There is no limit to the number you can create.
When you are finished, click on the tab to look at the html generated. You will see something like this:
<img src="freehall.jpg" width="550" height="363" border="0" usemap="#ImageMap1">&nbsp;<p>&nbsp;</p>
<map name="ImageMap1">
<area shape="polygon" coords="338, 138, 309, 138, 301, 152, 302, 207, 313, 222, 339, 222" href="Center section">
<area shape="polygon" coords="473, 23, 341, 137, 344, 224, 406, 281, 478, 322, 545, 238, 545, 125, 514, 43" href="http://right side">
<area shape="polygon" coords="103, 8, 216, 143, 341, 136, 452, 20, 443, 4, 117, 5" href="http://top section">
<area shape="polygon" coords="85, 7, 218, 145, 212, 224, 149, 282, 59, 333, 8, 242, 9, 106" href="http://left side">
<area shape="polygon" coords="475, 347, 339, 225, 214, 225, 106, 341, 119, 355, 460, 353, 471, 346" href="http://bottom">
</map>
Now, look at those coordinate numbers. Go into Wintix and click on Tools | Seating plans and select
each plan. Put the numbers in where it asks for the map coordinates. Put only the numbers and
commas in.
Image mapping tools are simple programs.
If you are interested in a free one, Google the phrase, “free image mapping software”
10:46
2002-10 Center Stage Software
Chapter 10- Webtix
Emailing a custom email form – specific for a show
File names and variable names are case sensitive. Some terms:
email_confirm.html
Used for the consolidated cart – common data for all receipts
email_confirmoneshow.html
Show specific receipt. If you want a custom receipt, this text is what you put in
master.emailform
email_confirmmultishow.html
Used when there is more than 1 show in the shopping cart. This is what gets sent out
when consolidated receipt is set to true.
To set it up:
sendConsolidatedReceipt – must be set to false in Config.php.
email_confirmoneshow.html needs to be modified and saved in master.emailform.
The way it works:
Webtix first looks in the master table in the field master.emailform. If there is nothing there, it creates
the receipt from email_confirm.html which calls email_confirmoneshow.html
To get to the section, you need to go into Wintix or Webtix. Webtix does it when you edit a show. Wintix
does it when you edit a show and click on the Internet options button. Once you get to either section,
you can paste your HTML in the field.
2002-10 Center Stage Software
10: 47
Chapter 10 - Webtix
Installing the automated reporting feature
Explanation: The reporting features built into Webtix are fine for most operations. However, you may
want to automate the reports that get sent out. Promoters may want to have their reports sent to them.
This feature is for you.
First, you must tell Webtix that you want it to email you a report. Go into the reporting section to
schedule the report to be sent out.
Then, you are taken into the setup for the reporting:
10:48
2002-10 Center Stage Software
Chapter 10- Webtix
The next step is on your server. You need to tell the server to check for reports that need to be sent
out. This done with crontab. Go to a command prompt (any user will do) and type: crontab –e
A window will pop open asking you to enter the information. You need to create an entry according to
the help file.
Here are some examples. The first 2 entries put the output in a text file on a user's desktop.
Capitalization is important here.
Secure server:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * wget --no-check-certificate -q -O https://localhost/ticketing/admin.php?page=batchProcess >> /home/centerstage/Desktop/cron_log.txt
/ticketing/admin.php?page=batchProcess
No site certificate installed:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * wget -q -O - http://localhost/ticketing/admin.php?
page=batchProcess >> /home/centerstage/Desktop/cron_log.txt
Quiet mode
0,5,10,15,20,25,30,35,40,45,50,55 * * * * wget -q
Notes
The table, email_report_status has a variable: started_at The default value needs to be
CURRENT_TIMESTAMP
The table schedule_email_report has a variable: created_on The default value needs to be
CURRENT_TIMESTAMP
The editor used by default on many systems is the venerable vi. You are not supposed to like vi.
Instead, the purpose of vi is to remind you how far the software industry has come in the last 20 years.
in daemon mode, the cron simply runs to make sure the daemon is running.
in my case, daemon would not start (don't know why) in config.php, there is a daemon setting, which
we set to blank, which takes it out of daemon mode
in order to check the status of the daemon:
Run the command "ps aux | grep admin_daemonProcess.php". It will display the daemon
processes in memory.
2002-10 Center Stage Software
10: 49
Chapter 10 - Webtix
Custom changes in Webtix
It is expected that you will be changing Webtix.
You can modify any PHP files you like. However, put the modified files in the /ticketing/_custom
subdirectory. When Webtix finds a file there, it will give that file priority. This is only for the PHP in the
main subdirectory and the PHP and HTML in the /includes subdirectory.
For instance, let's assume you want to modify events.php. You would copy the events.php to the
/_custom subdirectory. Then, modify the copy of events.php. As long as the copy of events.php exists
in the /_custom subdirectory, it will be run instead of the events.php in the main subdirectory. The big
benefit is that if you make a mistake with your modified events.php, you can delete it. Webtix will revert
to its default behavior.
This feature allows you to make custom changes and have them show up. If you make a mistake, you
will be able to erase the file you do not want. Then, Webtix behavior will revert to the default.
This way, you can also get updates to the PHP scripts without affecting your custom changes.
10:50
2002-10 Center Stage Software
Chapter 10- Webtix
Customizing the online PDF ticket layout for Webtix5
A current version of NetBeans or Eclipse with the PHP plugin provide useful IDE's for
developing/modifying PHP code. (VI and Emacs will work also.)
The Webtix5 ticket-template is a PHP program that gets passed purchase-session values
including show and performance id's. A knowledgeable programmer could use the purchasesession data as a test to determine a fork in the program for using alternative tickettemplates. With the correct customizations, it is possible for tickets to have different
formatting for different shows.
STEP #1
To format/customize the default PDF ticket:
a) Copy the file "_includes/ticket_template.php" and place the copy into
"_custom/_includes/ticket_template.php". Do not modify the original file.
b) Begin customizing "_custom/_includes/ticket_template.php".
OPTIONAL STEP #2
Ticket rendering functionality can also be modified by creating
"_custom/_includes/libf_renderTicket.php".
a) Copy the file "_includes/libf_renderTicket.php" and place the copy into
"_custom/_includes/libf_renderTicket.php". Do not modify the original file.
b) Begin customizing "_custom/_includes/libf_renderTicket.php".
OPTIONAL STEP #3
Once you have customized functionality for extra templates, you can create those extra
templates by following steps similar to #1:
a) Every new template should have a new name. For demonstration purposes replace the
phrase "example" with something more appropriate.
b) Copy the file "_includes/ticket_template.php" and place the copy into
"_custom/_includes/ticket_template_example.php". Do not modify the original file.
c) Have the template included using "require('_includes/ticket_template_example.php');" in
your code even though the file actually exists only in "_custom/_includes/" directory.
d) Begin customizing "_custom/_includes/ticket_template_example.php".
The default functionality of Webtix is to enable/disable online PDF functionality via a
configuration setting in "_custom/_includes/config.php". The on/off PDF setting affects all
shows and performances online. This functionality can also be customized in the "_custom"
directory.
2002-10 Center Stage Software
10: 51
Chapter 10 - Webtix
Bar codes on print-at-home tickets
In Config.php, the render_pdf_tickets variable needs to be true. The ticket gets generated in
process.php. Don't change this file. For changes to the ticket format, ticket_template.php is where you
need to make the changes.
If you are using a general admission show, the contents of the bar code field is the sale number. If you
are using reserved seats, the bar code has the auth field (a random set of numbers and letters) and the
sale number. The bar code is generated in libf_renderTicket.php. On lines 32-35 the data string (auth
and chartlist_id) gets built. The text gets passed to the C39Object which generates the bar code .png in
the temp_files subdirectory.
The best practice for customization is to copy libf_renderTicket.php to /custom/includes/. Then,
updates to Webtix will not interfere with your customizations.
There are a couple situations where scanning tickets pays for itself.
1. Chargebacks: you can prove the ticket was used
2. Students at universities claim to have attended. A scan report will tell you they have or have not
been in.
3. Counterfeit tickets: bar coded tickets stop the problem
4. You get a report of people who purchased tickets and did not attend. If season ticket holders do
not attend, they are not likely to renew their subscriptions. These people need a call.
How much does it cost?
•
Corded 2D scanners (connected to a computer) are about $600 each
•
Wireless scanners for 2D bar codes are about $1,400
•
You also need a connection to your server. This can be either a wifi connection over the
internet or else a wireless connection to your local network.
For scanning tickets with ScanTix, see the document: BarCodeScanning.pdf
10:52
2002-10 Center Stage Software
Chapter 10- Webtix
Emailing with an SMTP server
SMTP settings via Webtix uses the module php-sockets which creates a direct socket
connection to your SMTP server. Webtix also requires host and login email addresses to use
its internal SMTP settings.
If you have trouble with php-sockets module or the network requires additional domain
authentication, you should instead have Webtix set to "mail". Then alter the PHP.ini with
appropriate SMTP settings. Finally reboot PHP so that the new PHP.ini settings get
implemented.
File "php.ini":
...
[mail function]
; For Win32 only.
SMTP = youremailserver.example.com
smtp_port = 25
...
Information from: http://us.php.net/manual/en/mail.configuration.php
Some definitions
SMTP string
Used under Windows only: host name or IP address of the SMTP server PHP should use for
mail sent with the mail() function.
smtp_port int
Used under Windows only: Number of the port to connect to the server specified with the
SMTP setting when sending mail with mail(); defaults to 25. Only available since PHP 4.3.0.
Other problems may include a firewall, domain controller, or additional authentication
requirements to connect to your SMTP server within your network that is causing lack of
permission to send email.
2002-10 Center Stage Software
10: 53
Chapter 10 - Webtix
Webtix server optimization example
Disclaimer: Every server is a little different. The process is to test, make changes and re-test.
This section is only a guide.
MySQL will work just fine with the default settings- approximately the same speed that it did
with the old dbf files. However, a MySQL database server can run a lot faster if you do a little
tuning.
Linux example
The initial settings had been configured for a developer workstation, not a dedicated server.
This was changed to the following settings.
File: /etc/my.cnf
OS: Suse Enterprise Linux 10
key_buffer = 32M
max_allowed_packet = 4M
table_cache = 256
sort_buffer_size = 5M
read_buffer_size = 1M
read_rnd_buffer_size = 3M
innodb_buffer_pool_size = 1536M
innodb_additional_mem_pool_size = 512M
The physical memory was 4GB. Because the server only has a 32-bit OS and motherboard
chipset, only 3.3GB of memory is available for use. After optimization, MySQL was using about
452MB of system memory and was operating much more quickly.
Windows 2003 server with 2G of memory
innodb_additional_mem_pool_size = 250M
innodb_buffer_pool_size = 750M
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 5M
innodb_lock_wait_timeout = 50
Notes:
1. Do a mysqldump to back up everything before you start.
2. Stop the MySQL daemon before you modify the my.cnf (my.ini on windows)
3. The innodb_log_file_size setting must match the size of the log files in the \data
subdirectory. These files are ib_logfile0 and ib_logfile1. If they do not match, MySQL
will not start. The safest thing is to rename the files before you re-start the daemon.
4. The actual data is in the ibdata1 file. Don't mess with it.
5. If you have problems, look in the .err file. Do a search for that error on the internet.
6. If you are not careful, you may need to re-install MySQL. You will need to restore
from the backup you made in step 1
10:54
2002-10 Center Stage Software
Chapter 10- Webtix
500 internal server errors with Windows
This error indicates a system administration problem that should be resolved by the server
administrator. A 500 Internal Server Error message can occur for many reasons.
Microsoft configures PHP to run as a FastCGI, which is normally the preferred way to run PHP.
However IIS's default configuration has PHP error messages resulting in
uninformative/ambiguous 500-internal-server-error in IIS. PHP error messages could result
from incorrect syntax in customizations, missing PHP modules, incorrect file permissions, plus
more. To track down the problem cause for resolution, you will need to enable error-reporting
and error-logging in PHP. In your PHP.ini file, please edit:
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
log_errors = On
error_log = C:\php_error_log.txt
(Make sure that PHP/FastCGI can write to C:\php_error_log.txt or another error log file
location.)
Restart PHP and IIS.
Then please edit your "ticketing/_custom/_includes/config.php" file with:
error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR);
This will enable a more detailed error logging in PHP for Webtix5. You should also have some
useful data in IIS's FastCGI logs.
Make sure that PHP is able to write to it's configured cache/temporary directory. The location
of this temporary directory can be configured in the PHP.ini file.
If IIS was incorrectly configured with FastCGI and PHP, any MINOR PHP warning might
generate a 500 server error instead of allowing PHP to catch the warning/error and process
accordingly.
If IIS7 was unable to communicate via FastCGI protocol to a PHP process, a 500 server error
would occur.
If the Windows server had insufficient memory to handle IIS7, FastCGI, PHP, Webtix, plus
other items on the server... a 500 server error would occur.
If any high-demand caused bottle-neck of server resources occurred, a 500 server error would
occur.
If a PHP engine binary corrupted in memory (for whatever cause...), a 500 server error would
occur.
Plus other reasons could cause a 500 server error.
Microsoft provides resources at MSDN.com on administering IIS server software and what to
look for when a 500 internal server error occurs.
2002-10 Center Stage Software
10: 55
Chapter 10 - Webtix
To find the cause/solution to a 500 Internal Server error:
1.
View the server's IIS logs. The log files should have more detailed
information regarding cause.
2.
View the server's FastCGI logs. The FastCGI log files should have more detailed
information regarding cause IF the problem occurred during FastCGI processing.
3.
View the server's PHP logs. The log files should have more detailed information
regarding cause IF the problem occurred in the PHP engine.
4.
View the server's logs for possible problems that might have been occurring at
the same time.
5.
View the network logs to see what demand was occurring on the webserver
(IIS).
6.
During off-hours when users are unlikely to visit the site, attempt a load test on
the server to look for possible bottle-necks of server resources and unoptimized
server configurations.
7.
Don't forget to check your code. HTML errors can cause IIS to crash.
10:56
2002-10 Center Stage Software
Chapter 10- Webtix
Setting up Webtix to use a $3.50 surcharge per order for a web order.
You need to do 2 things:
1. Set up the payment type and service charges the say you want
2. Tell Webtix to use that payment type
Click on File | Payment types and set up the payment type the way you want:
Click on Show | Edit a show | <select the show> | Internet options | Domains | <select
internet>. Tell the internet domain to use the payment type you just entered.
2002-10 Center Stage Software
10: 57
Chapter 10 - Webtix
The result is the charges you wanted:
10:58
2002-10 Center Stage Software
Chapter 10- Webtix
Updating Webtix
Here is the recommended update procedure:
1. Back up your php in a separate place (like a CD)
2. Rename your old /ticketing subdirectory
3. Unzip the new files into a new /ticketing subdirectory
4. Start a browser and go to your website and start a sale. You will be led through the
installation process.
5. You will notice some new fields are required. Some old ones have been changed.
Generally speaking, the fields that are bold must be corrected. The other fields should
be corrected. If you cannot remember your old settings, go to the renamed subdirectory
and you can find the old settings in
/<renamed subdirectory>/_custom/_includes/config.php. When you are done, you will
have the latest Webtix on your server.
6. Re-install your custom changes in the /ticketing/_custom folder.
2002-10 Center Stage Software
10: 59
Chapter 10 - Webtix
Running Webtix with Fastcgi
Explanation: An apache server spawns a process every time it gets a hit. Fastcgi keeps one
process in memory and uses that process to process many requests. Our estimation indicates
the speed of a web server is doubled.
The instructions here are for Apache on a Linux server. FastCGI will also run on Lighttpd and
IIS.
Using Yast or Yum, install:
mod_fcgid
php-fastcgi
in etc/apache2/conf.d/fcgid_conf
Uncomment the statements at the bottom to activate the <FilesMatch> section
Add Initenv=PHP_FCGI_CHILDREN = 16 to 32
Add Initenv=PHP_FCGI_MAX_REQUESTS=500 to 1000
in /etc/sysconfig/apache2
a2dismod php4
a2dismod php5
a2enmod fcgid
(a2enmod, a2dismod - enable or disable an apache2 module)
or
edit /etc/sysconfig/apache2
remove reference to php 4 and 5
remove php5 and add reference to fcgid in the APACHE_MODULES line
edit /etc/php5/fastcgi/php.ini
make execution time 60-120 seconds
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
check with phpInfo&version=<whatever>
If there are any errors, look in /var/log/apache2/error_log
A more complete set of instructions is at:
http://typo3.org/development/articles/using-php-with-mod-fcgid
10:60
2002-10 Center Stage Software
Chapter 10- Webtix
XAMPP – Apache, MySQL, PHP in one package
Given that Apache, MySQL and PHP are the most popular development tools for dynamic web
pages, it is not surprising that there are several packages of these tools. Of the bunch, XAMPP
seems to be the most complete and best supported. The web site is ApacheFriends.org.
When uninstalling XAMPP, make sure that all the XAMPP modules are stopped and all
XAMPP modules installed as a service have been uninstalled and close the Control Panel then run the uninstall script and make sure that the xampp directory has been deleted, Don't
try and reinstall by overwriting the original xampp directory as this will cause your installation
to fail.
Tip 1 - next time you do an installation try and install to C:\ root directory as this often
alleviates path issues - your ServerRoot would then look like this:
ServerRoot "C:/xampp/apache/bin"
Tip 2 - The zipped versions doesn't mess with the Windows installer so you can extract
XAMPP to any location you like and then run the setup_xampp.bat file and your installation
paths will all be set correctly.
After running the bat file, manually check line 57 of your httpd.conf file in a text editor and see
if it looks like this perhaps:
ServerRoot "C:/server/xampp/apache"
If not then change it to look like the above. Make sure any other paths in the httpd.conf file
show your XAMPP installation path "C:/server/xampp" in much the same format as the
above ServerRoot path.
Try and start Apache again after saving the file if you made any changes - always make a
backup of conf and ini files before editing.
The other issue with MySQL may also be cleaned up by running the setup_xampp.bat file but
if not then drag the C:\server\xampp\mysql\bin\my.cnf (it may be just called my and look like a
link) into your text editor and check the paths look like this:
# The MySQL server
[mysqld]
basedir="C:/server/xampp/mysql"
tmpdir="C:/server/xampp/tmp"
datadir="C:/server/xampp/mysql/data"
And for any other paths in this file - also make sure the tmpdir exists.
Save the file if you changed anything and restart MySQL.
The above may not help but you have an obvious path issue from the errors you posted in
your original post.
2002-10 Center Stage Software
10: 61
Chapter 10 - Webtix
XAMPP notes:
Use open ssl to generate the certificate for XAMPP. The included cert does not
have enough characters
With open SSL, you need to manually configure the path or execute the commands
directly in the \XAMPP\Apache bin directory.
Make sure CURL is activated in php.ini (disabled in the default settings)
How to configure XAMPP to use Gmail instead of the built-in Mercury mail service
Configure Webtix to use Mail (not SMTP). - in /ticketing/_custom_includes/config.php
Open php.ini to disable smtp Instead, use XAMPP's sendmail module
In the xampp/sendmail/sendmail.ini
Create account type gmail and set it up to have authentication, with the
SMTP hostname login, from address, and password
Use GMail as the default account (previously set up)
Comment out any other mail server
Restart Apache (because of the PHP changes)
This results in Webtix to PHP mail. PHP mail to XAMPP sendmail. XAMPP sendmail goes to
GMail.
10:62
2002-10 Center Stage Software