macOS Monterey öncesinde dağıtımla gelen PHP Kullanımı
PHP, Mac OS X'in 10.0.0 sürümünden Monterey (12.0.0) sürümüne kadar macOS
ile birlikte gelmektedir.
PHP'yi öntanımlı HTTP sunucusunda etkin kılmak için Apache yapılandırma
dosyası httpd.conf'ta bir kaç satırı etkin duruma
getirmek gerekir, bunun yanında CGI ve/veya
CLI öntanımlı olarak etkin (Terminal programından
kolayca erişilebilir) kılınabilir.
Aşağıdaki talimatları kullanarak PHP'yi etkin kılmak demek çabucak bir
yerel geliştirme ortamına sahip olmak demektir. Daima PHP'nin en yeni
sürümünü kullanmanızı hararetle öneririz. Gelişimi
sürmekte olan çoğu yazılım gibi yeni sürümlerde eski hatalar sürekli
düzeltilmekte ve yeni özellikler eklenmektedir. Ayrıntılar için macOS
kurulum belgelerine bakınız. Aşağıdaki talimatların ayrıntı düzeyi
başlangıç düzeyinde bir kullanıcıya göre olup öntanımlı ayarlarla çalışmak
üzere düzenlenmiştir. Daha yeni sürümlerin derlenmesi veya daha yeni
paketlerin kurulması tüm kullanıcılara tavsiye edilmektedir.
Standard kurulum türü mod_php kullanmak olup macOS üzerinde Apache HTTP
Sunucusu için mod_php'yi etkin kılmak (öntanımlı HTTP sunucusuna Sistem
Tercihlerinden erişilebilir) amacıyla şu adımlar izlenmelidir:
-
Apache yapılandırma dosyasını bulup açın. Öntanımlı olarak yeri:
/etc/apache2/httpd.conf
Bu dosyanın sahibi
root
olduğundan ve öntanımlı
olarak onun özelinde olduğundan Finder
veya
Spotlight
kullanarak dosyayı bulmak zor olabilir.
Bilginize:
Dosyayı açmanın tek yolu Terminal'de nano
gibi Unix
temelli bir metin düzenleyici kullanmaktır. Dosyanın sahibi
root
olduğundan dosyayı (root
olarak) açmak için Terminal
'de sudo
komutunu kullanmalıyız (root
parolası istenecektir):
sudo nano /etc/apache2/httpd.conf
Önemli nano komutları: ^w
(arama),
^o
(kayıt), and ^x
(çıkış).
Burada ^
imi, Ctrl tuşu anlamındadır.
Bilginize:
Mac OS X'in 10.5'ten önceki sürümleri PHP ve Apache'nin eski sürümleriyle
gelir. Böyle makinelerde Apache yapılandırma dosyası
/etc/httpd/httpd.conf olabilir.
-
Bir metin düzenleyici ile aşağıdaki satırların başlarındaki # imlerini
kaldırın (bu iki satır genelde birarada değildir, onları arayıp
bulmalısınız):
# LoadModule php5_module libexec/httpd/libphp5.so
# AddModule mod_php5.c
Konuma/yola dikkat. PHP'yi gelecekte tekrar derlerseniz yukarıdaki
dosyaların yerine yenilerini koymayı unutmayın. Yoksa bu satırları
tekrar açıklama haline getirmelisiniz.
-
PHP olarak yorumlanacak uzantıları belirleyiniz (örnekler:
.php,
.html
ve .inc).
(Mac Panther'den itibaren) httpd.conf dosyasında
bulunan aşağıdaki deyimden dolayı PHP etkin kılındığı anda
.php uzantılı dosyalar otomatik
olarak PHP tarafından yorumlanır.
<IfModule mod_php5.c>
# php etkinse, .php ve .phps dosyalarını yorumlasın isteriz.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# Çoğu kullanıcı index.php'yi ister
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
Bilginize:
Mac OS X 10.5 (Leopard) öncesinde, PHP 5 yerine PHP 4 kullanılırdı;
dolayısıyla yukarıdaki 5'leri 4'lere çevirmeniz gerekir.
-
DirectoryIndex yönergesinde belirtilen öntanımlı dizin içerik dosyasının
yüklendiğinden emin olun.
Bu ayrıca httpd.conf içinde de atanır. Bu amaçla
genellikle index.php ve
index.html kullanılır. PHP'nin varlığını sınayan
yukarıdakı satırlardan dolayı öntanımlı olarak
index.php etkindir. Gerekirse bu ayarı kendinize
göre değiştirin.
-
Ya php.ini dosyasının yerini ayarlayın ya da öntanımlıyı kullanın
Mac OS X üzerindeki öntanımlı yeri genellikle
/usr/local/php/php.ini olup
bir phpinfo() işlev çağrısı da yerini gösterecektir.
Eğer bir php.ini kullanılmamışsa, PHP öntanımlı değerleri
kullanacaktır. php.ini'yi
bulmak için SSS'ye bakabilirsiniz.
-
DocumentRoot
'u belirleyip ayarlayın.
Bu, HTTP sunucusunun belge kök dizinidir. Bu dizindeki dosyalar HTTP
sunucusu tarafından sunulur. Dolayısıyla PHP dosyaları da tarayıcıya
gönderilmeden önce PHP tarafından yorumlanır. Genelde öntanımlı belge
kök dizini /Library/WebServer/Documents olup
httpd.conf dosyasında belirtilmesi gerekir. Ayrıca,
her kullanıcının kendi öntanımlı belge kök dizini vardır:
/Users/kullanıcı/Sites
-
Bir phpinfo() dosyası oluşturun
phpinfo() işlevi PHP ile ilgili bilgileri gösterir.
Aşağıdaki içeriğe sahip bir dosyayı belge kök dizininde oluşturun:
-
Apache'yi yeniden başlatın ve yukarıdaki PHP dosyasını yükleyin
Apache'yi başlatmak için ya kabukta sudo apachectl
graceful
komutunu verin ya da macOS Sistem Tercihlerinden
"Kişisel HTTP Sunucusu" seçeneğini durdurup başlatın. Öntanımlı olarak,
yerel dosyaları tarayıcıya yüklemek için şöyle bir URL kullanılır:
http://localhost/info.php. Kullanıcı dizinizdeki
belge kök dizinini kullanarak bunu şöyle yapabilirsiniz:
http://localhost/~kullanıcı/info.php
CLI (veya eski sürümlerde CGI)
çalıştırılabilirinin ismi php olup genellikle
bulunduğu yer /usr/bin/php'dir. PHP kılavuzunun komut satırı bölümünü okuyun ve
Terminal'i açıp PHP çalıştırılabilirinin sürümünü öğrenmek için
php -v
komutunu çalıştırın. phpinfo()
işlevine yapılacak bir çağrı da bu bilgiyi gösterecektir.
Anonymous ¶16 years ago
You only have to uncomment:#LoadModule php5_module libexec/apache2/libphp5.soThis is gone:# AddModule mod_php5.cThe statement in 3 was changed to:<IfModule mime_module> # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig /private/etc/apache2/mime.types # # AddType allows you to add to or override the MIME configuration # file specified in TypesConfig for specific file types. # #AddType application/x-gzip .tgz # # AddEncoding allows you to have certain browsers uncompress # information on the fly. Note: Not all browsers support this. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi # For type maps (negotiated resources): #AddHandler type-map var # # Filters allow you to process content before it is sent to the client. # # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml</IfModule>Extra MIME types can either be added to the file /private/etc/apache2/mime.types or by using an AddType directive as commented on above.
10086 at xiaoi dot me ¶6 years ago
setup apache + php environment on macOS 10.12.6step 1: start httpd by apachectl > sudo apachectl startstep 2: find httpd.conf > sudo apachectl -t -D DUMP_INCLUDESstep 3: edit conf, eg: /opt/local/etc/apache2/httpd.conf > sudo vim /opt/local/etc/apache2/httpd.confstep 4: Load php module before <IfModule unixd_module>, eg:```LoadModule php5_module /usr/libexec/apache2/libphp5.so<IfModule unixd_module>```step 5: add mod_php5.c end of httpd.conf```<IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule></IfModule>```step 6: save and quitstep 7: restart httpd > sudo apachectl restartstep 8: write demo.php , test configuration```<?php phpinfo();?>```step 9: copy demo.php to "DocumentRoot", you can find by httpd.confstep 10: visit demo.phpall done.