Issue
Browsers are now blocking port 10080, which is the default application port for some installations of Zend Server. This will prevent browsers from displaying pages served by Zend Server using this port. There are some other ports blocked in browsers for this reason, but at this time they are not likely to be in use by our customers. Here is a list of the ports blocked by Chrome and Firefox to protect against Slipstream:
69 – TFTP
137 – NetBIOS Name Service
161 – SNMP
554 - RTSP
1719, 1720 – VoIP (H.323)
1723 – PPTP
5060, 5061 – SIP
6566 – SANE network scanner
10080 - AMANDA (Advanced Maryland Automatic Network Disk Archiver)
Environment
Zend Server 6 or later, running on any supported version of IBM i. Versions 9 and later may not be affected for customers who installed these versions side by side with an earlier version.
Resolution
Step 1 - Find a new port to use
You will need a new port number to replace 10080. You will not want to use the Zend Server reserved ports 10081, 10082, or 10083. You also will not want to use the ports listed above that browsers are currently blocking. You can use most ports, as long as they are not already in use. As an example, you might choose port 10085, the port we will be using in the example. The following article can help you determine if the port you choose is already in use:
Verify available ports for Zend Server for IBM i
A more detailed discussion for choosing an available port can be found on this blog post:
Find an available port
The blog post discusses how to avoid standard port assignments. This may be important in the future. We can see many of the ports already blocked for Slipstream are standard ports. This implies others added in the future may also be standard ports. For this reason, and just as a good practice, standard ports for other uses should be avoided when choosing a new port for your web site.
Step 2 - Edit your Apache configuration to use your chosen port
Please find this file and make a back up copy before editing it:
For version 8.5 and earlier:
/www/zendsvr6/conf/httpd.conf
For versions 9 through 2019:
/www/zendphp7/conf/httpd.conf
For versions 2020 and 2021:
/www/zendphp74/conf/httpd.conf
Once you have the file backed up, please open it in a code safe editor like Notepad ++ or Zend Studio. Look for some code that looks similar to this near the top of the file. It may vary slightly for different versions, and may have been modified for your specific usage:
Listen *:10081
NameVirtualHost *:10081
Listen *:10080
NameVirtualHost *:10080
DocumentRoot /www/zendphp7/htdocs
DefaultFsCCSID 37
CGIJobCCSID 37
<VirtualHost *:10080>
Include /usr/local/zendphp7/etc/sites.d/zend-default-vhost-10080.conf
</VirtualHost>
Notice that the string '10080' appears four times. We will only change it in three places. The last appearance of '10080' is part of a file name, and should not be changed. So, in our example, we will use port 10085, and the changed code will look like this:
Listen *:10081
NameVirtualHost *:10081
Listen *:10085
NameVirtualHost *:10085
DocumentRoot /www/zendphp7/htdocs
DefaultFsCCSID 37
CGIJobCCSID 37
<VirtualHost *:10085>
Include /usr/local/zendphp7/etc/sites.d/zend-default-vhost-10080.conf
</VirtualHost>
Notice that the lines that contain '10081' are NOT changed, we only want to change '10080'. Also, please notice that the line that starts with "Include" is not changed. The string '10080' is part of the included file name. If we change the file name here, the file will not be found.
A common modification you may encounter is that the asterisk in the IP addresses may be replaced by a specific IP address. This is done to limit the directives to a specific IP address. So instead of '*:10080' you might see it with some IP address like '192.168.17.10:10080'. That IP address is just an example, it might be any valid IP address. At any rate, just go ahead and change the port like '192.168.17.10:10085' .
If you have made your changes, please save your file and restart Zend Server.
Step 3 - Verify your web site works using the new port
Go into the browser that would not serve your page at port 10080 and verify that the page serves successfully from port 10085. For example, if the address you were trying to reach previously was this:
http://www.zend.com:10080
You would just change it to:
http://www.zend.com:10085
This should get you past any errors about the site being restricted by the browser. This might be all you need to do. But there may be more, if your application has hard coded URLs that use 10080. Please continue to the next step.
Step 4 - Review your application code for references to port 10080 and thoroughly test you web site
This task needs to be performed by the developers who maintain your PHP application code. This might be an in-house developer on your staff, a third party consultant or PHP application provider, Zend Professional Services, or any other person or company who provided your PHP code. The code chould be checked for any references to pages or web services on your site that may include the port 10080. All of these references will need to be changed to use the new port you chose. The developers should also test the web site thoroughly to make sure everything is working as expected after the port change.
Step 5 - Notify your end users to use the new port
Your customers and/or coworkers who use your web site will need to know that the port has changed. They will need to know to type in the new port, and will need to adjust their bookmarks to use the new port.