Portlar
Varsayılan portlar
| Servis | Varsayılan | Çakışmada önerilen |
|---|---|---|
| Nginx HTTP | 80 | 8080 |
| Nginx HTTPS | 443 | 8443 (bu sürümde arayüzden değiştirilemez) |
| MariaDB | 3306 | 3307 |
| PHP FastCGI havuzları | 9800–9999 aralığı | Otomatik seçilir |
Tüm servisler yalnızca 127.0.0.1 adresini dinler. Yerel ağdaki başka bir cihazdan erişilemez.
Nginx 80 dışında bir portta çalışıyorsa proje adreslerine port eklenir, ör. http://magaza.test:8080/. HTTPS portu 443 dışında olsaydı aynı kural geçerli olurdu (https://magaza.test:8443/); ancak 0.2.0 sürümünde HTTPS portu Ayarlar ekranında yer almaz ve 443 olarak kalır.
Kullanılan portlar her an pencerenin altındaki durum çubuğunda (Nginx :80, MariaDB :3306), kenar çubuğunun Servisler bölümünde ve http://localhost/ karşılama sayfasında görünür.
PHP FastCGI havuzları
Her PHP minör sürümü için 4 süreçlik ayrı bir php-cgi havuzu çalışır. Windows'ta her süreç aynı anda bir istek işlediğinden havuz, eşzamanlı istekleri dağıtır. Havuz portları sürümden türetilir:
taban port = 9000 + ana sürüm × 100 + minör sürüm × 10
havuz = taban … taban + 3| PHP | Havuz portları |
|---|---|
| 8.0 | 9800–9803 |
| 8.3 | 9830–9833 |
| 8.4 | 9840–9843 |
| 8.5 | 9850–9853 |
Bu portlardan biri başka bir program tarafından kullanılıyorsa Coduva 9800–9999 aralığında 10'ar adımla boş bir dört portluk blok arar, bulduğunu kaydeder ve sonraki başlatmalarda onu kullanır. Bu olay Son olaylar kaydına "PHP havuzu başka portlara taşındı" olarak düşer.
Nginx her PHP sürümü için bir upstream tanımlar (coduva_php_84 gibi); her projenin sanal sunucusu kendi PHP sürümünün havuzuna bağlanır. Bu yüzden farklı PHP sürümlerini kullanan projeler aynı anda çalışır.
Bekçi, Nginx çalışırken havuzlardaki süreçleri üç saniyede bir denetler; çöken süreci yeniden başlatır ve Son olaylar kaydına "Çöken PHP süreci yeniden başlatıldı" yazar.
Port sahibini bulma
Bir servis başlatılamadığında Coduva portu dinleyen süreci Windows'un soket tablosundan okur ve sınıflandırır:
| Sahip | Nasıl tanınır | Gösterilen açıklama |
|---|---|---|
| Coduva | Süreç C:\Coduva altından çalışıyor | Coduva bileşeni bu portu dinliyor |
| Windows HTTP sunucusu | PID 4 ("System") | IIS veya "World Wide Web Yayımlama Hizmeti" açık olabilir |
| WampServer | Süreç \wamp64\bin\ veya \wamp\bin\ altından çalışıyor | WampServer'ı kapatın veya başka port seçin |
| XAMPP | Süreç \xampp\ altından çalışıyor (htdocs hariç) | XAMPP'ı kapatın veya başka port seçin |
| Laragon | Süreç \laragon\bin\ altından çalışıyor | Laragon'u kapatın veya başka port seçin |
| Diğer | Yukarıdakilerin hiçbiri | Programın adı ve PID'i |
Bu sınıflandırma servis kartında Port dolu durumuyla birlikte gösterilir. Örnek:
Port 80, Windows HTTP sunucusu (http.sys) tarafından kullanılıyor.
IIS veya "World Wide Web Yayımlama Hizmeti" açık olabilir.HTTPS portu (443) ayrıca denetlenir. Doluysa ve HTTPS kullanan bir proje varsa Hata teşhisi bunu hata, yoksa bilgi olarak bildirir. HTTPS kullanan bir proje varken 443 başka bir program tarafından tutuluyorsa Nginx başlatılmaz. HTTPS portu arayüzden değiştirilemediği için 443'ü tutan programı (çoğunlukla IIS veya başka bir yerel sunucu) kapatmak ya da projelerde HTTPS'i kapatmak gerekir.
Engelli portlar
Portu dinleyen bir program yokken bile bağlanılamıyorsa servis Port engelli olarak gösterilir. Bunun en yaygın nedeni Hyper-V, WSL veya Docker'ın Windows'ta ayırdığı dışlanan port aralıklarıdır. Ayrılmış aralıkları görmek için:
netsh int ipv4 show excludedportrange protocol=tcpPortunuz listedeki bir aralığa düşüyorsa Coduva için aralık dışında bir port seçin.
Port değiştirme
Ayarlar → Ağ bölümünde Nginx HTTP portu ve MariaDB portu değiştirilebilir. Yeni portu yazıp satırdaki Kaydet düğmesine tıklayın; satırın altında varsayılan değer yazar (ör. "Varsayılan 80"). Hata teşhisindeki Portları değiştir düğmesi de bu ekranı açar. Kurallar:
- Servis çalışırken port değiştirilemez; satırda Çalışıyor rozeti ve "Servis çalışıyor; değiştirmek için önce durdurun." yazar. Önce servisi durdurun.
- Port 1–65535 arasında olmalıdır.
9800–9999aralığı PHP havuzlarına ayrılmıştır; servis portu olarak seçilemez.- Bir servisin portu, diğer Coduva servisinin portu (veya MariaDB için HTTPS portu) olamaz.
Servis yeniden başlatıldığında yapılandırma dosyaları yeni portla üretilir; proje adresleri de yeni portu içerir. Var olan projelerin yapılandırmasında eski port yazılıysa güncelleyin:
| Proje | Güncellenecek yer |
|---|---|
| Laravel | .env içinde APP_URL ve DB_PORT |
| WordPress | wp-config.php içinde DB_HOST (127.0.0.1:<port>); adres değiştiyse Adres değiştir (ara-değiştir) ile siteurl ve home |
Port değişikliği Son olaylar kaydına "Port değiştirildi" olarak düşer.
Yaygın senaryo
WampServer veya XAMPP'ı bırakmadan Coduva'yı denemek istiyorsanız Coduva'nın HTTP portunu 8080, MariaDB portunu 3307 yapın. İki ortam yan yana çalışır.