Apache üzerinde PHP için SVG ve MathML iş yapma

2 Cevap php

Ben Apache sunucusunu yapılandırmak için nasıl biraz kafam karıştı. Ben Apache 2.2.11 kullanıyorum

İyi bir örnek olarak bu 2 sayfaları atın:

HTML XHTML

Onlar bir ve aynı sözdizimi hem konum, ancak uzantısı farklı. İlk dosya uzantısı olarak HTML vardır, ikinci bir uzantısı olarak XHTML vardır.

Arka planda sunucu aşağıdaki belirledi:

AddType application/xhtml+xml .xhtml

Bunu yaparak, MathML ve SVG doğru görüntülenir.

Şimdi, en web siteleri yine PHP ile çalışır. Ben Apache bu kurdum:

AddType application/x-httpd-php .php

Standart sözdizimi ve tüm.

Ben PHP sayfaları çok MathML ve SVG görüntülemek isterseniz ama, ben bunu yapmak gerekir düşünüyorum:

AddType application/xhtml+xml .php
AddType application/x-httpd-php .php

Ama bu PHP artık ayrıştırır, çalışmıyor.

Yani, nasıl PHP normal gibi hala ve ben birlikte MathML ve SVG gibi şeyler kullanabilirsiniz aynı anda çalışır emin olabilirim?

2 Cevap

HTML başka bir şey çıktısı bir PHP komut dosyası varsa, sadece komut dosyası içinde içerik türü HTTP başlığı ayarlamak gerekir.

XML çıktılar bir komut dosyası adı xml.php varsa, örneğin, bu gibi bir satır içermelidir:

<?php header('Content-type: application/xhtml+xml'); ?>

Hiçbir apache yapılandırma gereklidir.

AddType direktifi controls how .php files get handled on the server. Dosya application / x-httpd-php tipi nedeniyle işlemek için yapılandırılmış program veya modülüne iletilir bir Action or AddHandler yönergesi bu gibi karşılık:

Action application/x-httpd-php "/php/php-cgi.exe"

(Eğer işlenmemiş PHP kaynak dosyasının kendisini, hizmet konum sürece Yani,. Ben olsa, bunu yapmak istiyorum şüpheliyim.)

Yapılandırma daha önce olduğu şekilde tutun. Kullanarak header function to set a different Content-Type header for your script's output, as Frank's answer gösterir.