分享

构建LAMP应用平台

 夜猫速读 2022-05-20 发布于湖北

、LAMP应用平台概述;

二、LAMP工作原理;

三、案例:部署LAMP应用平台;

、LAMP应用平台概述:

1.概述:LAMP是目前最成熟的一种企业网站应用模式,可以提供动态web站点应用及开发环境,其构成linux、apache、mysql、php或python或perl等语言,优势:成本低、易于开发、方便易用、安全稳定;

2.网站分类:

  静态:有纯html标签语言编写而成的页面,无论在什么环境,什么身份访问都不会发生变化;

  动态:由网页的编程语言编写,例:java、php、.net、python语言,的动态页面,动态页面是由动态页面和html组成为一个网页页面,可以与数据库进行交互,可以通过动态页面对服务器构成操作;

3.php(超文本预处理语言):是一种服务器端html嵌入式语言,支持windows、linux、unix等多平台;

二、LAMP工作原理:

1.LAMP的处理流程:

  apache:提供web的访问,客户端和服务器之间网页的传输;

  php:提供.php页面的运行环境;

  mysql:提供.php页面或者用户数据存放和写入位置;

2.FastCGI 接口:

  FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇 到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态 脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

3.FastCGI接口与传统php-CGI接口的区别:

  传统CGI程序的性能问题:"PHP解析器会解析php.ini文件,初始化执行环境",就是这里了。标准的CGI对每个请求都会执行这些步骤,所以处理每个时间的时间会比较长。这明显不合理;

  Fastcgi处理请求的方式:首先,Fastcgi会先启一个master,解析配置文件,初始化执行环境,然后再启动多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。这样就避免了重复的劳动,效率自然是高。而且当worker不够用时,master可以根据配置预先启动几个worker等着;当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是fastcgi的对进程的管理。

4.php-fpm管理器:管理调度php-cgi接口进程的管理程序;

三、案例:部署LAMP应用平台;

案例环境:

系统类型

IP地址

主机名

所需软件

Centos 6.5 64bit

192.168.100.150

www.

mhash-0.9.9.9.tar.gz、cmake-2.8.6.tar.gz、mysql-5.5.22.tar.gzphp-5.3.28.tar.gzdiscuz_7.2_full_sc_utf8.zip、phpmyadmin-3.3.10-all-languages.tar.gzhttpd-2.2.17.tar.gz、wordpress-4.4.1-zh_CN.zip         ZendGuardLoader-php-5.3-linux-glibc23-x86_64、

libmcrypt-2.5.8.tar.gz       、ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz、

mcrypt-2.6.8.tar.gz

案例步骤:

Ø安装并配置httpd;

Ø客户端验证访问httpd页面;

Ø安装mysql数据库服务;

Ø配置并且启动mysql数据库;

Ø安装php程序的依赖关系;

Ø安装php程序;

Ø配置并且优化php程序;

Ø发布测试项目一:phpmyadmin;

Ø发布测试项目二:论坛discuz;

Ø发布测试项目三:wordpress博客系统;

Ø安装并配置httpd;

[root@www ~]# rpm -e httpd --nodeps      

[root@www ~]# wget http://archive./dist/httpd/httpd-2.2.17.tar.gz

[root@www ~]# tar zxvf httpd-2.2.17.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/httpd-2.2.17/

[root@www httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi  &&  make  &&make install

[root@www httpd-2.2.17]# ls /usr/local/httpd/   ##安装成功

bin    cgi-bin  error   icons    lib   man     modules

build  conf     htdocs  include  logs  manual

[root@www httpd-2.2.17]# cd

[root@www ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/                 ##优化执行命令的路径

[root@www ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@www ~]# vi /etc/init.d/httpd

1 #!/bin/bash 

2 # chkconfig: 35 85 15     ##在3和5运行级别开机启动,开机启动顺序为85,关机关闭顺序为15

81 $HTTPD -k $ARGV  &&echo "httpd is $ARGV complete."      ##第82行,添加输出信息

:wq

[root@www ~]# chmod +x /etc/init.d/httpd

[root@www ~]# chkconfig --add httpd

[root@www ~]# chkconfig --list httpd

httpd                 0:关闭       1:关闭       2:关闭       3:启用       4:关闭       5:启用       6:关闭

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf                     ##修改主配置文件

:set nu  ##打印出行号

 29 ServerRoot "/usr/local/httpd"

 40 Listen 80

 65 User daemon

 66 Group daemon

 88 ServerAdmin admin@             ##修改管理员的邮箱

 97 ServerName www.:80              ##添加网站的域名

 104 DocumentRoot "/usr/local/httpd/htdocs"

 186 ErrorLog "logs/error_log"

 193 LogLevel warn

 215 CustomLog "logs/access_log" common

:wq

[root@www ~]# cat </usr/local/httpd/htdocs/index.html      

www.

END

[root@www ~]# /etc/init.d/httpd start

httpd is start complete.

[root@www ~]# netstat -utpln |grep httpd

tcp        0      0 :::80                       :::*                        LISTEN      73341/httpd

Ø客户端验证访问httpd页面;

Ø安装mysql数据库服务;

[root@www ~]# yum -y remove mysql mysql-server                       ##卸载mysql的rpm包

[root@www ~]# yum -y install ncurses ncurses-devel

[root@www ~]# tar zxvf /root/cmake-2.8.6.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/cmake-2.8.6

[root@www cmake-2.8.6]# ./configure &&gmake &&gmake install

[root@www cmake-2.8.6]# cd

[root@www ~]# tar zxvf /root/mysql-5.5.22.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/mysql-5.5.22/

[root@www mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc/ &&make &&make install

注解:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   #指定安装目录\

-DDEFAULT_CHARSET=utf8   #指定字符集为utf8 \

-DDEFAULT_COLLATION=utf8_general_ci   ##指定字符校验 \

-DWITH_EXTRA_CHARSETS=all   ##支持额外字符集\

-DSYSCONFDIR=/etc/  ##指定配置文件位置

make &&make install   #编译安装

[root@www mysql-5.5.22]# cd

[root@www ~]# ls  /usr/local/mysql

bin      data  include         lib  mysql-test  scripts  sql-bench

COPYING  docs  INSTALL-BINARY  man  README      share    support-files

Ø配置并且启动mysql数据库;

[root@www ~]# cp -rf /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf                     ##复制主配置文件

[root@www ~]# cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld                     ##复制服务器控制脚本

[root@www ~]# chmod +x /etc/init.d/mysqld

[root@www ~]# chkconfig --add mysqld

[root@www ~]# chkconfig mysqld  on

[root@www ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin'  >>/etc/profile              ##优化mysql的命令

[root@www ~]# source /etc/profile                                     ##执行文件

[root@www ~]# useradd -M -s /sbin/nologin mysql                            ##创建运行mysql服务的用户

[root@www ~]# chown -R mysql:mysql /usr/local/mysql                     ##将mysql的安装目录属主和数组设置为

[root@www ~]# /usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql                     ##初始化mysql服务,会在/usr/local/mysql/data/目录下产生默认的文件,初始化时,必须保证/tmp目录777+t

[root@www ~]# /etc/init.d/mysqld start

[root@www ~]# netstat -utpln |grep mysqld

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      22177/mysqld

[root@www ~]# mysqladmin -u root password '123123'                             ##设置mysql的root管理员密码为

[root@www ~]# mysql -uroot -p123123                ##登录,也可以用-h选项指定服务器的ip地址进行远程登录

quit

Ø安装php程序的依赖关系;

下载 libmcrypt-2.5.8.tar.gz  mhash-0.9.9.9.tar.gz mcrypt-2.6.8.tar.gz php-5.3.28.tar.gz ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz 并且使用xftp上传到服务器中,安装mcrypt等支持扩展库工具,数据加密工具,安装的顺序必须libmcrypt-->mhash-->mcrypt;

[root@www ~]# rpm -e php php-mysql --nodeps

[root@www ~]# tar zxvf /root/libmcrypt-2.5.8.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/libmcrypt-2.5.8/

[root@www libmcrypt-2.5.8]# ./configure &&make &&make install

[root@www libmcrypt-2.5.8]# cd

[root@www ~]# ln -s /usr/local/lib/libmcrypt.* /usr/lib64/

[root@www ~]# tar zxvf /root/mhash-0.9.9.9.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/mhash-0.9.9.9/

[root@www mhash-0.9.9.9]# ./configure &&make &&make install

[root@www mhash-0.9.9.9]# cd

[root@www ~]# ln -s /usr/local/lib/libmhash* /usr/lib64/

[root@www ~]# tar zxvf /root/mcrypt-2.6.8.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/mcrypt-2.6.8/

[root@www mcrypt-2.6.8]# ./configure &&make &&make install

[root@www mcrypt-2.6.8]# cd

[root@www ~]# yum -y install libxml2-devel zlib-devel gd

Ø安装php程序;

[root@www ~]# tar zxvf /root/php-5.3.28.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/php-5.3.28/

[root@www php-5.3.28]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring && make &&make install 

注解:

--prefix=/usr/local/php5                     ##安装位置

--with-mcrypt                     ##加载依赖的扩展工具

--with-apxs2=/usr/local/httpd/bin/apxs                      ##加载apache的连接模块

--with-mysql=/usr/local/mysql/                                    ##指定mysql的安装位置

--with-config-file-path=/usr/local/php5                            ##指定php的主配置文件存放位置

--enable-mbstring                                   ##开启多字符节支持

[root@www php-5.3.28]# cd

[root@www ~]# ls  /usr/local/php5

bin  etc  include  lib  man

Ø配置并且优化php程序;

[root@www ~]# cp /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini

[root@www ~]# sed -i 's/short_open_tag = Off/short_open_tag = On/g' /usr/local/php5/php.ini  #修改配置项支持php标记

[root@www ~]# echo "default_charset = "utf8" " >>/usr/local/php5/php.ini  ##设置默认字符集utf8

[root@www ~]# tar zxvf /root/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /root/   ##添加zend模块,建立在PHP基础上的一个模块,优化代码的方法来提高PHP应用程序的执行速度,优化解析速度

[root@www ~]# cp -rf /root/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php5/lib/php/

[root@www ~]# cat <>/usr/local/php5/php.ini  

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_enable=1  

END

Ø配置httpd服务,使其支持php界面,并且测试php页面;

[root@www ~]# sed -i '310a\AddType application/x-httpd-php .php' /usr/local/httpd/conf/httpd.conf

[root@www ~]# sed -i 's/DirectoryIndex index.html/DirectoryIndex index.html index.php/g' /usr/local/httpd/conf/httpd.conf

[root@www ~]# cat <>/usr/local/httpd/htdocs/index.php

phpinfo();
?>

END

[root@www ~]# /etc/init.d/mysqld restart

[root@www ~]# /etc/init.d/httpd restart

访问测试:

http://www./index.php

Ø发布测试项目一:phpmyadmin;

[root@www ~]# tar zxvf /root/phpmyadmin-3.3.10-all-languages.tar.gz

[root@www ~]# mkdir /usr/local/httpd/htdocs/linuxfan

[root@www ~]# mv /root/phpMyAdmin-3.3.10-all-languages/ /usr/local/httpd/htdocs/linuxfan/pmyadm

 [root@www ~]# cd /usr/local/httpd/htdocs/linuxfan/pmyadm

[root@www pmyadm]# cp config.sample.inc.php config.inc.php

[root@www pmyadm]# cd

[root@www ~]# /etc/init.d/httpd restart

访问测试(登录使用mysql的账户密码):

http://www./linuxfan/pmyadm

Ø发布测试项目二:论坛discuz;

[root@www ~]# mysql -uroot -p123123

mysql> create database bbsdb;

mysql> grant all on bbsdb.* to 'runbbs'@'localhost' identified by '123123';

mysql> flush privileges;

mysql> quit

[root@www ~]# unzip discuz_7.2_full_sc_utf8.zip -d discuz

[root@www ~]# cp -rf discuz/upload/ /usr/local/httpd/htdocs/linuxfan/bbs

[root@www ~]# cd /usr/local/httpd/htdocs/linuxfan/bbs/

[root@www bbs]# chown daemon forumdata/ attachments/ uc_client/data/cache/ templates/ config.inc.php -R

[root@www bbs]# cd

[root@www ~]# /etc/init.d/httpd restart

访问测试:

http://www./linuxfan/bbs/install/

安装时数据库填写localhost

Ø发布测试项目三:wordpress博客系统;

[root@www ~]# mysql -uroot -p123123

mysql> create database wpdb;

mysql> grant all on wpdb.* to 'wpadm'@'localhost' identified by '123123';

mysql> quit                    

[root@www ~]# unzip wordpress-4.4.1-zh_CN.zip

[root@www ~]# cp -rf wordpress /usr/local/httpd/htdocs/linuxfan/

[root@www ~]# cd /usr/local/httpd/htdocs/linuxfan/wordpress/

[root@www wordpress]# cp wp-config-sample.php wp-config.php

[root@www wordpress]# sed -i 's/database_name_here/wpdb/g' wp-config.php

[root@www wordpress]# sed -i 's/username_here/wpadm/g' wp-config.php

[root@www wordpress]# sed -i 's/password_here/123123/g' wp-config.php

 [root@www wordpress]# cd

[root@www ~]# /etc/init.d/httpd restart

访问测试:

http://www./linuxfan/wordpress/

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多