alaca33 php bir binary dosya, çalıştırılabilir bir uygulama. Binary dosyaları çalıştırmak için bulunduğu dizine girer adını yazarsınız. Burada relative path kullanmış oluyoruz, yani bulunduğumuz konumdan hareket ediyoruz. Komutu bulunduğunuz dizinde bulmaya çalışır. Diğer bir yol da absolute path kullanmak, yani /opt/plesk/php/8.1/bin/php şeklinde binary dosyanın tam yolu vermek. Bu şekilde yapınca herhangi bir klasörden uygulamayı çalıştırabilirsiniz.
Her seferinde absolute path çağırmamak için ise genelde 2 yol kullanılır:
- symlink vermek
- terminal için alias oluşturmak
Symlink oluşturmak için
# ln -s {/orijinal/dosya} {dosya} şeklinde
ln -s /opt/plesk/php/8.1/bin/php /usr/local/bin/php
Bu, /usr/local/bin/ içine php isimli bir symlink oluşturur. Bunu yaptıkta sonra php -v yaparsanız php versiyonunu görürsünüz ve çalıştığını anlarsınız. Unix benzeri işletim sistemlerinde /usr/local/bin/ klasörünün amacı budur; kullanıcıların çalıştırılabilir binary dosyalarını tutmak. Buraya atılan binary için absolute path vermeye gerek yoktur ama genelde binary yerinde kalır, buraya symlink atılır.
Alias oluşturmak için:
Kendi bilgisayarınızda
echo "alias php='/path/to/php'" >> ~/.bashrc
source ~/.bashrc
ya da oh-my-zsh kullanıyorsanız: https://ohmyz.sh/
echo "alias php='/path/to/php'" >> ~/.zshrc
source ~/.zshrc
Sunucuda ise
echo "alias php='/opt/plesk/php/8.1/bin/php'" >> ~/.bash_profile
source ~/.bash_profile
şeklinde yapabilirsiniz. Alias ile symlink arasındaki fark; alias sadece terminal ile kullanılır, orada işe yarar. Bir program kendi içinde php çağırırsa symlink yoksa o da komut bulunamadı hatası verecektir.
Windows'da ise biraz daha farklı yapılıyor. İstiyorsanız araştırabilirsiniz. Ömrümde bir kere bile yapmadığım için bilmiyorum açıkçası. Sistem geneli için ortam değişkeni olarak ekleniyordu ama terminalde nasıl bilmiyorum.