Nasıl bir programın ilk çalışmasını saptayabilir?

3 Cevap

Benim web uygulamasında, kullanıcılar uygulama dosyalarını içeren bir. Tar.gz arşivini indirebilirsiniz. MySQL veritabanı sonra yapılandırılmamış çünkü Ancak, kullanıcı ./install bulunan yüklemek komut dosyasını çalıştırmak gerekiyor.

Ben "yakalamak" ./install dizin olup olmadığını görmek için kontrol ederek app ilk çalıştırmadan sonra kullanıcı. Eğer öyleyse, index.php sayfa yüklemek komut için kullanıcıyı yönlendirir.

Bir programın ilk çalıştırmadan sonra bir kullanıcıyı "yakalamak" için daha şık bir yolu olsaydı Ancak, ben merak ediyordum.

IRC Birisi web sunucusu tamamlanması üzerine bir dosya .installed oluşturmak önerdi, ancak web sunucusu web kök dizine yazma ayrıcalıklarına sahip olmayabilir, çünkü bu güvenemez.

Nasıl bu sorunu çözme hakkında gitmek, ya da benim çözüm çalışılabilir mi?

3 Cevap

MySQL sorguları hata koduyla başarısız olduğunda 1146, bu tablolar yoksa gelir. Sen onlar da yazılımı yüklü değil yani, çünkü bu tür hatalar için uyanık olmak, ya da kurulum kırık olduğunu olabilir.

Julian H. Lam yorumlarda dediği gibi, mysql_errno() fonksiyonu o hata numarasını döndürür. MySQLi durumunda, ya bu özelliği $connection->errno veya işlev çağrısı mysqli_errno($link).

Eğer sağlanan çözümün dışında, ben tersini yapmak olduğunu düşünüyorum olabilir: a .not-installed sizin katran dosyasını ve kurulum bittikten sonra silin ekleyin.

Most web applications out there (wordpress, drupal, etc) assume it is a first-run condition when there is a lack of settings in a file, or the presence of a file. By removing or forcing the user to remove a file upon first-run of an application you also guarantee security because the application can't be re-configured by deleting or changing the name of a file... which might be easier to do than create a new file and simulate its contents.

More advanced frameworks will read and modify a configuration file to indicate first-run. In a Zend Framework application you would read, then modify one of the installations configuration files.

Because a web application executes code when it receives a request, code you do not want to be executed again should be deleted or outside of the 'public' directory. Projects that are extremely concerned with a setup being re-ran delete the setup file altogether.

Lütfen kurulum size, URL köküne yazma izinleri için kontrol edebilirsiniz eksikliği varsa onları setup.php silmesini söyleyin (örneğin)

  $delete = False;
  $dir = dirname(__FILE__);
  if(is_writeable(__FILE__)) {
     if(unlink(__FILE__)) {
       $delete = True;
     }
  }

  if(!$delete) {
    $file = __FILE__
    print "IMPORTANT please remove/rename the file {$file} to complete installation"
  }