كيفية تثبيت Apache Tomcat في Ubuntu

إذا كنت ترغب في تشغيل صفحات الويب التي تتضمن ترميز صفحة خادم Java أو Java servlets، يمكنك استخدام Apache Tomcat. إنه خادم ويب مفتوح المصدر وحاوي servlet، تم إصداره من قبل مؤسسة Apache Software.

Tomcat يمكن استخدامه كمنتج مستقل، مع خادم الويب الخاص به أو يمكن دمجه مع خوادم ويب أخرى مثل Apache أو IIS. أحدث إصدار من Tomcat هو 9.0.14 ويعتمد على Tomcat 8 و 8.5 وينفذ Servlet 4.0، JSP 2.2.

اقرأ أيضًا: كيفية تثبيت Apache Tomcat 9 في CentOS/RHEL

تم إجراء التحسينات التالية في الإصدار الجديد:

  • تمت إضافة دعم لـ HTTP/2.
  • تمت إضافة دعم لاستخدام OpenSSL لدعم TLS مع موصلات JSSE.
  • تمت إضافة دعم لمضيفين افتراضيين TLS (SNI).

في هذا البرنامج التعليمي سنريك كيفية تثبيت Apache Tomcat 9 في Ubuntu 18.10 والإصدارات القديمة من Ubuntu.

الخطوة 1: تثبيت Java

لتشغيل تطبيقات الويب Java، يتطلب Tomcat تثبيت Java على الخادم. لتلبية هذا المتطلب، سنقوم بتثبيت OpenJDK كما هو موضح.

$ sudo apt update
$ sudo apt install default-jdk

الخطوة 2: إنشاء مستخدم Tomcat

لأسباب أمنية، يجب تشغيل Tomcat باستخدام مستخدم غير مميز، أي غير مستخدم الجذر. لهذا السبب، سنقوم بإنشاء مستخدم ومجموعة بإسم tomcat التي ستقوم بتشغيل الخدمة. نبدأ بإنشاء مجموعة tomcat:

$ sudo groupadd tomcat

ثم سنقوم بإنشاء مستخدم tomcat، الذي سيكون عضوًا في مجموعة tomcat. سيتم تعيين موقع المستخدم هذا إلى /opt/tomcat حيث سنقوم بتثبيت Tomcat. سيتم تعيين القشرة إلى /bin/false:

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

الآن نحن جاهزون للمتابعة إلى الخطوة التالية وتنزيل Tomcat.

الخطوة 3: تثبيت Apache Tomcat

لتنزيل أحدث حزمة متاحة، انتقل إلى صفحة تنزيل Tomcat واحصل على أحدث إصدار.

في وقت كتابة هذا البرنامج التعليمي، أحدث إصدار من Tomcat هو 9.0.14. لتنزيل تلك النسخة، قم بتغيير الدليل الحالي إلى دليل آخر. على سبيل المثال، يمكنك استخدام /tmp:

# cd /tmp

ثم استخدام أمر wget لتنزيل أرشيف Tomcat:

$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
$ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

إذا كنت ترغب في التحقق من مجموع التحقق sha512 للملف، يمكنك تشغيل:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

يجب أن تكون القيمة الناتجة (التجزئة) لكلا الملفين متطابقة.

كما ذكر سابقًا، سنقوم بتثبيت Tomcat في /opt/tomcat. سنحتاج إلى إنشاء تلك الدليل:

$ sudo mkdir /opt/tomcat

والآن يمكننا استخراج الحزمة المُنزّلة في ذلك الدليل الجديد:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

الآن انتقل إلى /opt/tomcat من حيث سنقوم بتحديث ملكية المجلد وأذوناته:

# cd /opt/tomcat

واجعل مالك المجموعة لـ /opt/tomcat هو tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

سنقوم بمتابعة تحديث صلاحية القراءة لمجموعة tomcat على دليل conf وتعيين أذونات التنفيذ للدليل:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

ثم سنجعل مستخدم tomcat هو مالك للمجلدات webapps, work, temp و logs:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

الآن تم تعيين الأذونات والملكيات الصحيحة ونحن جاهزون لإنشاء ملف بدء systemd، الذي سيساعدنا في إدارة عملية Tomcat.

الخطوة 4: إنشاء ملف خدمة SystemD لـ Tomcat

لأننا نريد تشغيل Tomcat كخدمة، سنحتاج إلى ملف سيساعدنا في إدارة العملية بسهولة. لهذا الغرض سنقوم بإنشاء ملف خدمة systemd. يجب على Tomcat معرفة موقع Java على نظامك.

للعثور على تلك الموقع استخدم الأمر التالي:

$ sudo update-java-alternatives -l

سيظهر لك مخرجات هذا الأمر موقع JAVA_HOME.

Find Java Home

الآن، باستخدام تلك المعلومات نحن جاهزون لإنشاء ملف خدمة Tomcat الخاص بنا.

$ sudo vim  /etc/systemd/system/tomcat.service

الصق الكود التالي في الملف:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

تأكد من ضبط JAVA_HOME بما يتناسب مع نظامك. عندما تكون جاهزًا، احفظ الملف وأغلقه. الآن، باستخدام الأمر أدناه، أعد تحميل ديمون systemd حتى يتمكن من العثور على ملف الخدمة الجديد:

$ sudo systemctl daemon-reload

ثم قم ببدء خدمة Tomcat:

$ sudo systemctl start tomcat

يمكنك التحقق من حالة الخدمة باستخدام:

$ sudo systemctl status tomcat
Verify Apache Tomcat Status

يمكنك الآن اختبار Tomcat في متصفحك عن طريق استخدام عنوان IP الخاص بنظامك تليها البورت الافتراضي للخدمة 8080.

http://ip-address:8080

النتيجة التي يجب أن تراها مشابهة لتلك الموضحة في الصورة أدناه:

Apache Tomcat Web Page

في حال عدم رؤية الناتج السابق، قد تحتاج إلى السماح بفتح البورت 8080 في جدار الحماية كما هو موضح.

$ sudo ufw allow 8080

إذا كنت ترغب في بدء Tomcat عند تشغيل النظام، قم بتشغيل:

$ systemctl enable tomcat

الخطوة 5: تكوين Apache Tomcat

Tomcat يحتوي على تطبيق إدارة ويب مثبت مسبقًا. لاستخدامه، سنحتاج إلى إعداد المصادقة داخل ملف tomcat-users.xml الخاص بنا. افتح وعدل هذا الملف باستخدام محرر النص المفضل لديك:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

سنقوم بإضافة مستخدم يمكنه الوصول إلى واجهات المدير و المشرف. لتكوين هذا المستخدم، بين علامات <tomcat-users> </tomcat-users>، أضف السطر التالي:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

تأكد من تغيير:

  • اسم المستخدم – بالمستخدم الذي ترغب في مصادقته.
  • كلمة المرور – بكلمة المرور التي ترغب في استخدامها للمصادقة.
Configure Apache Tomcat

نظرًا لأن الوصول الافتراضي إلى مدير المضيف و المدير مقيد، سنرغب في إما إزالة هذه القيود أو تعديلها. لإجراء تلك التغييرات، يمكنك تحميل الملفات التالية:

لتطبيق المدير:

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

لتطبيق مدير المضيف:

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

داخل تلك الملفات يمكنك إما تعليق قيد العنوان أو السماح بعنوان IP العام الخاص بك هناك. لأغراض هذا البرنامج التعليمي، لقد قمت بتعليق السطر:

Allow Apache Tomcat Access

لجعل التغييرات الخاصة بنا مباشرة، أعد تحميل خدمة تومكات باستخدام:

$ sudo systemctl restart tomcat 


يمكنك الآن اختبار تطبيق المدير
عن طريق الوصول إلى http://ipaddress:8080/manager/. عندما يُطلب منك اسم المستخدم وكلمة المرور، استخدم تلك التي قمت بتكوينها سابقًا. الواجهة التي يجب أن تراها بعد ذلك تبدو مثل هذا:

Access Apache Tomcat Manager

للوصول إلى مدير المضيف، يمكنك استخدام http://ip-address:8080/host-manager/.

Access Apache Tomcat Virtual Host Manager

باستخدام مدير المضيف الافتراضي، يمكنك إنشاء مضيفين افتراضيين لتطبيقات Tomcat الخاصة بك.

الخطوة 6: اختبار Apache Tomcat عن طريق إنشاء ملف اختباري

يمكنك التحقق مما إذا كان كل شيء يعمل بسلاسة، عن طريق إنشاء ملف اختباري داخل /opt/tomcat/webapps/ROOT/ الدليل.

لنقم بإنشاء مثل هذا الملف:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

داخل ذلك الملف، الصق الكود التالي:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

احفظ الملف وقم بتعيين الملكية كما هو موضح.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

الآن قم بتحميل ذلك الملف في متصفحك باستخدام http://ip-address:8080/tecmint.jsp.

Test Apache Tomcat

هذا كل شيء! لقد أكملت إعداد خادم Apache Tomcat الخاص بك وقمت بتشغيل أول كود جافا لديك. نأمل أن يكون العملية سهلة ومباشرة بالنسبة لك. إذا واجهت أي مشاكل، فلا تتردد في مشاركة مشاكلك من خلال نموذج التعليق أدناه.

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/