php小项目实例试题,lamp小项目实施题目及参考答案

项目实施(如图所示):注web1为172.16.5.1 web2为172.16.5.5

1、Web1上配置NFS服务,导出/www/htdocs以读写方式给Web2访问;(不能给其它主机以访问权限)

# service nfs start 启动nfs

# vim /etc/exports编辑exports添加如下行

/www      172.16.5.5(rw)

2、Web1上配置MySQL-5.5.20,要求:

首先编译安装mysql过程如下:

安装mysql-5.5.19

1、准备数据存放的文件系统

新建一个逻辑卷,并将其挂载至特定目录即可,过程如下:

fdisk /dev/sda 建一个分区,大概2G 即可,类型要是8e的。如 /dev/sda5

# pvcreate /dev/sda5先创建物理卷

# vgcreate myvg /dev/sda5再创建物理卷组

# lvcreate -L 1G -n lv1 /dev/myvg   创建逻辑卷并指定大小为1G,名字为lv1

# mke2fs -j /dev/myvg/lv1格式化

其逻辑卷的挂载目录为/mydata,则# mkdir /mydata

# mount /dev/myvg/lv1 /mydata 如果想开机自启动,则可在/etc/fstab内添加内容。

而后需要创建/mydata/data目录做为mysql数据的存放目录。

# mkdir /mydata/data

这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。

2、新建用户以安全方式运行进程:

# groupadd -r mysql

# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql

# chown -R mysql:mysql /mydata/data

3、安装并初始化mysql-5.5.19

首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.19-linux2.6-i686.tar.gz,其下载位置为ftp://172.16.0.1/pub/Sources/mysql-5.5。

# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local

# cd /usr/local/

# ln -sv mysql-5.5.19-linux2.6-i686  mysql  创建链接

# cd mysql

# chown -R mysql:mysql  .

# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data 初始化mysql

# chown -R root  .

4、为mysql提供主配置文件:

# cd /usr/local/mysql

# cp support-files/my-large.cnf  /etc/my.cnf

# vim /etc/my.cnf

修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:

thread_concurrency = 2

另外还需要添加如下行指定mysql数据文件的存放位置:

datadir = /mydata/data

5、为mysql提供sysv服务脚本:

# cd /usr/local/mysql

# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld

并查看是否有执行权限,若无 则加上执行权限

添加至服务列表:

# chkconfig --add mysqld

# chkconfig mysqld on 实现开机启动

而后就可以启动服务测试使用了(service mysql start)。

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

6、输出mysql的man手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

7、输出mysql的头文件至系统头文件路径/usr/include:

这可以通过简单的创建链接实现:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

8、输出mysql的库文件给系统库查找路径:

# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

而后让系统重新载入系统库:

# ldconfig

若无mysql库文件则:

vim /etc/ld.co.conf.d/mysql.conf

添加/usr/local/mysql/bin

则再次重新载入系统库即可

9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

步骤如下

# Vim /etc/profile

增加:PATH=$PATP:/usr/local/mysql/bin

#source /etc/profile让内核重读一下配置文件,使其立即生效

至此mysql源码编译安装完成

1)新建dzuser用户,使其通过Web1或Web2主机都可以访问此数据库,并且其对discuz数据库中的所有对象有全部访问权限;

GRANT ALL PRIVILEGES ON testdb.* TO dzuser@127.0.0.1 IDENTIGIED BY ‘123456’;

2)删除两个匿名用户,并为所有名称为root的用户设置密码;

DROP USER ‘’@localhost

DROP USER ‘’@stu5.magedu.com;

SET PASSWORD FOR root@localhost=password(‘123456’);

SET PASSWORD FOR root@stu5.magedu.com=password(‘123456’);

SET PASSWORD FOR root@127.0.0.1=password(‘123456’);

3、Web1上编译安装httpd-2.4.1和php-5.3.10,并配置LAMP平台可以正常工作;

编译安装apache

1、解决依赖关系

httpd-2.4.1需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用后一种方式进行。rpm包的下载共需要如下4个软件包:

apr-1.4.6-1.i386.rpm

apr-devel-1.4.6-1.i386.rpm

apr-util-1.4.1-1.i386.rpm

apr-util-devel-1.4.1-1.i386.rpm

下载完成之后,使用“rpm -Uvh”进行升级即可。

另外,httpd-2.4.1编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。

注:编译安装首先确认开发工具已安装 查看是否安装命令:yum grouplist

2、编译安装httpd-2.4.1

首先下载httpd-2.4.1到本地,下载路径为ftp://172.16.0.1/pub/Sources/new_lamp。而后执行如下命令进行编译安装过程:

# tar xf httpd-2.4.1.tar.bz2

# cd httpd-2.4.1

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib

# make && make install

- -prfix=/usr/local/apache默认安装路径 - -sysconfdir=/etc/httpd配置文件的安装路径

- -enable-so启用DSO功能 动态模块的装载能力

make install 之前确认rpm httpd未安装

源代码编译是不提供service服务(我们可以借助rpm包安装httpd-yum install httpd 取出配置文件 cp /etc/rc.d/init.d/httpd ./复制到根目录下,然后卸载httpd - yum remove httpd)

启动apache:

# cd /usr/local/apache/bin/

# ./apachectl start

# netstat –tnlp 查看apache是否启动

3、修改httpd的主配置文件,设置其Pid文件的路径

编辑/etc/httpd/httpd.conf,添加如下行即可:

PidFile  "/var/run/httpd.pid"

查找pid文件方式:find ./ -name “*.pid”

4、提供SysV服务脚本/etc/rc.d/init.d/httpd,此处httpd文件为根目录下复制过来的,内容如下:

Apachectl=/usr/sbin/apachectl 替换成apachectl=/usr/local/apache/bin/apachectl

Httpd=${HTTPD-/usr/sbin/httpd}替换成httpd=/usr/local/apache/bin/httpd

由于我们使用的版本不是apache1.3 所以删除测验是否为1.3版本一项

而后为此脚本赋予执行权限:

# chmod +x /etc/rc.d/init.d/httpd

加入服务列表:

# chkconfig --add httpd

# chkconfig httpd on 设置开机自动启动

接下来就可以启动服务进行测试了。

编译安装php-5.3.10

1、解决依赖关系:

请配置好yum源(可以是本地系统光盘)后执行如下命令:

# yum -y groupinstall "X Software Development"

如果想让编译的php支持mcrypt扩展,此处还需要下载ftp://172.16.0.1/pub/Sources/ngnix目录中的如下两个rpm包并安装之:

libmcrypt-2.5.7-5.el5.i386.rpm

libmcrypt-devel-2.5.7-5.el5.i386.rpm

2、编译安装php-5.3.10

首先下载源码包至本地目录

# tar xf php-5.3.10.tar.bz2

# cd php-5.3.10

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt

# make

# make test (此处可以省略)

# make intall

为php提供配置文件:

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

3、 编辑apache配置文件httpd.conf,以apache支持php

# vim /etc/httpd/httpd.conf

1、添加如下二行

AddType application/x-httpd-php  .php

AddType application/x-httpd-php-source  .phps

2、定位至DirectoryIndex index.html

修改为:

DirectoryIndex  index.php  index.html

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

要求:

1)php能使用mcrypt扩展;

2)Web使用中心主机,其网页文件目录为/www/htdocs;

#mkdir /www/htdocs

# echo "hello world" > /www/htdocs/index.html

# vim /etc/httpd/httpd.conf

修改DcoumentRoot为DcoumentRoot “/www/htdocs”

3)此Web也能基于https协议工作;

#cd /etc/pki/CA

#vim ../tls/openssl.cnf

修改dir  =../../CA 为 dir   =/etc/pki/CA

# (umask077; openssl genrsa 1024 > private/cakey.pem)生成CA的私钥

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem 生成自签证书

依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可

# mkdir newcerts certs crl

# touch index.txt

# echo 01 > serial

# echo 01 > crlnumber

到此CA准备好了

给httpd服务发证:

# cd /etc/httpd/

# (umask 077; openssl genrsa 1024 > httpd.key)web服务私钥

# openssl req -new -key httpd.key -out httpd.csr请求证书

# openssl ca -in httpd.csr -out httpd.crt签署证书

# vim httpd.conf

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so  将这两行注释去掉

把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。

此时基于https的web访问就实现了。

# service httpd restart

# 至此https即可使用

4、Web2上编译安装httpd-2.4.1和php-5.3.10,让其使用Web1的mysql做为数据库服务器,配置LAMP平台可以正常工作,

编译安装apache

1、解决依赖关系

httpd-2.4.1需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用后一种方式进行。rpm包的下载路径为ftp://172.16.0.1/pub/Sources/new_lamp,共需要如下4个软件包:

apr-1.4.6-1.i386.rpm

apr-devel-1.4.6-1.i386.rpm

apr-util-1.4.1-1.i386.rpm

apr-util-devel-1.4.1-1.i386.rpm

下载完成之后,使用“rpm -Uvh”进行升级即可。

另外,httpd-2.4.1编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。

注:编译安装首先确认开发工具已安装 查看是否安装命令:yum grouplist

2、编译安装httpd-2.4.1

首先下载httpd-2.4.1到本地,下载路径为ftp://172.16.0.1/pub/Sources/new_lamp。而后执行如下命令进行编译安装过程:

# tar xf httpd-2.4.1.tar.bz2

# cd httpd-2.4.1

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib

# make && make install

- -prfix=/usr/local/apache默认安装路径 - -sysconfdir=/etc/httpd配置文件的安装路径

- -enable-so启用DSO功能 动态模块的装载能力

make install 之前确认rpm httpd未安装

源代码编译是不提供service服务(我们可以借助rpm包安装httpd-yum install httpd 取出配置文件 cp /etc/rc.d/init.d/httpd ./复制到根目录下,然后卸载httpd - yum remove httpd)

启动apache:

# cd /usr/local/apache/bin/

# ./apachectl start

# netstat –tnlp 查看apache是否启动

3、修改httpd的主配置文件,设置其Pid文件的路径

编辑/etc/httpd/httpd.conf,添加如下行即可:

PidFile  "/var/run/httpd.pid"

查找pid文件方式:find ./ -name “*.pid”

4、提供SysV服务脚本/etc/rc.d/init.d/httpd,此处httpd文件为根目录下复制过来的,内容如下:

Apachectl=/usr/sbin/apachectl 替换成apachectl=/usr/local/apache/bin/apachectl

Httpd=${HTTPD-/usr/sbin/httpd}替换成httpd=/usr/local/apache/bin/httpd

由于我们使用的版本不是apache1.3 所以删除测验是否为1.3版本一项

而后为此脚本赋予执行权限:

# chmod +x /etc/rc.d/init.d/httpd

加入服务列表:

# chkconfig --add httpd

# chkconfig httpd on 设置开机自动启动

接下来就可以启动服务进行测试了。

编译安装php-5.3.10

首先下载源码包至本地目录

# tar xf php-5.3.10.tar.bz2

# cd php-5.3.10

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt

# make

# make test (此处可以省略)

# make intall

为php提供配置文件:

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

3、 编辑apache配置文件httpd.conf,以apache支持php

# vim /etc/httpd/httpd.conf

1、添加如下二行

AddType application/x-httpd-php  .php

AddType application/x-httpd-php-source  .phps

2、定位至DirectoryIndex index.html

修改为:

DirectoryIndex  index.php  index.html

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

要求

1) php能使用mcrypt扩展;

2)挂载Web1上的nfs目录/www/htdocs至本地的/www/htdocs;

mount –t nfs 172.16.5.1:/www/htdocs /mnt

3)Web使用中心主机,其网页文件目录为/www/htdocs;

vim /etc/httpd/httpd.conf

修改DocumentRoot为DocumentRoot "/www/htdocs"

4)此Web也能基于https协议工作;(提示:Web2需要使用发颁发给Web1的证书和Web1的私钥文件。请思考为什么。)

提示:Web2上也需要事先安装mysql,因为php的configure脚本需要用到mysql的头文件等;但Web2的mysql不需要启动;

scp 172.16.5.1:/etc/httpd/httpd.crt /etc/httpd/

scp 172.16.5.1:/etc/httpd/httpd.key /etc/httpd/

scp 172.16.5.1:/etc/httpd/httpd.src /etc/httpd/

5、在Web1的LAMP平台上安装配置discuz-7.2,

安装配置discuz-7.2

把discuz-7.2源码包下载到本地

# cp Discuz_7.2_FULL_SC_GBK.zip /www

# cd /www

# unzip Discuz_7.2_FULL_SC_GBK.zip

# mv upload/*  htdocs/

然后在地址栏输入172.16.5.1/install就成功了

要求:

1)在Web1上安装完成后,此dz论坛也能够通过Web2被正常访问;

2)通过任一台主机登录的用户都能上传的文件或发的帖子等,而且通过另一台主机也可以访问到;

6、在Web1上的/www/phpmyadmin目录中安装phpMyAdmin-3.4.10.1,要求:

1)其能够通过https://web1_ip/dma路径访问到;

2)仅能够通过https协议访问,不能通过http协议访问到此应用;

思考:(1)能不能将phpMyAdmin-3.4.10.1安装到Web2上对Web1上的mysql进行管理?如果能,请实现之;

(2)通过https://www.magedu.com/pma访问phpMyAdmin行不行,为什么?如果期望其可以,如何解决?

在web1上安装phpMyAdmin-3.4.10.1

下载phpMyAdmin-3.4.10.1.tar.gz到本地

# tar xvf phpMyAdmin-3.4.10.1.tar.gz

# cd phpMyAdmin-3.4.10.1

# mkdir /www/htdocs/pma

# mv * /www/htdocs/pma

# cd /www/htdocs/pma

# cp config.sqmple.inc.php config.inc.php

# vim config.inc.php

把$cfg[‘blowfish_secret’]=’’改为$cfg[‘blowfish_secret’]=’asdghawfejdsv’即可。

基于https访问web2的pma

# vim /etc/httpd/httpd.conf

启用mod_ssl:

#LoadModule ssl_module modules/mod_ssl.so 的注释去掉

# cd /etc/pki/tls

# vim openssl.cnf

把dir= ../CA改为 dir = /etc/pki/CA

# cd /etc/pki/CA

# mkdir certs crl newcerts

# touch index.txt serial crlnumber

# echo 01 > serial

# echo 01 > crlnumber

# (umask 077;openssl genrsa 2048 > private/cakey.pem)  生成CA自己的私钥

# openssl req –new –x509 –key private/cakey.pem –out cacert.pem –days 3650 给自己签发证书

依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可

# mkdir /www/htdocs/pma/ssl

# cd /www/htdocs/pma/ssl

# (umask 077;openssl genrsa 1024 > pma.key)  生成pma自己的私钥

# openssl req –new –key pma.key –out pma.csr  证书签署请求

依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可

给pma颁发证书

# openssl ca –in pma.csr –out pma.crt

# vim /etc/httpd/conf.d/ssl.conf

把证书文件路径以及私钥文件路径配置一下

SSLCertificateFile  /www/htdocs/pma/ssl /pma.crt   证书文件路径

SSLCertificatekeyFile  /www/htdocs/pma/ssl /pma.key 私钥文件路径

重启一下httpd服务。

# service httpd restart

再把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。

此时基于https的web访问就实现了。

7、在Web2上的/www/wordpress目录中安装wordpress-3.3.1,要求:

1)其能够通过http://web2_ip/blog访问,或通过https://web2_ip/blog访问;

思考:(1)能不能直接使用http://www.magedu.com/blog访问此博客,为什么?如果期望其可以,如何实现?

下载wordpress-3.3.1.zip到本地

# mv wordpress-3.3.1.zip /www

# cd /www

# mkdir htdocs/blog

# unzip wordpress-3.3.1.zip

# mv wordpress/* htdocs/blog/

# cd htdocs/blog

# cp wp-config-sample.php wp-config.php

# vim wp-config.php

将define('DB_NAME', 'database_name_here')改为define('DB_NAME', 'mysql');

将define('DB_USER', 'username_here');改为 define('DB_USER', 'root');

将define('DB_PASSWORD', 'password_here')改为define('DB_PASSWORD', '123456');

基于https访问web2的blog

# mkdir /www/htdocs/blog/ssl

# cd /www/htdocs/blog/ssl

# (umask 077;openssl genrsa 1024 > blog.key)  生成pma自己的私钥

# openssl req –new –key pma.key –out blog.csr  证书签署请求

依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可

给blog颁发证书

# openssl ca –in blog.csr –out blog.crt

# vim /etc/httpd/conf.d/ssl.conf

把证书文件路径以及私钥文件路径配置一下

SSLCertificateFile  /www/htdocs/blog/ssl /blog.crt   证书文件路径

SSLCertificatekeyFile  /www/htdocs/blog/ssl /blog.key 私钥文件路径

# service httpd restart重启httpd服务

再把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。

此时基于https的web访问就实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值