php 如何寫一個本身項目的安裝程序

版權聲明:此篇文章只是用做筆記,若是版權衝突,請郵件通知一下(15201155501@163.com) https://blog.csdn.net/shenpengchao/article/details/56678266

php的項目作完以後,通常都是預留出來配置文件,咱們要作安裝程序就是來操做這個配置文件,若是用到了數據庫,就還要操做數據庫,下面就說一下帶有數據庫的安裝程序的寫法php

1,檢測目錄和文件的權限:一直使用win的同窗可能不注意這一點,由於在win上,目錄的權限是比較模糊的,可是在Linux上,文件的權限是很重要的,因此在開發過程當中,要記錄好你項目中那些目錄和文件是須要有寫入權限的,哪些是要有可執行權限等等。而那些不須要寫入權限的,最好就不要讓他有寫入權限,這樣纔會更安全。你能夠用php的函數,判斷一下你指定的文件或目錄是否具備相應的權限,若是沒有,給出提示讓他從ftp或其餘方式修改,或者是你用php的chmod()函數,將指定的文件修改成指定的權限。好比,你的程序若是有生成靜態文件,或生成備份文件的。就要有寫入權限。這個時候,通常狀況下安裝程序都是寫在一個叫作install的目錄下,必定要注意裏面程序的路徑問題,這裏就要你們研究下了。html


2,修改配置文件:通常這個配置文件就是數據庫的配置文件,固然有的時候也有一些你的程序的必要的配置文件,好比你有定義一個全局變量的值,須要在安裝的時候就指定好,那就要在這裏讓安裝者填寫,這些須要的配置變量填寫完,必定要進行驗證是否正確填寫,是否能配置成功,好比數據庫的,就連接一下數據庫,看可否正確連接,當所有驗證經過,咱們能夠經過正則等,將配置文件修改成他填寫好的對應的值。mysql


3,導入數據庫:數據庫導入有不少方法了,有的人習慣與用一些phpmyadmin的程序等,但有的狀況下使用者可能只有一個帳號而已,因此要寫個數據庫導入程序,這個程序其實很簡單,咱們能夠講咱們的數據庫清空一下能夠清空的數據表,而後轉存爲sql文件,或者其餘的文件(php文件,固然相應的導入程序要對應的來寫了,這裏以MySQL導出的sql文件這樣的最簡單爲例),而後咱們讀取這個sql文件,執行裏面的sql語句便可(可能有的時候要過濾一下里面的其餘的東西,註釋等),固然也能夠寫成其餘的數據庫導入程序,好比如今大部分導入程序爲其專門寫一個導入程序,都是能夠的。linux


4,創建初始用戶:這個就容易理解了,無非就是建一個系統的初始超級管理員,這樣就能夠登陸使用了。

可是有的安裝程序可能相對複雜,有了其餘的要求,好比這個導醫系統,我就作了兩個安裝程序工用戶選中,一個是初始安裝,就是第一次用的,一個是原來有一個.net寫的導醫系統,我就是把這個.net的改版了,並升級了一下。這樣有的狀況下,就要保留原有的.net數據轉移到這個程序上,因此就要增長轉入程序。sql

 

install.php簡單製做

 

最近本博編寫了一些源碼,有夏日CMS文章管理系統、夏日PHP留言本、夏日PHP增刪改查程序、夏日PHP投票系統等,這些都是爲方便 PHP 新手朋友學習使用的,因此直接導出了 mysql 數據庫,將其放在了根目錄下,其實這樣給初學者的體驗度並非很好,有許多 PHP 新手朋友都不知道如何進行導入 mysql 數據庫,不得已,後來專門寫了一篇關於「如何利用工具導入mysql數據庫」的文章。數據庫

若是咱們使用過織夢等開源的PHP程序,就會感受下載下來的源碼使用很簡單,由於有一個安裝源碼文件,經過這個源碼,自動進行mysql數據庫的導入和程序的配置安裝,即便不懂PHP程序,安裝使用起來也很簡單,對於學習PHP來講,這是一個頗有必要了解的一個功能,以前本博寫過一個簡單的安裝程序,這裏簡要講一下PHP安裝程序的原理。小程序

下載下來的PHP源碼,一般在根目錄下會有一個 install.php 的文件,這個就是 PHP 源碼的安裝文件了,若是要安裝 PHP 源碼,一般都是經過「您的網址/install.php」路徑進行安裝,在安裝過程當中,會要求填寫 mysql 用戶名和密碼等,按照要求填寫正確便可以安裝成功。安全

其實咱們能夠在 install.php 的安裝面板中能夠了解到 PHP 程序安裝的原理,經過 install.php 的文件,會要求咱們填寫 主機地址,mysql 用戶名,mysql 密碼,mysql 數據庫,基本上都是這些,至於更復雜的,可能會要求一些可寫文件什麼的,咱們先看一下最簡單的原理,知道了在安裝時要求填寫的這些基本信息,那就不難想到,這些無非就是 要生成一個配置 config.php 相似的文件,經過這個 config.php 配置文件,就能夠鏈接 mysql 數據庫,而後經過 PHP SQL 語句將其 填寫的 mysql 表新建出來,這個最簡單的 install.php 安裝小程序就製做出來了。函數

下面看一個 install.php 安裝文件的簡單製做源碼:工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<html xmlns= "http://www.w3.org/1999/xhtml" >  
<head>  
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
<title>php安裝小程序</title>  
</head>  
<body>  
<?php  
  if ( $_GET [ 'action' ]!=1)  
  {  
?>  
  <form action= "install.php?action=1" method= "post" >  
     主機地址:<input type= "text" name= "host" value= "localhost" ><br>  
     用戶名:<input type= "text" name= "user" value= "root" ><br>  
     密碼:<input type= "password" name= "psw" value= "" ><br>  
     新建表名<input type= "text" name= "db" value= "blog" ><br>  
     提交<input type= "submit" name= "sub" value= "提交" />  
     </form>  
<?php  
  }  
  else 
  {  
   $lockfile = "install.lock" ;   
   if ( $_POST [ 'host' ]!= "" && $_POST [ 'user' ]!= "" && $_POST ['ps
w ']!="" && $_POST[' db']!= "" )  
   {  
    $host = $_POST [ 'host' ];   
    $user = $_POST [ 'user' ];  
    $psw = $_POST [ 'psw' ];  
    $db = $_POST [ 'db' ];   
   }  
   if ( file_exists ( $lockfile )){   
   exit ( "已經安裝過了,若是要從新安裝請先刪除install.lock" );   
   }  
   $conn =mysql_connect( $host , $user , $psw );  
   if ( $conn )  
   {  
    $sql_drop_db = "Drop DATABASE IF EXISTS `" . $db . "`" ;   
    $sql_create_db = "Create DATABASE `" . $db . "`" ;   
    $sql_create_table_blog ="Create TABLE  `blog`.`blog` ( 
`id` INT( 4 ) NOT NULL AUTO_INCREMENT , 
`con` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_gener
al_ci NOT NULL , 
PRIMARY KEY (  `id` ) 
) ENGINE = MYISAM";  
   }  
   mysql_query( $sql_drop_db , $conn );  
   mysql_query( $sql_create_db , $conn );  
   mysql_query( $sql_create_table_blog , $conn );  
      
   $config_file = "config.php" ;   
   $config_strings = "<?php\n" ;   
   $config_strings .= "\$host=\"" . $host . "\";\n" ;   
   $config_strings .= "\$user=\"" . $user . "\";\n" ;   
   $config_strings .= "\$psw=\"" . $psw . "\";\n" ;   
   $config_strings .= "\$db=\"" . $db . "\";\n" ;   
   $config_strings .= "\$conn=mysql_connect(\$host,\$user,\$psw);\n" ;
   $config_strings .= "mysql_select_db(\$db,\$conn);\n" ;   
   $config_strings .= "?>" ;   
      
   $fp = fopen ( $config_file , "wb" );  
   fwrite( $fp , $config_strings );  
   fclose( $fp );  
   $fp2 = fopen ( $lockfile , 'w' );  
   fwrite( $fp2 , '1212' );   
   fclose( $fp2 );  
  }  
?>  
</body>  
</html> 

小說明:對於一些大型的PHP源碼,最核心的原理基本上也是這些了,對於 PHP 初學者來講,不必去了解那麼複雜的PHP安裝程序,先把 PHP 源碼的簡單安裝文件製做掌握了,那些複雜的就不難了,經過運行上面的程序,會自動生成 PHP 的配置文件 config.php ,這是與 mysql 數據庫通訊的文件,還會生成一個 install.lock 文件,這是判斷是否已經成功安裝的文件,還會在 mysql 數據庫當中新建一個你手動填加的 mysql 數據庫。。


版權聲明:此篇文章只是用做筆記,若是版權衝突,請郵件通知一下(15201155501@163.com) https://blog.csdn.net/shenpengchao/article/details/56678266

php的項目作完以後,通常都是預留出來配置文件,咱們要作安裝程序就是來操做這個配置文件,若是用到了數據庫,就還要操做數據庫,下面就說一下帶有數據庫的安裝程序的寫法

1,檢測目錄和文件的權限:一直使用win的同窗可能不注意這一點,由於在win上,目錄的權限是比較模糊的,可是在Linux上,文件的權限是很重要的,因此在開發過程當中,要記錄好你項目中那些目錄和文件是須要有寫入權限的,哪些是要有可執行權限等等。而那些不須要寫入權限的,最好就不要讓他有寫入權限,這樣纔會更安全。你能夠用php的函數,判斷一下你指定的文件或目錄是否具備相應的權限,若是沒有,給出提示讓他從ftp或其餘方式修改,或者是你用php的chmod()函數,將指定的文件修改成指定的權限。好比,你的程序若是有生成靜態文件,或生成備份文件的。就要有寫入權限。這個時候,通常狀況下安裝程序都是寫在一個叫作install的目錄下,必定要注意裏面程序的路徑問題,這裏就要你們研究下了。


2,修改配置文件:通常這個配置文件就是數據庫的配置文件,固然有的時候也有一些你的程序的必要的配置文件,好比你有定義一個全局變量的值,須要在安裝的時候就指定好,那就要在這裏讓安裝者填寫,這些須要的配置變量填寫完,必定要進行驗證是否正確填寫,是否能配置成功,好比數據庫的,就連接一下數據庫,看可否正確連接,當所有驗證經過,咱們能夠經過正則等,將配置文件修改成他填寫好的對應的值。


3,導入數據庫:數據庫導入有不少方法了,有的人習慣與用一些phpmyadmin的程序等,但有的狀況下使用者可能只有一個帳號而已,因此要寫個數據庫導入程序,這個程序其實很簡單,咱們能夠講咱們的數據庫清空一下能夠清空的數據表,而後轉存爲sql文件,或者其餘的文件(php文件,固然相應的導入程序要對應的來寫了,這裏以MySQL導出的sql文件這樣的最簡單爲例),而後咱們讀取這個sql文件,執行裏面的sql語句便可(可能有的時候要過濾一下里面的其餘的東西,註釋等),固然也能夠寫成其餘的數據庫導入程序,好比如今大部分導入程序爲其專門寫一個導入程序,都是能夠的。


4,創建初始用戶:這個就容易理解了,無非就是建一個系統的初始超級管理員,這樣就能夠登陸使用了。

可是有的安裝程序可能相對複雜,有了其餘的要求,好比這個導醫系統,我就作了兩個安裝程序工用戶選中,一個是初始安裝,就是第一次用的,一個是原來有一個.net寫的導醫系統,我就是把這個.net的改版了,並升級了一下。這樣有的狀況下,就要保留原有的.net數據轉移到這個程序上,因此就要增長轉入程序。

 

install.php簡單製做

 

最近本博編寫了一些源碼,有夏日CMS文章管理系統、夏日PHP留言本、夏日PHP增刪改查程序、夏日PHP投票系統等,這些都是爲方便 PHP 新手朋友學習使用的,因此直接導出了 mysql 數據庫,將其放在了根目錄下,其實這樣給初學者的體驗度並非很好,有許多 PHP 新手朋友都不知道如何進行導入 mysql 數據庫,不得已,後來專門寫了一篇關於「如何利用工具導入mysql數據庫」的文章。

若是咱們使用過織夢等開源的PHP程序,就會感受下載下來的源碼使用很簡單,由於有一個安裝源碼文件,經過這個源碼,自動進行mysql數據庫的導入和程序的配置安裝,即便不懂PHP程序,安裝使用起來也很簡單,對於學習PHP來講,這是一個頗有必要了解的一個功能,以前本博寫過一個簡單的安裝程序,這裏簡要講一下PHP安裝程序的原理。

下載下來的PHP源碼,一般在根目錄下會有一個 install.php 的文件,這個就是 PHP 源碼的安裝文件了,若是要安裝 PHP 源碼,一般都是經過「您的網址/install.php」路徑進行安裝,在安裝過程當中,會要求填寫 mysql 用戶名和密碼等,按照要求填寫正確便可以安裝成功。

其實咱們能夠在 install.php 的安裝面板中能夠了解到 PHP 程序安裝的原理,經過 install.php 的文件,會要求咱們填寫 主機地址,mysql 用戶名,mysql 密碼,mysql 數據庫,基本上都是這些,至於更復雜的,可能會要求一些可寫文件什麼的,咱們先看一下最簡單的原理,知道了在安裝時要求填寫的這些基本信息,那就不難想到,這些無非就是 要生成一個配置 config.php 相似的文件,經過這個 config.php 配置文件,就能夠鏈接 mysql 數據庫,而後經過 PHP SQL 語句將其 填寫的 mysql 表新建出來,這個最簡單的 install.php 安裝小程序就製做出來了。

下面看一個 install.php 安裝文件的簡單製做源碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<html xmlns= "http://www.w3.org/1999/xhtml" >  
<head>  
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
<title>php安裝小程序</title>  
</head>  
<body>  
<?php  
  if ( $_GET [ 'action' ]!=1)  
  {  
?>  
  <form action= "install.php?action=1" method= "post" >  
     主機地址:<input type= "text" name= "host" value= "localhost" ><br>  
     用戶名:<input type= "text" name= "user" value= "root" ><br>  
     密碼:<input type= "password" name= "psw" value= "" ><br>  
     新建表名<input type= "text" name= "db" value= "blog" ><br>  
     提交<input type= "submit" name= "sub" value= "提交" />  
     </form>  
<?php  
  }  
  else 
  {  
   $lockfile = "install.lock" ;   
   if ( $_POST [ 'host' ]!= "" && $_POST [ 'user' ]!= "" && $_POST ['ps
w ']!="" && $_POST[' db']!= "" )  
   {  
    $host = $_POST [ 'host' ];   
    $user = $_POST [ 'user' ];  
    $psw = $_POST [ 'psw' ];  
    $db = $_POST [ 'db' ];   
   }  
   if ( file_exists ( $lockfile )){   
   exit ( "已經安裝過了,若是要從新安裝請先刪除install.lock" );   
   }  
   $conn =mysql_connect( $host , $user , $psw );  
   if ( $conn )  
   {  
    $sql_drop_db = "Drop DATABASE IF EXISTS `" . $db . "`" ;   
    $sql_create_db = "Create DATABASE `" . $db . "`" ;   
    $sql_create_table_blog ="Create TABLE  `blog`.`blog` ( 
`id` INT( 4 ) NOT NULL AUTO_INCREMENT , 
`con` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_gener
al_ci NOT NULL , 
PRIMARY KEY (  `id` ) 
) ENGINE = MYISAM";  
   }  
   mysql_query( $sql_drop_db , $conn );  
   mysql_query( $sql_create_db , $conn );  
   mysql_query( $sql_create_table_blog , $conn );  
      
   $config_file = "config.php" ;   
   $config_strings = "<?php\n" ;   
   $config_strings .= "\$host=\"" . $host . "\";\n" ;   
   $config_strings .= "\$user=\"" . $user . "\";\n" ;   
   $config_strings .= "\$psw=\"" . $psw . "\";\n" ;   
   $config_strings .= "\$db=\"" . $db . "\";\n" ;   
   $config_strings .= "\$conn=mysql_connect(\$host,\$user,\$psw);\n" ;
   $config_strings .= "mysql_select_db(\$db,\$conn);\n" ;   
   $config_strings .= "?>" ;   
      
   $fp = fopen ( $config_file , "wb" );  
   fwrite( $fp , $config_strings );  
   fclose( $fp );  
   $fp2 = fopen ( $lockfile , 'w' );  
   fwrite( $fp2 , '1212' );   
   fclose( $fp2 );  
  }  
?>  
</body>  
</html> 

小說明:對於一些大型的PHP源碼,最核心的原理基本上也是這些了,對於 PHP 初學者來講,不必去了解那麼複雜的PHP安裝程序,先把 PHP 源碼的簡單安裝文件製做掌握了,那些複雜的就不難了,經過運行上面的程序,會自動生成 PHP 的配置文件 config.php ,這是與 mysql 數據庫通訊的文件,還會生成一個 install.lock 文件,這是判斷是否已經成功安裝的文件,還會在 mysql 數據庫當中新建一個你手動填加的 mysql 數據庫。。

相關文章
相關標籤/搜索