php的項目做完之后,一般都是預留出來配置文件,我們要做安裝程序就是來操作這個配置文件,如果用到了數據庫,就還要操作數據庫,下面就說一下帶有數據庫的安裝程序的寫法
1,檢測目錄和文件的權限:一直使用win的同學可能不注意這一點,因為在win上,目錄的權限是比較模糊的,但是在Linux上,文件的權限是很重要的,所以在開發過程中,要記錄好你項目中那些目錄和文件是需要有寫入權限的,哪些是要有可執行權限等等。而那些不需要寫入權限的,最好就不要讓他有寫入權限,這樣才會更安全。你可以用php的函數,判斷一下你指定的文件或目錄是否具有相應的權限,如果沒有,給出提示讓他從ftp或其他方式修改,或者是你用php的chmod()函數,將指定的文件修改為指定的權限。比如,你的程序如果有生成靜態文件,或生成備份文件的。就要有寫入權限。這個時候,一般情況下安裝程序都是寫在一個叫做install的目錄下,一定要注意里面程序的路徑問題,這里就要大家研究下了。
2,修改配置文件:一般這個配置文件就是數據庫的配置文件,當然有的時候也有一些你的程序的必要的配置文件,比如你有定義一個全局變量的值,需要在安裝的時候就指定好,那就要在這里讓安裝者填寫,這些需要的配置變量填寫完,一定要進行驗證是否正確填寫,是否能配置成功,比如數據庫的,就鏈接一下數據庫,看能否正確鏈接,當全部驗證通過,我們可以通過正則等,將配置文件修改為他填寫好的對應的值。
3,導入數據庫:數據庫導入有很多方法了,有的人習慣與用一些phpmyadmin的程序等,但有的情況下使用者可能只有一個賬號而已,所以要寫個數據庫導入程序,這個程序其實很簡單,我們可以講我們的數據庫清空一下可以清空的數據表,然后轉存為sql文件,或者其他的文件(php文件,當然相應的導入程序要對應的來寫了,這里以MySQL導出的sql文件這樣的最簡單為例),然后我們讀取這個sql文件,執行里面的sql語句即可(可能有的時候要過濾一下里面的其他的東西,注釋等),當然也可以寫成其他的數據庫導入程序,比如現在大部分導入程序為其專門寫一個導入程序,都是可以的。
但是有的安裝程序可能相對復雜,有了其他的要求,比如這個導醫系統,我就做了兩個安裝程序工用戶選中,一個是初始安裝,就是第一次用的,一個是原來有一個.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
|
<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 數據庫。。
php的項目做完之后,一般都是預留出來配置文件,我們要做安裝程序就是來操作這個配置文件,如果用到了數據庫,就還要操作數據庫,下面就說一下帶有數據庫的安裝程序的寫法
1,檢測目錄和文件的權限:一直使用win的同學可能不注意這一點,因為在win上,目錄的權限是比較模糊的,但是在Linux上,文件的權限是很重要的,所以在開發過程中,要記錄好你項目中那些目錄和文件是需要有寫入權限的,哪些是要有可執行權限等等。而那些不需要寫入權限的,最好就不要讓他有寫入權限,這樣才會更安全。你可以用php的函數,判斷一下你指定的文件或目錄是否具有相應的權限,如果沒有,給出提示讓他從ftp或其他方式修改,或者是你用php的chmod()函數,將指定的文件修改為指定的權限。比如,你的程序如果有生成靜態文件,或生成備份文件的。就要有寫入權限。這個時候,一般情況下安裝程序都是寫在一個叫做install的目錄下,一定要注意里面程序的路徑問題,這里就要大家研究下了。
2,修改配置文件:一般這個配置文件就是數據庫的配置文件,當然有的時候也有一些你的程序的必要的配置文件,比如你有定義一個全局變量的值,需要在安裝的時候就指定好,那就要在這里讓安裝者填寫,這些需要的配置變量填寫完,一定要進行驗證是否正確填寫,是否能配置成功,比如數據庫的,就鏈接一下數據庫,看能否正確鏈接,當全部驗證通過,我們可以通過正則等,將配置文件修改為他填寫好的對應的值。
3,導入數據庫:數據庫導入有很多方法了,有的人習慣與用一些phpmyadmin的程序等,但有的情況下使用者可能只有一個賬號而已,所以要寫個數據庫導入程序,這個程序其實很簡單,我們可以講我們的數據庫清空一下可以清空的數據表,然后轉存為sql文件,或者其他的文件(php文件,當然相應的導入程序要對應的來寫了,這里以MySQL導出的sql文件這樣的最簡單為例),然后我們讀取這個sql文件,執行里面的sql語句即可(可能有的時候要過濾一下里面的其他的東西,注釋等),當然也可以寫成其他的數據庫導入程序,比如現在大部分導入程序為其專門寫一個導入程序,都是可以的。
但是有的安裝程序可能相對復雜,有了其他的要求,比如這個導醫系統,我就做了兩個安裝程序工用戶選中,一個是初始安裝,就是第一次用的,一個是原來有一個.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
|
<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 數據庫。。