lamp指的linux(操作系统)、apachehttp 服务器,mysql(有时也指mariadb,数据库软件) 和php(有时也是指perl或python) 的第一个字母,一般用来建立web应用平台。
请求过程:
php(php: hypertext preprocessor)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入html源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用
(1)配置文件
(2)配置文件格式
directive = value
注释符:
(3)php.ini配置文件设置
max_execution_time = 30 #最长执行时间30s
memory_limit 128 #内存限制,但是实际生产中不够,可调大此值
display——startup_errors off #显示启动时出错信息,建议关闭,如果不关闭,会有可能显示一些重要信息
post_max_size 8m #最大上传数据大小,生产环境中可能临时调大
upload_max_filesize 2m #最大上传文件大小,生产环境中可能要调大。但是要比post_max_size值要小。
max_file_uploads = 20 #同时上传最多文件数
date.timezone = aisa/shanghai #指定时区
short_open_tag = on 开启端标签,如<?phpinfo()>
如果想了解更多请查看http://php.net/manual/zh/ini.core.php
php的加速器:基于php的特殊扩展机制如opcode缓存扩展也可以将opcode缓存于php的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译阶段以提高性能。这些加速器并非真正提高了opcode的运行速度,而仅是通过分析opcode后并将它们重新排列以达到快速执行的目的。
类型
apc (alternative php cache)遵循php license的开源框架,php opcode缓存加速器,目前的版本不适用于php 5.4 项目地址http://pecl.php.net/package/apc
eaccelerator源于turck mmcache,早期的版本包含了一个php encoder和 php loader,目前encoder已经不在支持。项目地址 http://eaccelerator.net/
xcache快速而且稳定的php opcode缓存,经过严格测试且被大量用于生产环境。项目地址:http://xcache.lighttpd.net/,收录epel源
zend optimizer和zend guard loader zend optimizer并非一个opcode加速器,它是由zendtechnologies为php5.2及以前的版本提供的一个免费、闭源的php扩展,其能够运行由zend guard生成的加密的php代码或模糊代码。 而zend guard loader则是专为php5.3提供的类似于zend optimizer功能的扩展。项目地址http://www.zend.com/en/products/guard/runtime-decoders
加速器,它支持装载通过nusphere php encoder编码的php程序文件,并能够实现对常规php文件的 执行加速。项目地址,http://www.nusphere.com/products/phpexpress.htm
我们在构建lamp服务时,需要每一个服务都要测试成功,必须在安装完此服务之后,测试服务是否工作正常;与其他服务是否能测试成功。在安装之前我们必须得知道php是依赖于mysql\mariadb和apache服务的,所有我们必须按前两个服务再安装php。如果先安装php也不是不可,慢慢的拍错,想必一定会成功的。
下面的过程在centos 6 中进行配置。
<code>[root@localhost ~]# yum install -y httpd</code>
<code>[root@localhost ~]# vim /etc/httpd/conf/httpd.conf</code>
<code>[root@localhost ~]# chkconfig httpd on</code><code>[root@localhost ~]# service httpd start</code><code>[root@localhost ~]# ss -tnl</code> #建议启动后查看端口是否启动
<code>[root@localhost ~]# yum install -y mysql-server</code>
<code>[root@localhost ~]# chkconfig mysqld on</code><code>[root@localhost ~]# chkconfig --list mysqld</code>
<code>[root@localhost ~]# service mysqld start</code>
<code>[root@localhost ~]# mysql_secure_installation</code> 详细的内容向看mysql配置http://merit.blog.51cto.com/10757694/1968557
<code>mysql> create database wpdb;</code> #创建数据路
<code>mysql> grant all privileges on wpdb.* to joah@'localhost' identified by '123456';</code>#授权用户对wpdb权限
<code>mysql> grant all privileges on wpdb.* to joah@'127.0.0.1' identified by '123456';</code>#授权用户对wpdb权限
<code>mysql> select user,host,password from mysql.user;</code>
<code>[root@localhost ~]# mysql -ujoah -p</code>
<code>[root@localhost ~]# yum install -y php</code>
php安装相当于添加了一份配置文件在<code>/etc/httpd/conf.d/</code>目录,如果要使其生效重新启动httpd服务即可。
[root@localhost html]# vim index.php
<code>[root@localhost html]# service httpd restart</code> #重启测试是否成功
不过在测试之前需安装一个程序包使其能相互关联作用。
<code>[root@localhost ~]# yum install -y php-mysql</code>
测试方法一:
测试方法二:
编辑<code>index.php</code>文件
此时我们就可以使用这个环境构建一些软件等;下面我们从phpmyadmin和wordpress这两个软件进行说明。
<code>[root@localhost ~]# mv phpmyadmin-4.3.5-all-languages.zip /usr/local/src/</code>#将上传的软件包移到到此目录下方便管理源码编译的安装包
<code>[root@localhost src]# unzip phpmyadmin-4.3.5-all-languages.zip -d /var/www/html/</code>#将此包解压至<code>/var/www/html</code>目录下
<code>[root@localhost html]# ln -sv phpmyadmin-4.3.5-all-languages/ pma</code>#创建软连接
<code>[root@localhost pma]# cp config.sample.inc.php config.inc.php</code>#准备配置文件 <code>[root@localhost pma]# vim config.inc.php</code> #编辑配置文件在下面行输入随机数即可
重启服务测试,测试几次也不行。通过官网上查看原来php此不支持phpmyadim这个版本。
重新下载一个较低版本安装
<code>[root@localhost html]# unzip phpmyadmin-4.0.5-all-languages.zip</code>
<code>[root@localhost html]# ln -sv phpmyadmin-4.0.5-all-languages pem</code>#创建软连接
<code>[root@localhost pem]# cp config.sample.inc.php config.inc.php</code>
<code>[root@localhost pem]# vim config.inc.php</code>
重启服务测试
此时会出现错误提示,安装mbsting包即可
<code>[[root@localhost src]# rpm -ivh php-mbstring-5.3.3-22.el6.x86_64.rpm --force</code>#由于在centos6中属于epel所以需要配置epel源,但是由于本机上不了网,所以这种方式安装
重启httpd服务测试是否成功
成功,接下来就是自己配置过程了 ,此时登录的用户名和密码是数据库授权的用户和密码。
wordpress是使用php语言开发的博客平台,用户可以在支持php和mysql数据库的服务器上架设属于自己的网站。也可以把 wordpress当作一个内容管理系统(cms)来使用。wordpress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用php语言和mysql数据库开发的。用户可以在支持 php 和 mysql数据库的服务器上使用自己的博客。<摘自:百度>
<code>[root@localhost src]# tar xvf wordpress-4.8.tar.gz -c /var/www/html/</code>
方式一:<code>[root@localhost wordpress]# cp wp-config-sample.php wp-config.php</code>
<code>[root@localhost wordpress]# vim wp-config.php</code> #编辑此配置文件
方式二:
<code>[root@localhost wordpress]# setfacl -rm u:apache:rwx wordpress</code>#由于是基于apache用户运行所有给apache用户对此文件rwx权限即可
http://192.168.4.59/wordpress/wp-admin/setup-config.php
然后下面就可以搭建自己的博客啦!
注意在装完数据库之后切记一定要把刚刚授权的权限删除<code>[root@localhost html]# setfacl -b blog/</code>
centos 7搭建lamp环境
上述几部与centos6安装都基本类似,这里就不再累述。
下面我们测试以性能如何:
<code>[root@localhost html]# ab -c 10 -n 100 http://192.168.4.60/blog/</code>
由于之前介绍过php加速器我们来安装一个加速器测试下性能如何?
<code>[root@localhost src]# yum install -y php-devel</code> #安装前需要安装所依赖的包
<code>[root@localhost src]# tar xvf xcache-3.2.0.tar.bz2</code>
<code>[root@localhost/usr/local/src]#yum install -y php-devel</code> #安装此包,提供php扩展为编译
<code>[root@localhost/usr/local/src/xcache-3.2.0]#phpize</code> #生成configure配置文件等
<code>[root@localhost/usr/local/src/xcache-3.2.0]#./configure --enable-xcache --with-php-config=/usr/bin/php-config</code><code>[root@localhost/usr/local/src/xcache-3.2.0]#make && make install</code>
<code>[root@localhost/usr/local/src/xcache-3.2.0]#cp xcache.ini /etc/php.d/</code>#复制配置文件
<code>[root@localhost/usr/local/src/xcache-3.2.0]#systemctl restart httpd.service</code><code>[root@localhost/usr/local/src/xcache-3.2.0]#ab -c 10 -n 100 http://192.168.4.60/wordpress</code>
因此可以看出加速器对于php起到一定的加速作用,这里需要注意在php更高版本不再xcache不再支持。
cgi(common gateway interface,通用网关接口),http服务器与你的货其他机器上的程序进行交谈的工具,其程序一般运行在网络服务器上。cgi可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。
fastcgi像是一个常驻型的cgi,它可以一直执行,只要激活后,不会每次都要花费时间去fork一次。
工作原理
(1)web server启动时载入fastcgi进程管理器(iis isapi或apache module)
(2)fastcgi进程管理器自身初始化,启动多个cgi解释器进程(可见多个php-cgi)并等待来自web server的连接。
(3)当客户端请求到达web server时,fastcgi进程管理器选择并连接到一个cgi解释器。 web server将cgi环境变量和标准输入发送到fastcgi子进程php-cgi。
(4)fastcgi 子进程完成处理后将标准输出和错误信息从同一连接返回web server。当fastcgi子进程关闭连接时, 请求便告处理完成。fastcgi子进程接着等待并处理来自fastcgi进程管理器(运行在web server中)的下一个连接。 在cgi模式中,php-cgi在此便退出了。
php的解析器是php-cgi,只能解析请求,返回结果,不会对进程管理;为了能调用php-cgi进程程序,php-fpm就诞生了。
php-5.3.2之前,默认不支持fpm机制,需要自行打补丁并编译安装;
httpd-2.2:默认不支持fcgi协议,需要自行编译此模块;
为了能在centos 6 中支持此功能,编译安装http和php即可。
httpd-2.4:rpm包默认编译支持了fcgi模块
php-fpm包:专用于将php运行于fpm模式
这里在centos7中对php-fpm配置文件进行讲解
<code>[root@localhost~]#yum install -y php-fpm</code> #直接使用yum源安装即可
主配置文件:
选项介绍:
为了确保运行php-fpm进程的用户对session目录有读写权限
如果想支持远程主机:修改配置文件<code>/etc/php-fpm.d/www.conf</code>
确认httpd程序是否已经加载了<code>proxy_fcgi_module</code>
<code>[root@localhost/etc/php-fpm.d]#httpd -m |grep fcgi</code> #必须加载了这个模块才能支持php-fpm
<code>[root@localhost/etc/httpd/conf.d]#vim fastcgi.conf</code>
<code>[root@localhost/etc/httpd/conf.d]#ss -tnl</code> #查看端口是否开启
下面我们来测试下性能如何?
<code>[root@localhost/etc/httpd/conf.d]#ab -c 10 -n 100 http://192.168.4.60/wordpress/</code>#测试我们在centos 7 搭建的博客
独立运行的php跟模块方式运行的php的性能略有提升。