Yükleme komut dosyası ile PHP autostart

5 Cevap php

Ben PHP kadar küresel belleğe birkaç sabit almak gibi başladığında otomatik olarak çalıştırmak / yüklemek için bazı komut dosyaları alabilirsiniz hangi bir ayarı vardır.

Ayrıca kullanıcılar arasında erişilebilir küresel bir bellek var mı? Ayrıca bellek hakkında tüm kullanıcılar tarafından erişilebilir bellek var mı? Bir kişinin başka bir kişiye erişim adlı o ya ben okudum ve bir veritabanı geçici masada ya da daha doğrusu paylaşılan bazı şey için her zaman dosya yazmak zorunda gerektiğini ayarlayabilirsiniz.

Hayrete PHP bu yok?

Teşekkürler.

5 Cevap

Eğer doğru anlamak, size Apache başladığınızda PHP bazı küresel ortak değerlerini saklamak için, bazı komut dosyası çalıştırmak istiyorum. Eğer yanılıyorsam, / yorum düzenleyin lütfen.

Kısa cevap: hayır, bunu yapamam. PHP tam olarak müşteri istekleri için bekleyen çalışan kalır bir sunucu değil. Tek tek her HTTP isteği işler.

Uzun cevap: iyi ... her istek üzerine bunu yapmak için auto_prepend_file yapabilirdi. Bazı basit bir bash komut dosyası oluşturmak ve Apache sonra bir PHP komut dosyası çağırın başlatmak için kullanan, ancak Apache yürütmek değil alırdım.

Paylaşımlı bellek gelince, bir kaç seçenek var. Düz dosyalar, veritabanı veya memcached kullanarak muhtemelen en taşınabilir. Bazı yükler Shared Memory işlevleri etkin var, ama garanti değil.

PHP arasında paylaşılan küresel bir önbellek sağlamaz. Sen gereksinimlerine bağlı olarak farklı şekillerde bu çalışabilirsiniz.

Eğer hesaplamak için pahalı değil kurulum küresel sabitler istiyorsanız, bu sabitleri tanımlar bir senaryo yazmak ve daha sonra otomatik olarak bu komut istenen dosya önce çalıştırmak için alabilirsiniz. Bu php.ini içinde auto_prepend_file option kullanılarak yapılır.

Pahalı değerlerinin hesaplanması durumunda, tüm PHP tarafından erişilebilir bir genel önbellek olarak memcached kullanabilirsiniz. Vardır multiple client APIs PHP kullanarak memcached bağlanmak için.

Bu değerler, kullanıcı başına eğer Tabii ki, aynı zamanda user session, küresel değerler saklayabilirsiniz. Hatta MySQL kullanabilirsiniz.

Eğer MVC çerçevesinde çeşit kullanıyorsanız orada değişkenleri tanımlamak ve dosya her zaman yüklü olduğundan emin olabilir. Sen $ GLOBALS ['var_name'] = $ değer kullanabilirsiniz; ve bu istek sırasında bazı diğer dosya bu erişebilirsiniz.

Her çalışan PHP komut dosyası örneği kendi global değişkenler vardır, fonksiyonlar, vb sabitler, doğrudan başka bir çalışan komut dosyası örneğinden bir değişkeni kopyalamak için hiçbir yolu yoktur. Ancak, dosyaları bir veritabanı veya memcached kullanmak gibi dolaylı yöntemler vardır.

Bazı (APC paylaşımlı bellek gibi, hatta memcached) alt sistemi kullanıyorsanız, bu start-up script düzenleyerek apache başlangıç ​​otomatik veri jeneratör komut dosyası çalıştırabilir (/etc/init.d/[apache2|httpd]). Yeniden başlatma | Örnek olarak, sağ başladıktan sonra jeneratör script kıvırmak veya wget isteği ekleyebilirsiniz.

Orada ilk 'dış' talebi üzerine başlatıldı değil devletin küçük bir olasılık olduğunu, ancak I'n emin misin işleyebilir.