Difference between revisions of "Installation (CentOS)"
(Created page with "{{Incomplete}} This guide covers how to install Hercules on CentOS and other versions of Linux th...") |
Dastgirpojee (Talk | contribs) m (Reverted edits by Gmclerk (talk) to last revision by Dastgirpojee) |
||
(25 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]]. | This guide covers how to install [[Hercules]] on [[wikipedia:CentOS|CentOS]] and other [[wikipedia:List_of_Linux_distributions#RPM-based|versions of Linux]] that use [[wikipedia:Yellowdog_Updater,_Modified|yum]]. | ||
Line 13: | Line 11: | ||
=== Install Prerequisites === | === Install Prerequisites === | ||
# Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window. | # Login to your server via [[wikipedia:Secure_Shell|SSH]], or if you are already logged into a [[wikipedia:Graphical_user_interface|GUI]] press Ctrl+Alt+T to open a terminal window. | ||
− | # Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, | + | # Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files) |
− | #: <pre>yum install gcc make mysql mysql-devel mysql-server pcre-devel | + | #: <pre>yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel</pre> |
# (Optional) type the following command to install some additional packages: | # (Optional) type the following command to install some additional packages: | ||
#: <pre>yum -y install dos2unix gdb nano screen unzip wget zip</pre> | #: <pre>yum -y install dos2unix gdb nano screen unzip wget zip</pre> | ||
Line 34: | Line 32: | ||
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. | The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user. | ||
# Run this command and follow the prompts: | # Run this command and follow the prompts: | ||
+ | #: Firest Start MySQL: | ||
+ | #: <pre>/etc/init.d/mysqld start </pre> | ||
+ | #: Then configure MySQL by: | ||
#: <pre>mysql_secure_installation</pre> | #: <pre>mysql_secure_installation</pre> | ||
# Login to your MySQL Server as root: | # Login to your MySQL Server as root: | ||
Line 40: | Line 41: | ||
# Now your prompt should look like this (the MySQL command prompt): | # Now your prompt should look like this (the MySQL command prompt): | ||
#: <pre>mysql> </pre> | #: <pre>mysql> </pre> | ||
− | |||
− | |||
==== Create SQL database for Hercules ==== | ==== Create SQL database for Hercules ==== | ||
Line 66: | Line 65: | ||
# Login to your server via SSH as the hercules1234 Linux user. | # Login to your server via SSH as the hercules1234 Linux user. | ||
− | === | + | === Git Clone === |
− | {{: | + | {{:Git Clone/Unix}} |
=== [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables === | === [http://dev.mysql.com/doc/refman/5.5/en/batch-commands.html Import] MySQL Tables === | ||
# Change directory to the '''sql-files''' folder. | # Change directory to the '''sql-files''' folder. | ||
− | #: <pre>cd | + | #: <pre>cd sql-files/</pre> |
# Execute these commands: | # Execute these commands: | ||
#: ''When prompted, enter your MySQL root password.'' | #: ''When prompted, enter your MySQL root password.'' | ||
− | #: <pre>mysql - | + | #: <pre>mysql -u root -prootpassword hercuser_rodb < main.sql</pre> |
− | #: <pre>mysql -- | + | #: <pre>mysql -u root -prootpassword hercuser_rodblog < logs.sql</pre> |
− | #: <pre>mysql -- | + | # If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules) |
− | #: <pre>mysql -- | + | #: (pre-renewal) |
− | #: <pre>mysql -- | + | #: <pre>mysql -u root -prootpassword hercuser_rodb < item_db.sql</pre> |
− | #: <pre>mysql -u root - | + | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_db.sql</pre> |
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_skill_db.sql</pre> | ||
+ | #: (renewal) | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < item_db_re.sql</pre> | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_db_re.sql</pre> | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_skill_db_re.sql</pre> | ||
+ | #: (common to renewal and pre-renewal) | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < item_db2.sql</pre> | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_db2.sql</pre> | ||
+ | #: <pre>mysql -u root -prootpassword hercuser_rodb < mob_skill_db2.sql</pre> | ||
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use: | NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use: | ||
− | #login-server: | + | #login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog |
− | #map-server: | + | #map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data |
− | #char-server: everything else | + | #char-server: everything else |
− | Note that | + | Note that the sql_updates table is needed by all three servers. |
=== [[:Category:Configuration|Configure Hercules]]=== | === [[:Category:Configuration|Configure Hercules]]=== | ||
=== Compile Source Code === | === Compile Source Code === | ||
− | cd | + | cd Hercules |
./configure | ./configure | ||
make sql | make sql | ||
− | |||
− | |||
− | |||
===== How to Recompile ===== | ===== How to Recompile ===== | ||
In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: | In the future (after you update or edit any file in /src) to recompile, add ''make clean'' before make sql: | ||
− | cd | + | cd Hercules |
./configure | ./configure | ||
'''make clean''' | '''make clean''' |
Latest revision as of 18:53, 10 June 2016
This guide covers how to install Hercules on CentOS and other versions of Linux that use yum.
Contents |
Requirements
- CentOS or an RPM-based Linux that has the yum command
- root access or access to an account that has sudo privileges
- an Internet connection to download install packages
Prerequisites
All of these commands will be typed at the command-line interface.
Install Prerequisites
- Login to your server via SSH, or if you are already logged into a GUI press Ctrl+Alt+T to open a terminal window.
- Type the following command (this will install GCC, Make, MySQL, MySQL header files, MySQL Server, PCRE header files, Git, and Zlib header files)
-
yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel
-
- (Optional) type the following command to install some additional packages:
-
yum -y install dos2unix gdb nano screen unzip wget zip
-
Create a non-root Linux user
By the principle of least privilege, it is recommended you do NOT run Hercules as root.
- Type the following command to create a non-root Linux account:
-
useradd --create-home --shell /bin/bash hercules1234
-
--create-home
= create the user's home directory -
--shell
= sets their login shell to Bash -
hercules1234
= the login name of the new Linux account -
1234
= pick your own random numbers to make the username more unique
-
- Set a password for the new user (run this command and follow the prompts):
-
passwd hercules1234
-
Configure MySQL
Set a root password
The default MySQL Server install creates a MySQL user 'root'@'localhost' with NO password. It is recommended you create a password for the root user.
- Run this command and follow the prompts:
- Firest Start MySQL:
-
/etc/init.d/mysqld start
- Then configure MySQL by:
-
mysql_secure_installation
- Login to your MySQL Server as root:
- When prompted, enter your root MySQL password.
-
mysql --user=root -p
- Now your prompt should look like this (the MySQL command prompt):
-
mysql>
-
Create SQL database for Hercules
- At the MySQL prompt, type this to create a database (replace
hercules1234
with the Linux username you created earlier):-
mysql> CREATE DATABASE hercules1234_rag;
-
- Create a separate database for logs:
-
mysql> CREATE DATABASE hercules1234_log;
-
Setup a MySQL user for Hercules
- At the MySQL prompt, type something like this to create a new MySQL user:
-
mysql> CREATE USER 'hercules1234'@'localhost' IDENTIFIED BY 'secretpassword';
-
hercules1234
= the name of the MySQL user (we named it the same as the Linux user to make it easier to identify) -
localhost
= the hostname or IP it will connect from -
secretpassword
= the password for this MySQL user
-
- Grant privileges to the 'hercules' MySQL user:
-
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules1234\_rag`.* TO 'hercules1234'@'localhost';
-
mysql> GRANT SELECT,INSERT ON `hercules1234\_log`.* TO 'hercules1234'@'localhost';
(note the escaped underscore)
-
Install Hercules
Login as your non-root Linux user
The rest of the setup is done as hercules1234 (the Linux user you created in step 2.2)
- Logout from root SSH (or minimize the window).
- Login to your server via SSH as the hercules1234 Linux user.
Git Clone
Type the following to create a Hercules working copy in your home (~) directory
git clone https://github.com/HerculesWS/Hercules.git ~/Hercules
Import MySQL Tables
- Change directory to the sql-files folder.
-
cd sql-files/
-
- Execute these commands:
- When prompted, enter your MySQL root password.
-
mysql -u root -prootpassword hercuser_rodb < main.sql
-
mysql -u root -prootpassword hercuser_rodblog < logs.sql
- If your Control Panel software or website requires it, you may also import the item, monster and monster skill databases (not necessary for the correct operation of Hercules)
- (pre-renewal)
-
mysql -u root -prootpassword hercuser_rodb < item_db.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_db.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_skill_db.sql
- (renewal)
-
mysql -u root -prootpassword hercuser_rodb < item_db_re.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_db_re.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_skill_db_re.sql
- (common to renewal and pre-renewal)
-
mysql -u root -prootpassword hercuser_rodb < item_db2.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_db2.sql
-
mysql -u root -prootpassword hercuser_rodb < mob_skill_db2.sql
NOTE: if you want to use different SQL DBs for login/char/map servers this is the list of databases each server use:
- login-server: global_acc_reg_num_db, global_acc_reg_str_db, ipbanlist, login, loginlog
- map-server: autotrade_data, autotrade_merchants, mapreg, npc_market_data
- char-server: everything else
Note that the sql_updates table is needed by all three servers.
Configure Hercules
Compile Source Code
cd Hercules ./configure make sql
How to Recompile
In the future (after you update or edit any file in /src) to recompile, add make clean before make sql:
cd Hercules ./configure make clean make sql
Start your Hercules Server
//change access mode of athena-start file so that you can execute it. //Use (dos2unix athena-start) if yo uare getting ^M errors ie. newline errors chmod a+x athena-start
//To Start ./athena-start start //To Stop ./athena-start stop //To Restart ./athena-start restart