Bagaimana cara menambahkan direktori khusus, misalnya phpmyadmin?

11

Karena pengetahuan saya apacheminim. Saya ingin membiarkannya tumbuh sehingga saya memiliki lebih banyak pengalaman dengan LAMP. Pertanyaan panas saya untuk hari ini adalah:

Bagaimana cara menambahkan direktori kustom ke server web? (mis. phpmyadmin)?

Tujuan saya adalah dapat membuat alamat khusus dengan situs web khusus di dalamnya. Misalkan saya memiliki direktori khusus saya di: /media/my/web/portal1dan saya ingin memuatnya ketika klien memanggil

http://localhost/myportal1 at webbrowser. 

Bisakah Anda memberi saya daftar langkah dengan beberapa kata penjelasan?

Adrian K.
sumber

Jawaban:

26

Edit file konfigurasi Apache Anda dan tambahkan Alias Directive. Sebagai contoh, mari kita gunakan file default .

sudo -e /etc/apache2/sites-available/default

Buat alias Anda dengan menambahkan bagian dalam direktif VirtualHost :

Alias /database/ "/usr/share/php5/phpmyadmin/"
<Directory "/usr/share/php5/phpmyadmin/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Simpan dan mulai ulang: sudo /etc/init.d/apache2 restart

Atau untuk referensi lain:

sudo -e /etc/apache2/sites-available/default

Dan isinya ...

Alias /myportal1/ "/media/my/web/portal1/"
<Directory "/media/my/web/portal1/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Simpan dan mulai ulang: sudo /etc/init.d/apache2 restart

Tambahkan lebih banyak arahan dalam arahan Direktori , seperti

Options Indexes FollowSymLinks 

Lihat http://httpd.apache.org/docs/2.2/mod/core.html#directory

Itu yang kau cari?

Richard
sumber
Saya pikir cukup untuk memuat ulang apache setelah melakukan perubahan itu?
Jo-Erlend Schinstad
oh - ya ... terima kasih Jo-Erland Schinstad
Cristopher terima kasih! Itulah yang saya cari! :)
Adrian K.
Saya menambahkan baris ini di bagian <Direktori> untuk mencegah kesalahan Terlarang, mudah-mudahan hasil edit akan segera diterima: Wajibkan semua diberikan
Richard
3
Tidak perlu menambahkan garis miring pada nama alias. Ini memaksa pengguna untuk secara ketat mengetiknya ke URL. Dalam hal demikian, Alias ​​/ myportal1 selain Alias ​​/ myportal1 /. Catatan tidak ada akhir garis miring.
Gilberto Albino
6

Alternatif yang lebih sederhana adalah membuat tautan lunak dari root dokumen. Sebagai contoh, jika root dokumen adalah "/ var / www" (default pada sebagian besar sistem Linux), maka perintah berikut melakukan trik:

sudo ln -s /media/my/web/portal1 /var/www/myportal1

Ini berfungsi segera - Anda bahkan tidak perlu memuat ulang server Apache.

Erel Segal-Halevi
sumber
1

Apache adalah pengguna di sistem Anda, sama seperti Anda, kecuali ia tidak bisa masuk. Itu berarti akses file persis sama untuk Apache seperti untuk Anda. Jadi, pertama, jika Apache harus melayani direktori di / media / sesuatu, maka Apache harus memiliki akses untuk membacanya dan file-file-nya.

Kedua, untuk mengatur situs yang menggunakan direktori ini sebagai rumahnya, Anda membuat situs-file, seperti / etc / apache2 / sites-available / your-site. Ini adalah bagian dari apa yang disebut vhosting. Ada dua jenis; satu berdasarkan nama (nama domain) dan satu berdasarkan IP. Setup yang paling umum adalah menggunakan vhosts berbasis nama. Anda dapat membaca lebih lanjut tentang itu di sini: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
sumber
Terima kasih untuk referensi. Saya pasti akan menggali ini! :)
Adrian K.
0

Sangat Sederhana dalam dua baris:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Setelah

cukup edit file "phpmyadmin.conf"

pico /etc/apache2/conf.d/phpmyadmin.conf

dan ubah ke 'loool' atau apalah :)

Alias /loooool /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>

SetEnvIfNoCase User-Agent "^ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase user-agent "^BlackWidow" bad_bot 
SetEnvIfNoCase User-Agent "^BotALot" bad_bot

setelah semua ini memuat kembali apache: D

service apache2 reload

tadaaa: D ciao :)

ucefkh
sumber