ne kadar hızlı bir php mysql sitesi kurmak için?

6 Cevap php

Ben temel bir site hızlı kurulum için yollar arıyorum.

I have a basic site which works with a databasem, templates, css, js and so on. No I want to be able to quickly set up a site. What shoudld happen when i start the script is:

  1. Bazı değişkenler için isteyin
  2. gönderici:
  3. webroot bir klasör oluşturun
  4. o haritaya standart siteyi kopyalamak
  5. varsayılan db dayalı bir veritabanı oluşturmak
  6. Benim vhost dosyaya yeni site eklemek
  7. restart apache
  8. benim ana dosyaya yeni site eklemek
  9. Bir tarayıcıda de temel bir site başlar.

Bu komut dosyası oluşturmak için en iyi yolu nedir? Bunu nasıl yapabilirsiniz?

6 Cevap

İşte söyledikleri hakkında yaptığı bir tam (denenmemiş) kesmek. Eğer php rahat iseniz o zaman kullanın. Sözde komut:

#!/usr/bin/env php
<?php
echo "Site setup v0.0\n";
if($argc != 2){
    echo "Usage:\n   script sitename\n";
}
//set vars
$sitename = $argv[1];
$src_folder = "/path/to/some/folder";
$template_db ="template_site";

//copy files
`mkdir $sitename`;
`cp -R $src_folder $sitename`;

//copy template db
$dblink = mysql_connect("localhost");
if(!mysql_query($dblink, "CREATE DATABASE site_$sitename; USE site_$sitename;"))exit(-1);
$r = mysql_query($dblink, "SHOW TABLES FROM $template_db");
while($row = mysql_fetch_array($r)){
    $table = $row[0];
    mysql_query($dblink, "CREATE TABLE $table AS SELECT $template_db.$table");
}

//conf and restart apache
$f = fopen("httpd.conf","a");//open for append
fwrite("<VirtualHost $sitename> bla bla </VirtualHost>");
fclose($f);
`sudo apachectl -k restart`; //you'll be asked for a password here

//open in browser
`open http://$sitename/`; //on mac anyway...

?>

Dosyayı çalıştırılabilir yapmak ile

chmod +x filename

Geçerli klasördeki komut dosyalarını çalıştırmak için unutmayın eklemek gerekir ./. Gibi

./scriptname sitename

Onlar bir kabuk komutu başlatmak - Ayrıca eğimli tırnak `

Ayrıca bu script kod çalışmıyor sadece sözde olduğunu lütfen unutmayın! Bunu değiştirmeden önce koşmak yok!

Bu, size tercih herhangi bir dili kullanabilirsiniz böylece sunucu üzerinde yapmak zorunda şeydir. Bu dosyaları metin eklemek ve bazı komutlar çalıştırmak, sadece dosya kopyalama hakkında.

Peki, bu Linux kullanıyorsanız bunu yapmak için basit bir komut dosyası oluşturabilirsiniz, kullandığınız hangi işletim bağlıdır, bu ikonların bu kurmak için komut dizisi içermelidir.

#!/bin/sh
mkdir /var/www/sitename
cp -au /var/www/skeleton/* /var/www/newfolder
etcetera.

Daha sonra bazı parametreleri ile komut satırından çalıştırarak komut başlatabilirsiniz

. / Initiatesite.sh newsite.com databasename addwhateverparameteryouwant burada.

Bir kabuk parametreleri geçirmeden ilgili daha fazla bilgi: http://osr600doc.sco.com/en/SHL_automate/_Passing_to_shell_script.html

Bu temelde bütün bunlar gerçekleştiren bir kabuk komut dosyası yazabilirsiniz.

Yani, senin db kurmak dosyaları kopyalamak, yapılandırma sanal konağa bazı satırları eklemek için sunucu (sistem çağrısı ile) bir web ön bazı parametreleri aldığı php tarafından ele ucu var ve bu php script bir kabuk çağırmak olurdu sanırım , vs

Bu kendi kullanımınız için değil, müşteriler için değilse, eminim tüm giriş bozulmamış olduğundan emin olun ve ilk sabitlemek için ekstra bakım alacaktı.

Kök (kötü fikir) olarak PHP çalıştırmak sürece PHP yapamazsın.

Eğer özel olarak yapmak ve bunu nasıl yapacağını istediğinizi düşünün. Bir tarayıcıda siteyi başlayarak tüm kopyalama / düzenleme / hareketli şeyler olduğu gibi sunucuyu yeniden başlatmadan bir kök eylem, bir kullanıcı özel bir masaüstü eylemdir.

Belki uygun bir yükleyici başarmak için çalışıyoruz ne doğru daha uygun olacaktır. Windows ile çalışıyoruz gibi geliyor - sadece Windows için bir kurulum sağlamak istiyorsun? Linux için örneğin, bir kabuk gerekiyordu.

Bu yazmak için en iyi yolu, isterseniz PHP yazabilirsiniz bir komut satırı komut dosyası gibi olur. Komut satırı değişkenleri bir dizisini almak için $argv değişkeni kullanın. Bu PHP dosyası web erişilebilir değil emin olun.

Ayrıca, ben yeni site için klasöre bir ihracat yapmak için SVN kullanabilirsiniz. Bu tarih kodu ve o kadar temiz bir kopya olduğunu çoğu var sağlayacaktır.