实验目的: 搭建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源。
实验(一)
实验目的:搭建Nginx服务
安装的软件:nginx-1.2.0.tar.gz
1.解压软件包
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支持地址重写功能。
安装软件包
3.启动服务
4.本机进行测试
实验(二)
实验目的:搭建MYSQL服务
安装的软件:mysql-5.5.13.tar.gz,cmake-2.8.10.2.tar.gz
由于mysql5.5版本需要用cmake安装,所以要现安装cmake软件包
1.解压cmake软件包
2.对cmake进行配置,编译和安装。
3.查看cmake的版本,如果可以查到说明安装成功。
4.解压mysql软件包
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代表启动以上模块
安装时出现一下错误,解决的方法,提示没有找到curses文件,并且提示要删除CMakeCache.txt文件。
查看系统中有没有curses数据库文件,查看没有curses数据库文件,安装
6.初始化授权库的文件所有者和所属组都是mysql用户
7.创建mysql数据库的主配置文件
启动数据库服务在后台运行,jobs查看后面运行的程序。
8.使用数据库管理员从数据库服务器本机登录(没密码)
9.设置数据库管理员从本机登录的密码
修改数据库的密码
由于每次输入命令时,路径比较长为了方便把把mysql命令所在的路径添加到系统环境变量PATH里
给源码mysql服务编写启动脚本,源码包中提供了启动脚本。
停止mysqld服务,重新启动mysqld服务
设置mysqldd随开机自启动
实验(三)
实验目的:安装源码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的扩展功能包,解压支持哈稀函数库软件包。
2.解压支持安装处理中文各种编码之间的转换软件包,ibiconv-1.13.tar.gz
3.解压支持提供加密功能的库文件的软件包,libmcrypt-2.5.8.tar.gz
4.安装PHP软件包解压
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的支持。
执行脚本
执行脚本后出现以下一系列错误没有找到的库文件,以及解决的方法。
对源码包进行编译和安装,编译时必须加上后面的选项。
出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。
出现以下页面说明PHP安装成功。
测试
1.客户端 是否访问Nginx软件提供的网站服务。
2.客户端能否通过nginx网站服务器访问.php的网页页面,通过测试证件nginx默认不支持.php的网页。
实验(四)
实验目的:nginx能够解释php页面
1.创建fast-cgi服务的主配置文件,在源码包 中有配置文件的模板,只要复制就可以(cgi通用网关接口)。
2.启动fast-cgi服务,在源码包中有启动脚本,只要复制启动脚本就可以,(作用管理php程序)
3.启动服务
4.修改nginx的主配置文件,把自己接收到的访问php文件的请求给本机的9000端口。
让nginx支持fastcgi模块
检测nginx主配置文件是否有错误,重新启动服务。
测试通过nginx服务器访问php代码文件
通过测试说明nginx可以解释php代码,如果想php支持那些功能模块,可以通过以下方法查看
通过网页进行测试查看功能
测试 php 能否连接mysql数据库?
创建一个文件为linkdb.php用来测试是否可以连接mysql数据库。mysql_connect为php连接mysql的内置函数其他的为判断,$linkdb为php的变量。
访问创建的文件来判断是否 可以连接mysql数据库,说明可以连接到mysql数据库。
实验(五)
实验目的:LNMP+Memcached
1.安装memcached的环境包libevent-2.0.21-stable.tar.gz
2.安装memcached软件包 memcached-1.4.5.tar.gz
启动memcached服务
3.安装php连接memcached服务的连接工具,查看php支持那些模块,查看是否有memcache.so模块,memcache.so模块就是php连接memcached服务的连接工具。
添加memcache.so模块,解压软件包memcache-2.2.5.tgz
对源码包进行配置编译和安装--with-php-config=/usr/local/php/bin/php-config指定php配置安装目录,--enable-memcache为启用memcache模块,查看memcache.so模块是否安装成功。
php程序运行时加载memcache.so模块
修改php的主配置文件php.ini,extension_dir指定模块存放的路径extension指定模块的名称。
把管理memcache.so进程的服务重新启动fast-cgi
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指定在网页目录去找网页文件。
5.测试php能否连接memcached存取数据,memcache.so模块有连接命令 和存数据工具和取数据的工具。
编写一个php文件为mem.php用来存放数据和取数据,$memcache=new Memcache为生成一个类的对象,$memcache为对象名,$memcache->connect为 类的方法,$memcache->set,set为存数据,$var=$memcache->get,get为取数据,$var为取出来的值定义一个变量,echo $var为显示这个值。
出现以上界面说明php可以连接memcached存取数据。