永利集团304com:ssl服务器之完全安装战术,MySQL和PHP平滑无缝地安装

目标我们的指标是设置叁个同意我们托管多个网址的web服务器,当中部分是照准电商的安全解决方案,而当先59%网址是通过延续叁个数据库服务器况兼提取其数据的剧本驱动的。
为了那些任务所需的工具是:
Apache-二个网站服务器
Mod_SSL-贰个康宁套接字层(SSL卡塔尔的模块
OpenSSL-开放源代码工具箱(mod_ssl所需)
昂科威SARef-仅对美利坚同盟友客商
MySQL-一个数据库服务器
PHP-一种脚本语言

为了这一个义务所需的工具是: 

“条条大路通埃及开罗”……由此那只是大多能到达大家须求的配置之一。笔者接受那样的配备,是因为它是最容易易行和最快的一种。选用Mod_SSL/OpenSSL的因由是因为小编有它的先前阅历,是最快配置和最轻巧安装的一种。为了相互方便地与Apache集成,笔者选取了PHP和MySQL。记住,Perl能完毕你想要做其余专门的学问,不过,PHP对其他想上学它地技术员来讲轻便况包轻松。

Apache-一个网址服务器 
Mod_SSL-一个金昌套接字层(SSLState of Qatar的模块 
OpenSSL-开放源代码工具箱(mod_ssl所需) 
LX570SARef-仅对美利坚合众国顾客 
MySQL-二个数据库服务器 
PHP-一种脚本语言 
“条条大路通拉各斯”……因而那只是过多能达成大家渴求的配置之一。我采用这么的配备,是因为它是最简单易行和最快的一种。接纳Mod_SSL/OpenSSL的缘由是因为小编有它的先前经历,是最快配置和最轻便安装的一种。为了相互方便地与Apache集成,小编接纳了PHP和MySQL。记住,Perl能形成你想要做其余工作,然则,PHP对其余想深造它地程序猿来讲轻巧况包轻巧。 
目的在于你就要终止那么些大概的指南后能成功地完成下列目的。 
安装并安装MySQL数据库服务器 
o 知道怎么检查MySQL服务器的意况 
o 知道怎么着使用命令行客户程序存取MySQL服务器 
o 知道如何从web存取你的DB服务器 
设置并安装富有SSL的Apache网址服务器 
o 配置三个简短的设想网址 
o 知道怎么甘休并运行服务器 
o 知道什么做一些为主的主机托管配置 
设置并布署服务器端脚本的PHP 4.0超文本预微处理器 
o 知道什么编写简单的php代码 
o 知道什么样利用php连接多个DB 
o 创制二个启用PHP地总结网址与二个数据库交流 
创制一些样书证书用于Apache SSL 
o 知道怎么着发生三个CSEscort文件 
o 知道什么加密叁个键码 
o 知道哪些 签订你自个儿的证书 
本文将覆盖多量的新闻。本指南作为二个入门性地的指南,令你步向电商、网址脚本和平安套接字层 (SSL卡塔尔(قطر‎的社会风气,指标是扶持你创设由存款和储蓄在数据库中的动态新闻驱动的安全网址。 
正文绝非是叁个详细全面包车型客车文书档案,它自然将有点不当(希望比异常的小卡塔尔国,在你读书它时请记住那或多或少。可是,它将激起你的来者勿拒并运转前边提到的产品,希望让您越来越好通晓那些东西是什么样职业的。不须要以前的编制程序知识,但假诺你有一些Computer知识背景。作者的靶子是编写制定那几个文书档案以便任何新手能知道笔者正在商酌的事物。倘使本人达到了,那么作者做了一件好事。假若您轻便地树立了电商站点,比笔者做的更精良:-卡塔尔(قطر‎ 给自家某个分解。 

指望您将要终止那个轻松的指南后能学有所成地做到下列指标。

假设 
本文假若你曾经把下列软件安装在您的连串上了。 

设置并设置MySQL数据库服务器
o 知道怎么着检查MySQL服务器的景观
o 知道怎样使用命令行顾客程序存取MySQL服务器
o 知道如何从web存取你的DB服务器

Perl (最好是ver 5+) 
gzip或gunzip 
gcc 和 GNU make 
只要您从未设置好那个,你将索要利用须求的步子在解说本文的别样进程前把他们设置好。 
您也急需对UNIX命令、HTML、和SQL的一个主题了然。你应该有哪些管理你的Linux机器的三个主导精晓。你也急需三个一心健康的Linux机器,你就要它下边安装软件。当然你将索要在眼下列出的不可缺少的软件包以编写翻译源代码,况兼最后,保险你还并未有在Linux机器中预装了MySQL、Apache、或PHP。 

安装并安装富有SSL的Apache网址服务器
o 配置三个简约的捏造网站
o 知道什么停止并运行服务器
o 知道什么样做一些主导的主机托管配置

干活原理 
驾驭在背后发生了什么样是有帮扶的。这里是一个过度简化的职业规律,下图和随之的解释近期不是完全正确的,只是它的三个要点概述: 
动静是:大家有三个从二个数据库收取一些数码的网页。约翰 Doe从她的浏览器央浼该页,央求被发送给web服务器,接着调用三个PHP脚本。PHP脚本由PHP预微型机解释并从数据库中抽出数据,然后结果由剩余的PHP脚本加工并转载成HTML,做后的HTML被发回客商的浏览器。 

安装并布署服务器端脚本的PHP 4.0超文本预微电脑
o 知道哪些编写轻便的php代码
o 知道怎么使用php连接叁个DB
o 成立四个启用PHP地质大学约网址与三个数据库交换

  
让大家一步一步地看: 
John Doe 从他的浏览器中式茶食击二个链接;他的浏览器发送对的乞请。 
Apache获得对test.php的伸手,它知道.php文件应由PHP预微电脑(mod_php卡塔尔(قطر‎管理,因而它打招呼 PHP管理它。它知道这么些,是因为大家在Apache的安插中钦点它。 
test.php是包含命令的八个PHP脚本。这个命令之一是开采多少个到一个数据库的连年并抓取数据。PHP 管理到数据库的总是,何况解释SQL调用从DB中提取数据。 
服务器服务器获得从PHP解释器来的接连几日乞请,並且管理那么些央求。诉求或然是看似于多少个轻巧易行的精选语句,或数量库表创造等。 
数据库然后将回应和结果回送到PHP解释器。 
Apache回送该结果到John Doe的浏览器,作为对她呼吁的作答。John Doe现在看到叁个含有从三个数据库来的局地信息的网页。 
举个例子那是多少个对的伸手,整个经过与上述近似,除了种种诉求和回复在两侧被加密和平解决密,即,浏览器连接Apache,得到它的加密键码,加密央浼并发送它。 
服务器看见央求,解密并且认证它。它处理文件,加密并且发送它。然后浏览器用服务器的键码解密它。记住既然连接被加密,就是用分歧的端口用。端口80用在在非安全连接上,而端口443用在安全连接时。 
再说一次,它不是百分之百的没有错,不过它丰裕快地让您驾驭幕后爆发的职业的特别简单的概述。 
既然如此大家对我们正在策动达到的对象有了一个很基本的垂询,让大家后续设置软件吧。 
准备 

创造一些样品证书用于Apache SSL
o 知道哪些发生三个CSGL450文件
o 知道怎么着加密三个键码
o 知道什么 签订你和谐的证书

Apache (Web服务器)- 
Mod_SSL (安全服务器层卡塔尔- 
OpenSSL (SSL工具箱)- 
PHP (脚本语言卡塔尔国- 
MySQL (SQL数据库服务器 卡塔尔(قطر‎- 
下载全体(tar文件State of Qatar源代码到叁个一时目录下。保险你把他们放在有数不清空中的地点……你应当以root身份下载他们以幸免权限难题。 
笔者们的陈设 

本文将隐瞒大批量的新闻。本指南作为八个入门性地的指南,让你进入电商、网址脚本和贵港套接字层
(SSL卡塔尔国的社会风气,指标是支援你创设由存款和储蓄在数据库中的动态新闻驱动的平安网址。

咱俩的布置是第一安装MySQL服务器并保管它专门的学业,然后大家将安装PHP和Mod_SSL,最终我们将安装Apache网址服务器。在大家设置了Apache以往,我们得以测量检验PHP和Mod_SSL帮忙是还是不是起作用了。 
MySQL源代码安装(UNIX卡塔尔(قطر‎ 
您必须要用来进行安装MySQL源代码分发的为主命令是(自一个没解开“tar”文件卡塔尔(قطر‎: 
经过动用su成为 root顾客。 
$su 
直白进去你有tar文件的目录。(使用三个一时目录。这里运用 /tmp/download/ ) 
#cd /tmp/download/ 
行使下列命令提取文件。 
# gunzip -d -c mysql-3.22.xx.tar.gz | tar xvf – 
校正到新目录,它在领取期间创立。 
# cd mysql-3.22.xx 
今昔您能够发轫“配置”MySQL服务器。你能够用configure内定非常多增选,使用configure –help查看全部的选项。作者早就筛选–prefix钦点到安装地点的一贯门路。configure将检查你的编写翻译器和部分别样东西。假令你有任何不当,你能够检查config.cache文件查看错误。 
# configure –prefix=/usr/local/mysq 
在你完毕了安插未来,你能够试行下列命令make真正的二进制代码。 
# make 
现行反革命您已预备好安装具备的二进制代码。运行下列命令在您用configure –prefix选项内定的目录下安装二进制代码。 
# make install 
在您安装好二进制代码后,今后是创办用于定义权限的mysql表的时候了。 
# scripts/mysql_install_db 
# cd /usr/local/mysql/bin 
# ./safe_mysqld & 
# ./mysqladmin -u root password “new-password” 
只顾:/usr/local/mysql是自身选取安装MySQL服务器的目录。你能够经过更换目录选取此外的地点。 
你能够透过运维一些精练的测量检验来阐明服务器正在干活以作保MySQL正在运作。输出应该左近于上边所示的:BINDI兰德酷路泽=/usr/local/mysql/bin。BINDIEscort注重于您在上头的前缀接收的目录。 
# BINDIR/mysqlshow -p 
+—————+ 
| Databases | 
+—————+ 
| mysql | 
+—————+ 
如若你安装好MySQL,它将电动地创制2个数据库。三个mysql表,它决定在实际上的服务器中客户、主机和 数据库权限;另贰个是一个test数据库,大家能接纳test数据库。不过,大家想给您一个飞速而精炼的MySQL可用的部分命令行选项的概述。那也将保证root棉被服装置了对DB服务器的全套存取权限,即:root有开创数据库、数据库表等的特许,因而我们将开创一个test2数据库,在之后大家用它举行大家的测量试验。在您通过命令行步向MySQL前,你将被提醒root客商的新口令。记住您以前改动了它。 
# mysql -u root -p 
mysql> show databases; 
+—————-+ 
| Database | 
+—————-+ 
| mysql | 
| test | 
+—————-+ 
mysql> create database test2; 
Query OK, 1 row affected (0.00 sec) 
以后选取新的数据库使用,并创立叁个名称为tst_tbl的新表, 有下列2个字段。字段1是是三个id字段,允许你驾驭记录的id。实质上为了简化这只是的二个行号。第二个字段是你三个name字段,存款和储蓄书名音讯。那几个字段的格式是:字段1(id卡塔尔(قطر‎是三个长度为3的整数(int卡塔尔(قطر‎,而字段2(nameState of Qatar是三个尺寸为50的字符(charState of Qatar字段。为寻找和目录数据,我们钦命id为键码。 
mysql> use test2; 
Database changed 
mysql> CREATE TABLE books ( id int(3) not null 
-> auto_increment, name char(50) not null, 
-> unique(id), primary key(id)); 
Query OK, 0 rows affected (0.00 sec) 
今后大家用下列命令验证一切正确准确。 
mysql> show tables 
+———————+ 
| Tables in test2 | 
+———————+ 
| books | 
+———————+ 
1 row in set (0.00 sec) 
mysql> describe books; 
+——-+————-+——+——+———-+————————+ 
| Field | Type | Null | Key | Default | Extra | 
+——-+————-+——+——+———-+————————+ 
| id | int(3) | | PRI | 0 | auto_increment | 
| name | char(50) | | | | | 
+——-+————-+——+——+———-+————————+ 
2 rows in set (0.00 sec) 

本文绝非是二个详细周详的文书档案,它自然将有局地荒谬(希望非常的小),在您读书它时请深深记住那或多或少。然则,它将鼓励你的热忱并运维后面提到的制品,希望令你越来越好了然那个事物是什么工作的。没有需求在此在此之前的编制程序知识,但一旦你有一些计算机知识背景。笔者的靶子是编制那几个文书档案以便任何生手能精通本人正在钻探的事物。假如本身达到了,那么作者做了一件善事。就算你十拿九稳地确立了电子商务站点,比我做的更不错:-)给本身有些批注。

留意到describe命令基本上“描述”了表的布局。极其不错啊! 
好,该试一些着实有用的SQL命令,插入并从数据库中选拔数据,以往把多少个记录加到新表中。记住这个是总结的书名记录,可是若是你获得了SQL丰富的经历,你可感觉一些大的电子商务站点创制确实复杂的数据库。让大家成立2本假想的书的2条记下。第一条记下是自己在明日某天写的一本书的名字-“PHP 4 Newbies”,另一本是一个很有用的Linux书,“Red Hat Linux 6 Server”, 由Mohammed J. Kabir所著。 
mysql> INSERT INTO books (name) values(“PHP 4 Newbies”); 
Query OK, 1 row affected (0.00 sec) 
mysql> INSERT INTO books (name) values(“Red Hat Linux 6 Server”); 
Query OK, 1 row affected (0.00 sec) 
后日我们能够检查新记录,发出一条“接收具有”命令 
mysql> SELECT * from books; 
+—-+———————————-+ 
| id | name | 
+—-+———————————-+ 
| 1 | PHP for Newbies | 
| 2 | Red Hat Linux 6 Server | 
+—-+———————————-+ 
2 rows in set (0.00 sec) 
很好,MySQL服务器完全起效果了。大家能够持续插手,不过当时没什么意思。注意到当您向数据库中插入记录时,你怎么着不必钦赐id号,那是因为您创立了启用auto_increment选项的id字段。 
让笔者亲自去做一下什么做一个高效删除。那只是让您领会,记住,你可在MySQL的网址上找到所需的关于mysql命令和服务器的具有消息。 
mysql> delete from books where id=1; 
Query OK, 1 row affected (0.00 sec) 
mysql> select * from books; 
+—-+———————————–+ 
| id | name | 
+—-+———————————–+ 
| 2 | Red Hat Linux 6 Server | 
+—-+———————————–+ 
1 row in set (0.00 sec) 
好了,退出MySQL,继续设置。你可在做到有着安装还要一切工作健康后玩MySQL也不迟。 
PHP安装(UNIX) 

假设

前几天安装PHP语言。你下载了新型的beta版,然而你大概必须下载非beta版本。记住beta版本供给GNU make。 
您还是假定是root,倘诺不是,su回到root。 
PHP供给你早就初期布置好的Apache,以便它能知晓所需的事物在何地。在今后您安装Apache服务器时,你将会回来这里。改进到你有源代码的目录。 
# cd /tmp/DOWNLOAD 
# gunzip -c apache_1.3.x.tar.gz | tar xf – 
# cd apache_1.3.x 
# ./configure 
# cd .. 
好的,现在您能够起来PHP的装置。提取源代码文件并步向其目录。若是你下载了本子3,在数字和指令上有二个变动,超级小的更改。 
# gunzip -c php-4.0.x.tar.gz | tar xf – 
# cd php-4.0.x 
假设您正在编写翻译代码,configure将永久是你的敌人。:-State of Qatar 由此,configure有成都百货上千选项。使用configure –help明确你想要扩充哪些。小编只是须要MySQL和LDAP,何况当然Apache。 
# ./configure –with-mysql=/usr/local/mysql  
–with-xml  
–with-apache=../apache_1.3.x  
–enable-track-vars  
–with-ldap 
make并安装二进制代码。 
# make 
# make install 
拷贝ini文件到lib目录。 
# cp php.ini-dist /usr/local/lib/php.ini 
您能够编写制定PHP文件来安装PHP选项,如你能够因此在您的php.ini文件中插入下列行,扩充php的max_execution_time。 
max_execution_time = 60; 
只顾:php3顾客将利用php3.ini,而php4顾客将选择php.ini文件。 
Apache 与 Mod_SSL 

正文假设你早已把下列软件设置在你的系统上了。
Perl (最好是ver 5+)
gzip或gunzip
gcc 和 GNU make

该配置并安装mod_ssl和Apache了。对此,你将索要有rsaref-2.0文件。在上搜寻“rsaref20.tar.Z”。要是您嫌恶Lycos,你可以筛选别的搜索引擎来搜寻文件。当然独有你在美利坚联邦合众国才需求以此文件。(管它吗,你也可从别处下载,首先在追寻“rsaref20.tar.Z”,许多哟!。) 
  
创立rasref目录,你将要该目录提取文件。注意。那借令你下载了二个临时目录,而你就在此目录。 
# mkdir rsaref-2.0 
# cd rsaref-2.0 
# gzip -d -c ../rsaref20.tar.Z | tar xvf – 
目前布署并组织OpenSSL库。 
# cd rsaref-2.0 
# cp -rp install/unix local 
# cd local 
# make 
# mv rsaref.a librsaref.a 
# cd ../.. 
设置OpenSSL。记住,你将用它来创建有时证书和CSTiguan文件。–prefix选项钦点主安装目录。 
# cd openssl-0.9.x 
# ./config -prefix=/usr/local/ssl  
-L`pwd`/../rsaref-2.0/local/ rsaref -fPIC 
于今make、测量试验并安装它。 
# make 
# make test 
# make install 
# cd .. 
大家将配置MOD_SSL模块,然后用Apache配置钦赐它为三个可装载的模块。 
# cd mod_ssl-2.5.x-1.3.x 
# ./configure  
–with-apache=../apache_1.3.x  
# cd .. 
当今大家得以把更加的多的Apache模块加到Apache源代码树中。可选的–enable-shared=ssl选项使得mod_ssl构产生为二个DSO“libssl.so”。关于在Apache扶持DSO的越来越多音信,阅读Apache源代码树中的INSTALL和 htdocs/manual/dso.html文书档案。作者刚毅建议ISP和软件包装维护者为了最灵敏地选择mod_ssl而接纳DSO工具,然则注意,DSO不是在有着平台上的Apache都扶持。 
# cd apache_1.3.x 
# SSL_BASE=../openssl-0.9.x  
RSA_BASE=../rsaref-2.0/local  
./configure  –enable-module=ssl  
–activate-module=src/modules/php4/libphp4.a  
–enable-module=php4 –prefix=/usr/local/apache  
–enable-shared=ssl 
[…你可投入越多的选项…] 
生成Apache,然后生成证书,并安装… 
# make 
假诺你已正确地成功,你将获得相同于以下的消息: 
+———————————————————————–+ 
| Before you install the package you now should prepare the SSL | 
| certificate system by running the “make certificate” command. | 
| For different situations the following variants are provided: | 

就算您从未设置好那么些,你将须求使用需求的步子在表达本文的此外进度前把她们设置好。

| % make certificate TYPE=dummy (dummy self-signed Snake Oil cert) | 
| % make certificate TYPE=test (test cert signed by Snake Oil CA) | 
| % make certificate TYPE=custom (custom cert signed by own CA) | 
| % make certificate TYPE=existing (existing cert) | 
| CRT=/path/to/your.crt [KEY=/path/to/your.key] | 

你也急需对UNIX命令、HTML、和SQL的二个为主领会。你应该有啥样处理你的Linux机械的一个骨干通晓。你也必要三个完全正常的Linux机器,你就要它上边安装软件。当然你将急需在前方列出的必不可缺的软件包以编写翻译源代码,而且最后,保障你还尚无在Linux机器中预装了MySQL、Apache、或PHP。

| Use TYPE=dummy when you”re a vendor package maintainer, | 
| the TYPE=test when you”re an admin but want to do tests only, | 
| the TYPE=custom when you”re an admin willing to run a real server | 
| and TYPE=existing when you”re an admin who upgrades a server. | 
| (The default is TYPE=test) | 

办事规律

| Additionally add ALGO=RSA (default) or ALGO=DSA to select | 
| the signature algorithm used for the generated certificate. | 

清楚在暗地里爆发了哪些是有助于的。这里是三个过火简化的做事原理,下图和随之的说化痰前不是完全正确的,只是它的一个要义概述:

| Use “make certificate VIEW=1” to display the generated data. | 

气象是:大家有多个从一个数据库抽出一些数额的网页。JohnDoe从他的浏览器央浼该页,伏乞被发送给web服务器,接着调用一个PHP脚本。PHP脚本由PHP预微机解释并从数据库中收取数据,然后结果由剩余的PHP脚本加工并转造成HTML,做后的HTML被发回客户的浏览器。

| Thanks for using Apache & mod_ssl. Ralf S. Engelschall | 

让我们一步一步地看:

| | 
+———————————————————————–+ 

John Doe
从她的浏览器中式点心击二个链接;他的浏览器发送对的请求。

几天前你能够创制八个定制的证明。该选项将唤起输入你的地点、公司、和其余部分东西。关于证书,请参阅本文的末梢。 
# make certificate TYPE=custom 
到现在安装Apache… 
# make install 
只要一切日常,你应该看到相符于以下的消息: 

Apache获得对test.php的倡议,它知道.php文件应由PHP预微机(mod_phpState of Qatar管理,由此它打招呼
PHP管理它。它通晓那些,是因为我们在Apache的布署中钦赐它。

+———————————————————————————-+ 
| You now have successfully built and installed the | 
| Apache 1.3 HTTP server. To verify that Apache actually | 
| works correctly you now should first check the | 
| (initially created or preserved) configuration files | 

test.php是满含命令的三个PHP脚本。这么些命令之一是张开三个到叁个数据库的连年并抓取数据。PHP
处理到数据库的总是,并且解释SQL调用从DB中领到数额。

| /usr/local/apache/conf/httpd.conf | 
| and then you should be able to immediately fire up | 
| Apache the first time by running: | 

服务器服务器获得从PHP解释器来的连续几日央求,何况管理这些须要。央求或许是相符于四个精简的选拔语句,或数量库表创造等。

| /usr/local/apache/bin/apachectl start | 
| Or when you want to run it with SSL enabled use: | 

数据库然后将回应和结果回送到PHP解释器。

| /usr/local/apache/bin/apachectl startssl | 
| Thanks for using Apache. The Apache Group | 

Apache回送该结果到John Doe的浏览器,作为对他恳请的回应。JohnDoe以后见到叁个包蕴从一个数据库来的部分音信的网页。

+———————————————————————————-+ 

固然那是八个对的伸手,整个经过与上述相近,除了每一个乞请和回复在互相被加密和平解决密,即,浏览器连接Apache,拿到它的加密键码,加密央求并发送它。

现在验证Apache和PHP是或不是正在工作。不过,大家须求编写制定srm.conf和httpd.conf保证我们把PHP类型加到了陈设中。查看httpd.conf并去掉下列行的评释。假使您准确地信守了本文的命令,你的httpd.conf文件将身处/usr/local/apache/conf目录。文件有一行针对php4的addtype加了讲明,今后就去掉注释。httpd.conf 文件–片断 

> # And for PHP 4.x, use: 
> # 
—> AddType application/x-httpd-php .php 
—> AddType application/x-httpd-php-source .phps 

服务器见到乞请,解密何况证实它。它管理公事,加密同临时间发送它。然后浏览器用服务器的键码解密它。记住既然连接被加密,正是用差异的端口用。端口80用在在非安全连接上,而端口443用在安全连接时。

明日我们打算运行Apache服务器看它是不是在办事。首先我们将起动不帮忙SSL的服务器看它是还是不是运维了。大家将检核对PHP的支撑,然后我们将下不为例服务器而且运转启用了SSL辅助的服务器并检查大家是或不是一切日常。configtest 将检查有着配置是或不是科学安装。 
# cd /usr/local/apache/bin 
# ./apachectl configtest 
Syntax OK 
# ./apachectl start 
./apachectl start: httpd started 

再说二回,它不是百分百的不利,但是它丰富快地让您精通幕后爆发的事情的特别轻松的概述。

测量试验大家的职业 
Apache 正在事业吗? 
假定它工作正常,当你用Netscape连接服务器时,你将看到一幅类似于这幅显示屏捕获的显示屏。这是基本上 是Apache缺省安装的页面。 

既然大家对我们正在筹划达到的指标有了叁个很基本的打听,让我们继续设置软件吧。

注意:你能够用域名或机器实际的IP地址与服务器连接。检查那二种景况,确认保障整个事业例行。 

准备

  
PHP扶助正在干活呢?? 
近年来将测量试验PHP协理……成立一个文本(名字为:test.php 卡塔尔(قطر‎,它有下列音讯。文件要求放在文书档案根路线下,它应当缺省设置为/usr/local/apache/htdocs。注意那正视于大家之前选用的前缀,但是,那可在 httpd.conf中退换。设置多少个就要另一篇小说加少,请当心,因为它将涉嫌安装Apache和它的下令的有的很基本的选项。 
test.php 文件 
phpinfo(); 
?> 

Apache (Web服务器)-
Mod_SSL (安全服务器层卡塔尔国-
OpenSSL (SSL工具箱)-
PHP (脚本语言State of Qatar-
MySQL (SQL数据库服务器 State of Qatar-

它将体现有关服务器、php和境况的音讯。上面是出口页面包车型客车顶上部分的荧屏抓取。 

下载全数(tar文件卡塔尔国源代码到三个暂且目录下。有限匡助你把他们坐落于有许多空中的地点……你应当以root身份下载他们以制止权限难点。

相当帅吧,PHP起功能了。 
SSL 选用正在干活啊?? 
好了,未来大家筹划测验SSL了。首先结束服务器,并以启用SSL的选项重启它。 
# /usr/local/apache/bin/apachectl stop 
# /usr/local/apache/bin/apachectl startssl 
测验它是或不是专门的学问:通过用贰个Netscape与服务器连接並且选用https协议,即: 或 ,也能够再试一下你的服务器的 ip地址,即:和 。 
一旦它起效果了,服务器将把证件发送到浏览器以树立贰个汉中连接。那将让浏览器提醒您采纳自身签字的注明。,如果它是源于VeriSign或Thawte的一张证书,那么浏览器将不晋升您,因为证书来自七个可靠的证书授权机构(CA卡塔尔。在大家的景况中,大家成立并签署我们和好的证书……大家不想立马买五个。首先,咱们想要保险大家能使一切平日。 
您在Netscape少校看到启用了下列选项。那就告知你三个起死回生的接连几天已经确立起来了。 

大家的陈设

PHP和MySQL能协同坐班吧?? 
当今,大家得以分明php能与MySQL一同职业,通过成立三个简约的本子,对“test2”数据库做一些插入和数码删除操作。只是多少个简易的脚本以测验它是还是不是工作了。在另一篇小说中大家将商讨PHP脚本连接多个 MySQL数据库。还记得我们已经创设立了数据库和一张表。大家得以几天前成功它,不过本人接受不。笔者想要再检查三遍root有权力创制立数据库和表,然则,PHP提供了对MySQL的提供,由此笔者能十分轻易地编写代码以创制叁个测验数据库和几何条记下。 
记得大家早前创建了书本数据库。假如您跳过了原先的从头到尾的经过,那有的将不专门的学业。大家创造了有一个“books”表的test2数据库,而且为一本书插入了一条记下。 
本条本子基本上浏览该表并列出全数字段名,它确实相当的轻便。 
$dbuser = “root”; 
$dbhost = “localhost”; 
$dbpass = “password”; 
$dbname = “test2”; 
$dbtble = “books”; 
$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass); 
$column = mysql_list_fields($dbname,$dbtble,$mysql_link); 
for($i=0; $i< mysql_num_fields($column); $i++ ) 

print mysql_field_name($column,$i ).” 
“; 

?> 
八个更复杂的事例将向你演示PHP有个别绝妙的功能。 

大家的陈设是率先安装MySQL服务器并确认保障它专门的职业,然后大家将设置PHP和Mod_SSL,最终大家将设置Apache网址服务器。在我们设置了Apache今后,大家能够测验PHP和Mod_SSL接济是还是不是起效果了。

$dbuser = “root”; 
$dbhost = “localhost”; 
$dbpass = “password”; 
$dbname = “test2”; 
$dbtable = “books”; 
//—— DATABASE CONNECTION ——–// 
$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass); 
$column = mysql_list_fields($dbname,$dbtable,$mysql_link); 
$sql = “SELECT * FROM $dbtable”; 
$result = mysql_db_query($dbname,$sql); 
?> 

MySQL源代码安装(UNIX卡塔尔

while($value = mysql_fetch_array($result)) 

print ” “; 
//This loop goes through the colums and prints 
//each value 
for($i=0; $i< mysql_num_fields($column); $i++ ) 

print ” $value[$i] “; 

print ” 
“; 

mysql_free_result($result); 
mysql_close(); 
?> 

你必需用来实行安装MySQL源代码分发的着力命令是(自叁个没解开“tar”文件State of Qatar:

  
只顾,我们竟能在长久以来文件中而且有HTML和PHP命令。那正是PHP脚本的古怪之处。 
的设置 

因而选拔su成为 root顾客。
$su

近日是设置Apache管理局部的岁月了。由于Apache提供的灵活性,可比较轻便地成功。首先你要求三个DNS服务器把的域名指向web服务器的IP地址。在DNS使用叁个CNAME记录把 your_virtual_domain.com指向服务器的IP。其次你必要改善Apache的安排文件httpd.conf以充实新的设想域名。记住,那只是二个很基本的例证,你有胆略读一下Apache的命令。 
让大家看叁个 httpd.conf 的事例。 
httpd.conf 片断 
#——————————————————–# 
# VIRTUAL HOST SECTION NON-SSL 
#——————————————————–# 
# VirtualHost directive allows you to specify another virtual 
# domain on your server. Most Apache options can be specified 
# within this section. 

直白走入你有tar文件的目录。(使用三个一时目录。这里运用 /tmp/download/

#cd /tmp/download/

# Mail to this address on errors 
ServerAdmin 
# Where documents are kept in the virtual domain 
# this is an absolute path. So you may want to put 
# in a location where the owner can get to it. 
DocumentRoot /home/vhosts/domain1.com/www/ 
# Since we will use PHP to create basically 
# all our file we put a directive to the Index file. 
DirectoryIndex index.php 
# Name of the server 
ServerName 
# Log files Relative to ServerRoot option 
ErrorLog logs/domain1.com-error_log 
TransferLog logs/domain1.com-access_log 
RefererLog logs/domain1.com-referer_log 
AgentLog logs/domain1.com-agent_log 
# Use CGI scripts in this domain. In the next case you 
# can see that it does not have CGI scripts. Please 
# read up on the security issues relating to CGI-scripting. 
ScriptAlias /cgi-bin/ /var/www/cgi-bin/domain1.com/ 
AddHandler cgi-script .cgi 
AddHandler cgi-script .pl 

动用下列命令提取文件。
# gunzip -d -c mysql-3.22.xx.tar.gz | tar xvf –

# This is another domain. Note that you could host 
# multiple domains this way… 

变动到新目录,它在领取时期创设。
# cd mysql-3.22.xx

# Mail to this address on errors 
ServerAdmin 
# Where documents are kept in the virtual domain 
DocumentRoot /virtual/domain2.com/www/html 
# Name of the server 
ServerName 
# Log files Relative to ServerRoot option 
ErrorLog logs/domain2.com-error_log 
TransferLog logs/domain2.com-access_log 
RefererLog logs/domain2.com-referer_log 
AgentLog logs/domain2.com-agent_log 
# No CGI”s for this host 
# End: virtual host section 

前天你能够初步“配置”MySQL服务器。你能够用configure内定超多筛选,使用configure
–help查看全部的选项。笔者已经接纳–prefix钦命到安装地方的第一手路子。configure将检查你的编写翻译器和局地任张炭西。假若你有其余不当,你能够检查config.cache文件查看错误。
# configure –prefix=/usr/local/mysq

利用上述例子在你的服务器上创制你本身的。如若你想从Apache网址上阅读每一条指令,它的网站是:。 
  
SSL 

在你完结了布署今后,你能够实施下列命令make真正的二进制代 码。
# make

始建SSL雷同非SSL。除了你必要钦定其余的下令,还或者有,你需求扩张二个DNS记录同一时间修改 httpd.conf。这里有一个例子。 
#——————————————–# 
# SSL Virtual Host Context 
#——————————————–# 

今昔你原来就有备无患好安装具备的二进制代码。运转下列命令在你用configure
–prefix选项钦赐的目录下安装二进制代码。
# make install

# General setup for the virtual host 
DocumentRoot /usr/local/apache/htdocs 
ServerAdmin 
ServerName 
ErrorLoglogs/domain1.com-error_log 
TransferLog logs/domain1.com-transfer_log 
# SSL Engine Switch: 
# Enable/Disable SSL for this virtual host. 
SSLEngine on 
# Server Certificate: 
# Point SSLCertificateFile at a PEM encoded certificate. If 
# the certificate is encrypted, then you will be prompted for a 
# pass phrase. Note that a kill -HUP will prompt again. A test 
# certificate can be generated with `make certificate” under 
# built time. Keep in mind that if you”ve both a RSA and a DSA 
# certificate you can configure both in parallel (to also allow 
# the use of DSA ciphers, etc.) 
# Note that I keep my certificate files located in a central 
# location. You could change this if you are an ISP, or ASP. 
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt 
# Server Private Key: 
# If the key is not combined with the certificate, use this 
# directive to point at the key file. Keep in mind that if 
# you”ve both a RSA and a DSA private key you can configure 
# both in parallel (to also allow the use of DSA ciphers, etc.) 
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key 

在你安装好二进制代码后,今后是成立用于定义权限的mysql表的时候了。
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
# ./safe_mysqld &
# ./mysqladmin -u root password “new-password”

# Per-Server Logging: 
# The home of a custom SSL log file. Use this when you want a 
# compact non-error SSL logfile on a virtual host basis. 
CustomLog /usr/local/apache/logs/ssl_request_log  
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x “%r” %b” 

专心:/usr/local/mysql是笔者选用设置MySQL服务器的目录。你能够通过更改目录选择别的之处。

记住你有不计其数限令能够钦定。大家将在另一篇关于计划Apache的稿子中商量,本文只是三个入门性指南。 
生成证书 
那是何许生成证书的根据的陈说。 
为您的Apache服务器成立三个悍马H2SA私用密钥(被Triple-DES加密並且实行PEM格式化State of Qatar: 
# openssl genrsa -des3 -out server.key 1024 
请在平安的地点备份这么些server.key文件。记住您输入的畅通短语(pass phrase卡塔尔(قطر‎!你能够透过下边包车型大巴一声令下看见那么些兰德逍客SA私用密钥的内部原因。 
# openssl rsa -noout -text -in server.key 
何况你可以为这一个讴歌ZDXSA私用密钥创设三个加密的PEM版本(不推荐),通过下列命令: 
# openssl rsa -in server.key -out server.key.unsecure 
用服务器奇骏SA私用密钥生成一个证件签定诉求(CS奇骏-Certificate Signing Request)(输出将是PEM格式的): 
# openssl req -new -key server.key -out server.csr 
当OpenSSL提醒您“CommonName”时,确定保证您输入了服务器的FQDN(“Fully Qualified Domain Name”卡塔尔(قطر‎ ,即,当你为八个今后用拜谒的网址生成一个CSTiguan时,这里输入””。你可依靠下列命令查看该CS索罗德的内部原因: 
# openssl req -noout -text -in server.csr 
将CS普拉多发到三个CA 
几天前您必须要发送该CSXC60到三个CA以便签定,然后的结果才是可以用于Apache的叁个真的的证件。 
有二种采用: 
第一种,你能够透过二个商业性CA如Verisign 或 Thawte签订证书。那么您日常要将CS中华V贴入三个web表格,支付签订开销并等候签订的证书,然后您能够把它存在七个server.crt文件中。关于商业性CA的越多音讯,请参见下列链接: 
Verisign – 
Thawte Consulting – 
CertiSign Certificadora Digital Ltda. – 
IKS GmbH – 
Uptime Commerce Ltd. – 
BelSign NV/SA – 

你能够经过运维一些简易的测量试验来证实服务器正在专门的学业以担保MySQL正在运维。输出应该临近于下边所示的:BINDIRubicon=/usr/local/mysql/bin。BINDI福特Explorer重视于你在地方的前缀选用的目录。

您和谐的CA 
其次种,你能够使用自个儿的CA并由该CA签订CS瑞虎。你能够创制本人的证实宗旨来签定证书。最简便易行的不二等秘书籍是接受OpenSSL提供的CA.sh或 CA.pl脚本。相比复杂何况是手工业的方法是: 
为您的CA创立一个卡宴SA私用密钥( 被Triple-DES加密同一时候开展PEM格式化的): 
# openssl genrsa -des3 -out ca.key 1024 
请在平安的地点备份那一个ca.key文件。记住您输入的直通短语(pass phrase卡塔尔(قطر‎!你能够因此上面包车型客车命令看见那一个OdysseySA私用密钥的细节。 
# openssl rsa -noout -text -in ca.key 
何况你可感到这么些奥德赛SA私用密钥创设一个加密的PEM版本(不引入),通过下列命令: 
# openssl rsa -in ca.key -out ca.key.unsecure 
使用CA的安德拉SA密钥创造一个自签约的CA证书(X509结构)(输出将是PEN格式的): 
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt 
你能够经过下列命令查看该证件的细节: 
# openssl x509 -noout -text -in ca.crt 
预备四个签字所需的脚本,因为”openssl ca”命令有一点意外的渴求同一时间缺省的OpenSSL配置不容许简单地直接行使”openssl ca”命令,所以一个名字为sign.sh的台本随mod_ssl分发一道揭橥(子目录pkg.contrib/)。 使用该脚本进行具名。 
近年来你能够使那些CA签定服务器的CSENCORE,以便创立用于Apache服务器内部的的确的SSL证书(假定你手头已经有叁个server.csr): 
# ./sign.sh server.csr 
它签订服务器的CSLAND何况结果在二个server.crt文件中。 
当今您有八个文件:server.ket和server.crt。在你的Apache的httpd.conf文件中,如下使用它们: 
SSLCertificateFile /path/to/this/server.crt 
SSLCertificateKeyFile /path/to/this/server.key 
server.csr不再需求了。 

# BINDIR/mysqlshow -p
+—————+
| Databases |
+—————+
| mysql |
+—————+

您也许感兴趣的文章:

  • linux系统中使用openssl实现mysql主从复制
  • 各个不相同的 MySQL 的 SSL
    配置
  • MySQL基于SSL契约举行主从复制的详实际操作作教程
  • 多样差别的 MySQL 的 SSL
    配置
  • mysql通过ssl的主意变通秘钥具体变化步骤
  • mysql show processlist
    展现mysql查询进度
  • 因而mysql show processlist
    命令检查mysql锁的形式
  • processlist命令 查看mysql
    线程
  • apache+mysql+php+ssl服务器之完全安装计策
  • MySQL 使用 SSL
    连接配置详细明白

假定您安装好MySQL,它将电动地开创2个数据库。一个mysql表,它调整在实际的服务器中顾客、主机和
数据库权限;另贰个是三个test数据库,大家能运用test数据库。可是,大家想给你二个快捷而轻巧的MySQL可用的有个别命令行选项的概述。那也将保障root被安装了对DB服务器的全体存取权限,即:root有创建数据库、数据库表等的特许,由此大家将创制一个test2数据库,在那后大家用它举行大家的测验。在你通过命令行步向MySQL前,你将被提示root客商的新口令。记住你从前改造了它。

# mysql -u root -p
mysql> show databases;
+—————-+
| Database |
+—————-+
| mysql |
| test |
+—————-+
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)

当今接收新的数据库使用,并创造一个名称为tst_tbl的新表,
有下列2个字段。字段1是是叁个id字段,允许你了解记录的id。实质上为了简化那只是的三个行号。第一个字段是你三个name字段,存款和储蓄书名消息。那些字段的格式是:字段1(id卡塔尔国是多个尺寸为3的大背头(int卡塔尔(قطر‎,而字段2(name卡塔尔国是四个长度为50的字符(char卡塔尔国字段。为搜索和目录数据,我们钦定id为键码。

mysql> use test2;
Database changed
mysql> CREATE TABLE books ( id int(3) not null
-> auto_increment, name char(50) not null,
-> unique(id), primary key(id));
Query OK, 0 rows affected (0.00 sec)

当今大家用下列命令验证一切准确精确。

mysql> show tables
+———————+
| Tables in test2 |
+———————+
| books |
+———————+
1 row in set (0.00 sec)

mysql> describe books;
+——-+————-+——+——+———-+————————+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+——+———-+————————+
| id | int(3) | | PRI | 0 | auto_increment |
| name | char(50) | | | | |
+——-+————-+——+——+———-+————————+
2 rows in set (0.00 sec)

在意到describe命令基本上“描述”了表的构造。杰出不错啊!

好,该试一些真正有用的SQL命令,插入并从数据库中选用数据,今后把几个记录加到新表中。记住那一个是简约的书名记录,然而若是你获得了SQL丰富的经验,你可以为部分大的电商站点创立确实复杂的数据库。让大家创立2本假想的书的2条记下。第一条记下是自己在今后某天写的一本书的名字-“PHP
4 Newbies”,另一本是一个很有用的Linux书,“Red Hat Linux 6 Server”,
由Mohammed J. Kabir所著。

mysql> INSERT INTO books (name) values(“PHP 4 Newbies”);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO books (name) values(“Red Hat Linux 6 Server”);
Query OK, 1 row affected (0.00 sec)

近年来大家能够检查新记录,发出一条“选取具备”命令

mysql> SELECT * from books;
+—-+———————————-+
| id | name |
+—-+———————————-+
| 1 | PHP for Newbies |
| 2 | Red Hat Linux 6 Server |
+—-+———————————-+
2 rows in set (0.00 sec)

很好,MySQL服务器完全起效果了。大家可以持续出席,可是这时候没什么意思。注意到当您向数据库中插入记录时,你怎么不必钦定id号,那是因为您创立了启用auto_increment选项的id字段。

让自个儿现身说法一下什么样做一个高效删除。那只是令你知道,记住,你可在MySQL的网址上找到所需的关于mysql命令和服务器的有着消息。

mysql> delete from books where id=1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from books;
+—-+———————————–+
| id | name |
+—-+———————————–+
| 2 | Red Hat Linux 6 Server |
+—-+———————————–+
1 row in set (0.00 sec)

好了,退出MySQL,继续设置。你可在成功具有安装还要一切职业经常化后玩MySQL也不迟。

PHP安装(UNIX)

当今设置PHP语言。你下载了新式的beta版,然则你大概必得下载非beta版本。记住beta版本须求GNU
make。

你依旧假定是root,假设不是,su回到root。

PHP必要您早已先行布署好的Apache,以便它能领集会场合需的事物在何地。在后来您安装Apache服务器时,你将会回去这里。校订到你有源代码的目录。

# cd /tmp/DOWNLOAD
# gunzip -c apache_1.3.x.tar.gz | tar xf –
# cd apache_1.3.x
# ./configure
# cd ..

好的,将来您能够初始PHP的安装。提取源代码文件并步向其目录。要是您下载了本子3,在数字和下令上有七个改观,相当的小的变动。

# gunzip -c php-4.0.x.tar.gz | tar xf –
# cd php-4.0.x

假若您正在编写翻译代码,configure将生生世世是你的敌人。:-)因而,configure有众多选项。使用configure
–help鲜明你想要增添哪些。小编只是要求MySQL和LDAP,並且当然Apache。

# ./configure –with-mysql=/usr/local/mysql
–with-xml
–with-apache=../apache_1.3.x
–enable-track-vars
–with-ldap

make并安装二进制代码。

# make
# make install

拷贝ini文件到lib目录。

# cp php.ini-dist /usr/local/lib/php.ini

您能够编写制定PHP文件来安装PHP选项,如你能够由此在您的php.ini文件中插入下列行,增加php的max_execution_time。

max_execution_time = 60;

只顾:php3顾客将采纳php3.ini,而php4客户将使用php.ini文件。

Apache 与 Mod_SSL

该配置并安装mod_ssl和Apache了。对此,你将急需有rsaref-2.0文件。在上搜索“rsaref20.tar.Z”。假令你反感Lycos,你可以接受任何搜索引擎来探索文件。当然独有你在U.S.才须求那么些文件。(管它呢,你也可从别处下载,首先在查找“rsaref20.tar.Z”,好多啊!。)

创办rasref目录,你就要该目录提取文件。注意。这倘使你下载了叁个一时半刻目录,而你就在这里目录。

# mkdir rsaref-2.0
# cd rsaref-2.0
# gzip -d -c ../rsaref20.tar.Z | tar xvf –

这几天布署并协会OpenSSL库。

# cd rsaref-2.0
# cp -rp install/unix local
# cd local
# make
# mv rsaref.a librsaref.a
# cd ../..

设置OpenSSL。记住,你将用它来创立不经常证书和CS本田CR-V文件。–prefix选项钦命主安装目录。

# cd openssl-0.9.x
# ./config -prefix=/usr/local/ssl
-L`pwd`/../rsaref-2.0/local/ rsaref -fPIC

当今make、测验并安装它。

# make
# make test
# make install
# cd ..

我们将计划MOD_SSL模块,然后用Apache配置指定它为三个可装载的模块。

# cd mod_ssl-2.5.x-1.3.x
# ./configure
–with-apache=../apache_1.3.x
# cd ..

当今我们能够把越多的Apache模块加到Apache源代码树中。可选的–enable-shared=ssl选项使得mod_ssl构产生为叁个DSO“libssl.so”。关于在Apache援救DSO的更加多新闻,阅读Apache源代码树中的INSTALL和
htdocs/manual/dso.html文书档案。小编刚毅提议ISP和软件包装维护者为了最灵敏地动用mod_ssl而采取DSO工具,但是注意,DSO不是在有着平台上的Apache都援助。

# cd apache_1.3.x
# SSL_BASE=../openssl-0.9.x
RSA_BASE=../rsaref-2.0/local
./configure –enable-module=ssl
–activate-module=src/modules/php4/libphp4.a
–enable-module=php4 –prefix=/usr/local/apache
–enable-shared=ssl
[…你可投入越多的选项…]

生成Apache,然后生成证书,并安装…

# make

只要您已准确地做到,你将获取相通于以下的消息:

+———————————————————————–+
| Before you install the package you now should prepare the SSL |
| certificate system by running the “make certificate” command. |
| For different situations the following variants are provided: |

| % make certificate TYPE=dummy (dummy self-signed Snake Oil cert) |
| % make certificate TYPE=test (test cert signed by Snake Oil CA) |
| % make certificate TYPE=custom (custom cert signed by own CA) |
| % make certificate TYPE=existing (existing cert) |
| CRT=/path/to/your.crt [KEY=/path/to/your.key] |

| Use TYPE=dummy when you’re a vendor package maintainer, |
| the TYPE=test when you’re an admin but want to do tests only, |
| the TYPE=custom when you’re an admin willing to run a real server |
| and TYPE=existing when you’re an admin who upgrades a server. |
| (The default is TYPE=test) |

| Additionally add ALGO=RSA (default) or ALGO=DSA to select |
| the signature algorithm used for the generated certificate. |

| Use “make certificate VIEW=1” to display the generated data. |
| |www.knowsky.com
| Thanks for using Apache & mod_ssl. Ralf S. Engelschall |
| rse@engelschall.com |
| www.engelschall.com |
+———————————————————————–+

最近你能够创设贰个定制的证书。该选项将唤起输入你的地址、公司、和其它界分事物。关于证书,请参阅本文的末段。

# make certificate TYPE=custom

目前设置Apache…

发表评论

电子邮件地址不会被公开。 必填项已用*标注