This post introduces how to change the default port on which Apache Solr runs on Ubuntu 16.04. (See my post if you have not installed Solr on your Ubuntu.)
The default port for Solr is 8983, but there are circumstances where you may want to change this. For example, if you wish to experiment with a new release, or you want your various Sitecore development instances to hit separate instances of Solr. See below for two options for changing the port number on Ubuntu.
Step 1: use sudo service solr status to check your Solr status and the port it is running on.
yourusername@yourservername:~$ sudo service solr status [sudo] password for yourusername: ● solr.service - LSB: Controls Apache Solr as a Service Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled) Active: active (exited) since Sun 2017-04-30 11:08:43 EDT; 1 weeks 0 days ago Docs: man:systemd-sysv-generator(8) Apr 30 11:08:34 yourservername systemd[1]: Starting LSB: Controls Apache Solr as a Service... Apr 30 11:08:34 yourservername su[2655]: Successful su for solr by root Apr 30 11:08:34 yourservername su[2655]: + ??? root:solr Apr 30 11:08:34 yourservername su[2655]: pam_unix(su:session): session opened for user solr by (uid=0) Apr 30 11:08:42 yourservername solr[2652]: [194B blob data] Apr 30 11:08:42 yourservername solr[2652]: Started Solr server on port 8983 (pid=2861). Happy searching! Apr 30 11:08:43 yourservername solr[2652]: [14B blob data] Apr 30 11:08:43 yourservername systemd[1]: Started LSB: Controls Apache Solr as a Service.
Step 2: use sudo service solr stop to stop your Solr first before we go ahead and change its default port.
yourusername@yourservername:/opt/solr-6.5.1/bin$ sudo service solr stop yourusername@yourservername:/opt/solr-6.5.1/bin$ sudo service solr status ● solr.service - LSB: Controls Apache Solr as a Service Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled) Active: inactive (dead) since Sun 2017-05-07 15:40:57 EDT; 17s ago Docs: man:systemd-sysv-generator(8) Process: 15132 ExecStop=/etc/init.d/solr stop (code=exited, status=0/SUCCESS) Apr 30 11:08:42 yourservername solr[2652]: Started Solr server on port 8983 (pid=2861). Happy searching! Apr 30 11:08:43 yourservername solr[2652]: [14B blob data] Apr 30 11:08:43 yourservername systemd[1]: Started LSB: Controls Apache Solr as a Service. May 07 15:40:55 yourservername systemd[1]: Stopping LSB: Controls Apache Solr as a Service... May 07 15:40:55 yourservername su[15135]: Successful su for solr by root May 07 15:40:55 yourservername su[15135]: + ??? root:solr May 07 15:40:55 yourservername su[15135]: pam_unix(su:session): session opened for user solr by (uid=0) May 07 15:40:55 yourservername solr[15132]: Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow May 07 15:40:57 yourservername solr[15132]: [56B blob data] May 07 15:40:57 yourservername systemd[1]: Stopped LSB: Controls Apache Solr as a Service.
Step 3: Change config files
Check out all the following files for the port:
- cd to /opt/solr-6.5.1/server/solr/
#the file path: /opt/solr-6.5.1/server/solr/solr.xml
yourusernmae:/opt/solr-6.5.1/server/solr$ sudo nano solr.xml
#change port here: ${jetty.port:8983}
- cd to /var/
# the file path: /var/solr/data/solr.xml
yourusernmae:/var$ sudo nano /solr/data/solr.xml
# change port here: ${jetty.port:8983}
- cd to /etc/default/
# the file path: /etc/default/solr.in.sh
yourusernmae:/etc/default$ sudo nano solr.in.sh
# change port here: SOLR_PORT=8983
Once you save and close the solr.in.sh file you can return to your terminal and type this command to reload the file
yourusernmae:/etc/default$ source solr.in.sh
Step 4: Start your solr service again using sudo service solr start, you will see your solr is now running on the new port your changed just now in the step 3 above.
yourusername@yourservername:/etc/default$ sudo service solr start
yourusername@yourservername:/etc/default$ sudo service solr status
● solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Sun 2017-05-07 16:11:32 EDT; 3s ago
Docs: man:systemd-sysv-generator(8)
Process: 16988 ExecStop=/etc/init.d/solr stop (code=exited, status=1/FAILURE)
Process: 17121 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
May 07 16:11:29 yourservername systemd[1]: Starting LSB: Controls Apache Solr as a Service...
May 07 16:11:29 yourservername su[17125]: Successful su for solr by root
May 07 16:11:29 yourservername su[17125]: + ??? root:solr
May 07 16:11:29 yourservername su[17125]: pam_unix(su:session): session opened for user solr by (uid=0)
May 07 16:11:32 yourservername solr[17121]: [98B blob data]
May 07 16:11:32 yourservername solr[17121]: Started Solr server on port 8985 (pid=17327). Happy searching!
May 07 16:11:32 yourservername solr[17121]: [14B blob data]
May 07 16:11:32 yourservername systemd[1]: Started LSB: Controls Apache Solr as a Service.
Now you can reference Step 5: Creating a Solr search collection in my another post to create a Solr search collection for this port.
References:
- Switching Solr from port 8983 (pdf) — if you are running Solr on Windows, this post might be useful for you.
- Changing the default port for solr-jetty on Ubuntu (pdf)