GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan mengkonfigurasi server web Apache di Ubuntu 13.10

Instal server Web Apache

Beberapa waktu yang lalu saya memperbarui ubuntu saya ke 13.10 dan kemudian instalasi Apache php menjadi kacau. Jadi saya harus menginstal ulang dengan cepat untuk melanjutkan mengerjakan proyek php saya.

Apache ada di repositori ubuntu sehingga dapat diinstal tanpa banyak usaha. Berikut adalah perintah cepat yang perlu Anda jalankan di terminal.

$ sudo apt-get install apache2

Apache secara default mengonfigurasi dirinya sendiri dengan cepat sehingga Anda dapat membukanya dari browser dengan url localhost

http://localhost/

Mulai/Hentikan Apache

Untuk memulai atau menghentikan server web apache dari baris perintah, gunakan perintah berikut.

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

Direktori root web default adalah /var/www. Jadi file apa pun yang diletakkan di direktori ini dapat diakses dari url localhost. Nanti kita akan memeriksa bagaimana mengubah direktori root web default

Untuk memeriksa versi apache yang diinstal gunakan perintah apache2 dengan opsi v/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

Menemukan file konfigurasi

Untuk mendapatkan informasi lebih lanjut tentang bagaimana tepatnya apache dikonfigurasi pada sistem Anda, gunakan perintah apache2ctl.

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
.....

Ini memberi tahu nama file konfigurasi, server mpm yang digunakan dan banyak detail lainnya. Ini berguna saat mengonfigurasi Apache lebih lanjut.

File konfigurasi utama terletak di /etc/apache2/apache2.conf
Cukup tambahkan HTTPD_ROOT dengan SERVER_CONFIG_FILE untuk mendapatkan lokasi sebenarnya dari file konfigurasi.

Atau ada opsi lain S yang juga melaporkan berbagai detail konfigurasi tentang apache

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

Semua informasi itu cukup berguna saat mengatur apache. Menghemat waktu yang seharusnya dihabiskan untuk menebak.

Ada banyak file konfigurasi yang terlibat dengan Apache. File konfigurasi utama adalah "apache2.conf" seperti yang disebutkan di atas. File konfigurasi ini memiliki instruksi untuk memuat file konfigurasi lebih lanjut. Inilah baris yang melakukannya.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Perbaiki pesan kesalahan

Apache secara default memberikan pesan kesalahan berikut

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Untuk memperbaikinya, setel variabel ServerName ke nama host Anda atau nama domain yang sepenuhnya memenuhi syarat di file konfigurasi apache

$ sudo nano /etc/apache2/apache2.conf

Tambahkan baris berikut sampai akhir

ServerName yourhostname

Muat ulang konfigurasi Apache

$ sudo service apache2 reload

Ubah direktori root web

Untuk mengubah direktori root web, kita perlu mengubah pengaturan di file konfigurasi "sites-enabled". Sebagai praktik standar, file konfigurasi terpisah dibuat di dalam direktori yang mendukung situs untuk setiap host virtual.

Host virtual adalah domain. Jadi Anda dapat memiliki beberapa domain yang dilayani oleh apache. Namun dalam contoh ini kami hanya menggunakan file konfigurasi default.

Seharusnya ada file bernama 000-default.conf di dalam direktori /etc/Apache2/sites-enabled. Jika tidak ada, salin dari /etc/Apache2/sites-available. Filenya terlihat seperti ini pada awalnya.

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

Ubah jalur DocumentRoot ke root web baru yang ingin Anda gunakan. Simpan file dan mulai ulang apache.

$ sudo service apache2 restart

Sekarang coba akses localhost. Jika tidak berhasil, maka periksa log kesalahan yang terletak di

$ cat /var/log/apache2/error.log

Pada Apache 2.4.3 terdapat fitur keamanan yang mencegah Apache mengakses direktori lain. Dan kemudian url localhost akan menampilkan pesan kesalahan "Terlarang" dan log kesalahan akan berisi pesan seperti ini

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php

Kesalahan berarti Apache tidak dapat mengakses direktori root web karena beberapa konfigurasi. Untuk memperbaikinya, tambahkan berikut ini ke konfigurasi vhost

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

File 000-default.conf terakhir akan terlihat seperti ini

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

Sekarang restart Apache lagi dan direktori root web baru akhirnya akan berfungsi.

Menambahkan lebih banyak vhost atau domain

Untuk menambahkan lebih banyak host virtual, buat lebih banyak file konfigurasi seperti 000-default.conf dan beri nama apa pun kecuali dengan ekstensi conf. Tetapkan ServerName unik di setiap file dan berikan setiap host direktori root web terpisah.

Atau buat file konfigurasi di direktori sites-available dan gunakan perintah a2ensite untuk mengaktifkan situs. Ini akan membuat symlink yang diperlukan di direktori "sites-enabled".

Jadi pertama buat file konfigurasi dengan menyalin file konfigurasi default.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

Edit file konfigurasi sesuai kebutuhan. Yang penting diubah adalah document root untuk situs baru.
Kemudian aktifkan menggunakan perintah a2ensite

$ sudo a2ensite mysite

Mulai ulang apache. Dan situs baru akan berfungsi dengan baik.

Aktifkan file htaccess

File htaccess memungkinkan untuk memodifikasi berbagai parameter konfigurasi Apache pada basis per direktori saat runtime. Secara default Apache tidak dikonfigurasi untuk menggunakan file htaccess. Untuk membuatnya, cukup tambahkan baris berikut di bagian Direktori yang ditunjukkan di atas.

AllowOverride FileInfo

Di atas akan memberi tahu apache untuk mulai membaca file htaccess dan mengurai instruksi konfigurasi yang tertulis di dalamnya.

Konfigurasi akhir dapat terlihat seperti ini -

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Setelah menginstal apache, Anda mungkin ingin menginstal hal-hal lain seperti php, mysql, phpmyadmin tergantung pada apa yang Anda butuhkan. Jadi silakan dan nikmati!!


Ubuntu
  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  3. Cara Menginstal Dan Mengkonfigurasi Server Redis Di Ubuntu

  1. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 18.04

  1. Cara Menginstal dan Mengkonfigurasi Nginx di Ubuntu 18.04 / Debian 9

  2. Cara Menginstal dan Mengkonfigurasi Apache Hadoop di Ubuntu 20.04

  3. Cara Menginstal dan Mengkonfigurasi DHCP di Ubuntu 18.04