实验目的: 搭建LNMP平台

L          N          M           P
Linux   Nginx   MySQL   PHP(解释PHP语言的程序)

实验环境:

LNMP平台的搭建IP地址:192.168.1.254 主机名:localhost

安装软件:lnmp+memcached.zip(nginx-1.2.0.tar.gz,cmake-2.8.10.2.tar.gz, mysql-5.5.13.tar.gz)

安装编译工具:gcc gcc-c++ make 开发工具 搭建YUM源。

wKiom1X3-MbzEQWKAADCvgTExJA815.jpg

wKioL1X3-1uxq77fAAA3Aiu3HRY649.jpg

wKiom1X3-S7jlDSGAABBMyXynZU502.jpg

实验(一)

实验目的:搭建Nginx服务

安装的软件:nginx-1.2.0.tar.gz

1.解压软件包

wKiom1X3-e-xUZQnAABhJMNulGI495.jpg

2.配置源码包, --prefix=/usr/local/nginx
指定nginx安装的目录,--pid-path=/usr/local/nginx/nginx.pid指定pid号安装的位置, --user=www   --group=www
指定所有者和所属组,--with-http_ssl_module指定客户端访问有http功能的模块, --with-http_flv_module指定支持视频格式的模块,--with-http_stub_status_module指定管理用户可以通过web页面查看用户访问公共信息,--with-http_gzip_static_module指定支持gzip格式的模块,--http-client-body-temp-path=/usr/local/nginx/client  --http-proxy-temp-path=/usr/local/nginx/proxy
指定支持代理服务,缓存客户端访问过的数据,指定缓存目录的路径, --http-fastcgi-temp-path=/usr/local/nginx/fcgi  --http-uwsgi-temp-path=/usr/local/nginx/uwsgi  --http-scgi-temp-path=/usr/local/nginx/scg缓存文件存放的路径,--with-pcre支持地址重写功能。

wKioL1X4BHnBQmL_AAKTxktfRuk491.jpg

wKiom1X4BSWTg3aDAAHJUBQbsRo673.jpg

wKioL1X4B3qSecpCAABaJsRAScY702.jpg

安装软件包

wKiom1X4BcGCezqMAABPaSJNBZo781.jpg

3.启动服务

wKiom1X4Boqhi0iNAAE9QSD5l5g917.jpg

4.本机进行测试

wKiom1X4BwyAcyORAAFhq2D00rc478.jpg

实验(二)

实验目的:搭建MYSQL服务

安装的软件:mysql-5.5.13.tar.gz,cmake-2.8.10.2.tar.gz

由于mysql5.5版本需要用cmake安装,所以要现安装cmake软件包

1.解压cmake软件包

wKiom1X4CETBqaQNAAB62bRZLZU781.jpg

wKiom1X4CMuRVSXzAABPCkwDMBI580.jpg

2.对cmake进行配置,编译和安装。

wKiom1X4CRGy_tgsAABwvljGPec965.jpg

wKiom1X4CZaQZmHpAABSeeNDrDo098.jpg

3.查看cmake的版本,如果可以查到说明安装成功。

wKiom1X4Ci2B2M9bAACKAv6tteo962.jpg

4.解压mysql软件包

wKiom1X4B3eSIMGZAABguclSc3Y838.jpg

5.对用cmake对mysql源码包进行配置,/usr/local/cmake/bin/cmake为启动的路径, -DCMAKE_INSTALL_PREFIX=/usr/local/mysql为mysql安装的目录,-DSYSCONFDIR=/etc
为配置文件存放的目录,-DMYSQL_DATADIR=/usr/local/mysql/data为数据库文件存放的目录,-DMYSQL_TCP_PORT=3306为指定的端口,-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock为sock文件存放的目录,-DMYSQL_USER=mysql为mysql的所有者,-DEXTRA_CHARSETS=all支持所有字符集,-DWITH_READLINE=1   -DWITH_SSL=system   -DWITH_EMBEDDED_SERVER=1   -DENABLED_LOCAL_INFILE=1   -DWITH_INNOBASE_STORAGE_ENGINE=1为1代表启动以上模块

wKiom1X4B63T-zDkAAIN3jJ_K5M675.jpg

查看系统中有没有mysql用户

wKiom1X4DdrzPLx2AACyuPoWahw029.jpg

wKiom1X4CzXSgzqLAABP05OkW2M149.jpg

安装时出现一下错误,解决的方法,提示没有找到curses文件,并且提示要删除CMakeCache.txt文件。

wKiom1X4DCPwPREBAAKkFwjQtNw682.jpg

查看系统中有没有curses数据库文件,查看没有curses数据库文件,安装

wKiom1X4DGii1R5gAALrp7CPOV0054.jpg

wKioL1X4D1zjavgmAABdOfPVGGI067.jpg

wKioL1X4EFGTCFtOAABiW6tcVco937.jpg

wKiom1X4DjrRJYT_AABYJToYM90244.jpg

6.初始化授权库的文件所有者和所属组都是mysql用户

wKiom1X4JAqCLlquAABmempASAc529.jpg

wKioL1X4In-x5fINAABxcytxeoY623.jpg

wKioL1X4RP6yGIJHAAGsQP-TDRw641.jpg

7.创建mysql数据库的主配置文件

wKiom1X4PbqCEkXiAAAxGzepTVc609.jpg

启动数据库服务在后台运行,jobs查看后面运行的程序。

wKiom1X4PofT9FJBAABs5nHZ9m0592.jpg

wKiom1X4Q1DyE79yAAJaaktcR4o354.jpg

8.使用数据库管理员从数据库服务器本机登录(没密码)

wKioL1X4RhGTDoffAAKZrlpwO_U971.jpg

9.设置数据库管理员从本机登录的密码

wKiom1X4RJrivJUcAACEqsMcLWI934.jpg

wKioL1X4S-SBLpArAAB7wmZeg8I606.jpg

wKiom1X4SbbSv_q6AAB4Of4KulI893.jpg

修改数据库的密码

wKioL1X4TkygIeALAAB-h6DCFYc822.jpg

由于每次输入命令时,路径比较长为了方便把把mysql命令所在的路径添加到系统环境变量PATH里

wKiom1X4aH7zDcRGAACDIZej_wc326.jpg

wKioL1X4a5Cg9b-xAACpZLynpPI140.jpg

给源码mysql服务编写启动脚本,源码包中提供了启动脚本。

wKioL1X4dCiQudxoAAIdeHV3NmE677.jpg

wKiom1X4ckKBVmH3AABZNAc7t1k491.jpg

停止mysqld服务,重新启动mysqld服务

wKioL1X4dSazxq5xAAKl9vXXMog052.jpg

设置mysqldd随开机自启动

wKiom1X4c0GRxO4QAAEKnqcL0vI716.jpg

实验(三)

实验目的:安装源码PHP

安装的软件: mhash-0.9.9.9.tar.gz, php-5.4.9.tar.gz,libiconv-1.13.tar.gz,libmcrypt-2.5.8.tar.gz

1、安装php的扩展功能包,解压支持哈稀函数库软件包。

wKioL1X5HqjitDbKAABVLSdDxgE802.jpg

wKioL1X5HvWhu3tmAABGih8s88o008.jpg

wKioL1X5HyTim_p4AABU-NQp4KI781.jpg

2.解压支持安装处理中文各种编码之间的转换软件包,ibiconv-1.13.tar.gz

wKioL1X5H57zdBK3AABfG2H8TAc852.jpg

wKiom1X5HZDypw5SAABhFCK5kkI269.jpg

wKioL1X5H_ex0_QYAABsN5j5AAY695.jpg

3.解压支持提供加密功能的库文件的软件包,libmcrypt-2.5.8.tar.gz

wKiom1X5HtuAl5NbAABMmSDiXiI811.jpg

wKioL1X5IT6jD4g5AABSHM-H9EA268.jpg

4.安装PHP软件包解压

wKioL1X4hyaATMB5AABy0_ocSng037.jpg

5.对源码包进行配置,--prefix=/usr/local/php指定安装的目录,--with-config-file-path=/usr/local/php/etc
指定配置文件存放的目录,--with-mysql=/usr/local/mysql支持mysql的安装位置目录,--with-mysqli=/usr/local/mysql/bin/mysql_config 指定mysqli文件目录,优化支持,--with-iconv-dir=/usr/local指定iconv函数,种字符集间的转换,--with-freetype-dir 打开对freetype字体库的支持, --with-jpeg-dir --with-png-dir 打开对图片的支持, --with-zlib 打开zlib库的支持,--with-libxml-dir=/usr --enable-xml 打开libxml2库的支持 --disable-rpath 关闭额外的运行库文件,--enable-bcmath打开图片大小调整,用到zabbix监控的时候用到了这个模块, --with-curl 打开curl浏览工具的支持,--with-curlwrappers 运用curl工具打开url流 --enable-mbstring  多字节,字符串的支持,--with-gd打开gd库的支持,--enable-gd-native-ttf支持TrueType字符串函数库,--with-mhash支持哈稀函数库,--enable-sockets打开 sockets 支持, --with-xmlrpc 打开xml-rpc的c语言,--enable-zip打开对zip的支持。

wKioL1X4kJvQgOSPAANKgKwFsBk383.jpg

执行脚本

wKiom1X6JavgRRipAABQ8XHaxb0799.jpg

执行脚本后出现以下一系列错误没有找到的库文件,以及解决的方法。

wKioL1X6KCqSfm_CAAB2_Er1l5o350.jpg

wKioL1X6KNXQVzcaAAJEWSY0BKY437.jpg

wKiom1X6JxSSqqQ0AACd6wuHNJg916.jpg

wKioL1X6KZ2CWxEvAAHqSwXWklk295.jpg

wKiom1X6J5zjnBd7AABHSgz5m9A245.jpg

wKioL1X6KmaRvxfpAAIMosyCHNI918.jpg

wKiom1X6KGWy4Rk-AAAwm-hPux8950.jpg

wKioL1X6KyvTQgXKAAH7eAD0fuM858.jpg

wKioL1X6K5fAHlgdAAKhDAwddZU188.jpg

wKiom1X6KhrTFXZFAAMyPIGnPq0982.jpg

wKioL1X6LNyjWM7VAAMvT26UiJc610.jpg

对源码包进行编译和安装,编译时必须加上后面的选项。

wKioL1X6LYKQHDfaAABMyfP6Q3g230.jpg

wKiom1X6LaiAawlsAAEoMtCjvpQ252.jpg

出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。

wKioL1X6M1qATsqSAAE2nfyWtWI546.jpg

wKiom1X6MeOAzsEEAAFWPBzDr9Q696.jpg

wKioL1X6NKbwEAFzAABiWEap9WQ334.jpg

出现以下页面说明PHP安装成功。

wKioL1X6NQrR33thAAB2k-BxZws802.jpg

测试

1.客户端 是否访问Nginx软件提供的网站服务。

wKioL1X6NkvhcGepAAJygUHdB7Q214.jpg

2.客户端能否通过nginx网站服务器访问.php的网页页面,通过测试证件nginx默认不支持.php的网页。

wKiom1X6NJqD68bJAAFPi2tEa2w974.jpg

实验(四)

实验目的:nginx能够解释php页面
1.创建fast-cgi服务的主配置文件,在源码包 中有配置文件的模板,只要复制就可以(cgi通用网关接口)。

wKioL1X6OevSvAVJAAD7bpnziPM222.jpg

2.启动fast-cgi服务,在源码包中有启动脚本,只要复制启动脚本就可以,(作用管理php程序)

wKiom1X6OKfiGpQfAADAWUzCSq8372.jpg

wKioL1X6O0jx07tvAAE012Us86Q446.jpg

3.启动服务

wKioL1X6O9_iangBAAEQ2xaWZs8595.jpg

4.修改nginx的主配置文件,把自己接收到的访问php文件的请求给本机的9000端口。

wKiom1X6Oe6QW7f7AABj9t5mwSk730.jpg

wKioL1X6PHXgDifaAAEmfbZt_RM251.jpg

让nginx支持fastcgi模块

wKiom1X6OtmyejzRAABrwlQQpsA467.jpg

wKiom1X6O7_iY2HFAABd8W7lHQQ613.jpg

检测nginx主配置文件是否有错误,重新启动服务。

wKioL1X6PiXC67EkAAHMPI5e4F0935.jpg

测试通过nginx服务器访问php代码文件

wKioL1X6PmnALCa2AACVfbvPhL8054.jpg

通过测试说明nginx可以解释php代码,如果想php支持那些功能模块,可以通过以下方法查看

wKiom1X6PLWwR_SnAADxn2mYud4588.jpg

通过网页进行测试查看功能

wKioL1X6P13Cc4NGAALlEKy20DQ944.jpg



测试 php 能否连接mysql数据库?

创建一个文件为linkdb.php用来测试是否可以连接mysql数据库。mysql_connect为php连接mysql的内置函数其他的为判断,$linkdb为php的变量。

wKiom1X6PkThzwonAAFtzPUPwkk507.jpg

访问创建的文件来判断是否 可以连接mysql数据库,说明可以连接到mysql数据库。

wKiom1X6P_aQwJOLAAB_1vmTDpo969.jpg

实验(五)

实验目的:LNMP+Memcached

1.安装memcached的环境包libevent-2.0.21-stable.tar.gz

wKioL1X6WfDhw485AABqSzhXdLM844.jpg

wKiom1X6V-aDgiWUAABWYlRfNxc837.jpg

wKioL1X6Wj-DJBHwAABjrBS62EQ010.jpg

wKiom1X6WFiSpNnqAABXqn7fJNo354.jpg

2.安装memcached软件包 memcached-1.4.5.tar.gz

wKiom1X6WLPjl2aDAABk9-_huZI751.jpg

wKioL1X6Wwui1dToAABYT6jq_dg843.jpg

wKiom1X6WPTjbVuIAABUR7e_z4M704.jpg

启动memcached服务

wKioL1X6YneSRw7GAAHBYRH9__c843.jpg

3.安装php连接memcached服务的连接工具,查看php支持那些模块,查看是否有memcache.so模块,memcache.so模块就是php连接memcached服务的连接工具。

wKioL1X6XozSRbe7AACEdaivCA4433.jpg

添加memcache.so模块,解压软件包memcache-2.2.5.tgz

wKioL1X6X8fg9j5fAABVh9cdsyM336.jpg

wKioL1X6YOPioqeEAAEFv8K1Xxw928.jpg

对源码包进行配置编译和安装--with-php-config=/usr/local/php/bin/php-config指定php配置安装目录,--enable-memcache为启用memcache模块,查看memcache.so模块是否安装成功。

wKiom1X6XxPytx-EAACeegnT6G4771.jpg

wKioL1X6YbmQiR2IAABVpHHY7HU953.jpg

wKiom1X6X7-gi0gaAADREGMNeSQ135.jpg

wKiom1X6YMrQXJdzAACto4hRDUA891.jpg

php程序运行时加载memcache.so模块

修改php的主配置文件php.ini,extension_dir指定模块存放的路径extension指定模块的名称。

wKiom1X6ZTKSlRFaAADTmjtsags714.jpg

wKioL1X6aELjON3kAADQ7Jb2ZCA522.jpg

wKiom1X6ZqmTPbNAAAB5uVb1hMc725.jpg

把管理memcache.so进程的服务重新启动fast-cgi

wKioL1X6aiORD1dAAAD-IdMNCeg542.jpg

4.让nginx接收到用户的连接请求后,先找本机的memcached服务,

修改nginx的主配置文件,set  $memcached_key  $uri; //set是定义变量的$memcached_key为变量名, $uri为变量的值,uri为nginx的内置变量,memcached_pass  127.0.0.1:11211;//把请求发给memcached服务器,指定memcached服务器的地址和端口,default_type text/html;//为固定网页文件的类型,error_page 404   @fallback; //请求跳转标记,当找不到的时候返回404代码,@fallback指定在网页目录去找网页文件。

wKioL1X6dbDA8D7JAAEPsJ34zaE658.jpg

wKiom1X6cIGRgwAjAAIDbyYrLvQ434.jpg

5.测试php能否连接memcached存取数据,memcache.so模块有连接命令 和存数据工具和取数据的工具。

编写一个php文件为mem.php用来存放数据和取数据,$memcache=new Memcache为生成一个类的对象,$memcache为对象名,$memcache->connect为 类的方法,$memcache->set,set为存数据,$var=$memcache->get,get为取数据,$var为取出来的值定义一个变量,echo $var为显示这个值。

wKioL1X6dkGi0-39AAByjGVg3sg471.jpg

wKiom1X6dzTiiP2PAAGbTYCb4zk292.jpg

wKioL1X6eY6j1hz2AACGBabEP2s375.jpg

出现以上界面说明php可以连接memcached存取数据。