实现lamp框架有两种方案,一是将php作为Apache的一个模块使用,另一个是将php作为一个单独的守护进程,请求静态资源时,由Apache提供服务,请求动态资源时,由Apache通过fastcgi转发给php处理。这两种方式在centos7默认都支持,在不能同时使用,只能使用其中一种方式。
使用yum安装的方式搭建lamp
使用php模块化方式搭建lamp
安装php,mariadb,httpd
1 | $ yum -y install php mariadb httpd |
php安装包携带文件
1 | [root@apache conf.d]#rpm -ql php |
配置php模块
1 | [root@apache conf.d]#egrep -v "^#|^$" /etc/httpd/conf.d/php.conf |
php模块加载文件
1 | [root@apache conf.d]#grep -v "^#" ../conf.modules.d/10-php.conf |
重启httpd后就可以使用php模块了
1 | [root@apache conf.d]#systemctl restart httpd |
生成php测试文件
1 | [root@apache conf.d]#cat /var/www/html/index.php |
此时,在浏览器访问该服务器,就可以看到php信息,说明php模块已经正常工作。
安装php-mysql模块,以使php和mysql可以建立连接
1 | $ yum -y install php-mysql |
生成php-mysql连接测试文件
1 | [root@apache html]#cat conn.php |
此时在浏览器中访问该文件,如果出现OK,则表明php已经可以和mariadb正常连接。
lamp结合第三方工具的应用
lamp+wordpress搭建个人站点
本次实验以/data/blog/目录为站点根目录进行;以A(192.168.34.108)作为lap主机,以(192.168.34.102)作为数据库服务器。
下载WordPress
1 | $ wget https://wordpress.org/latest.tar.gz |
解压文件并将解压后的文件夹放入httpd指定的站点主目录下
1 | $ tar xf latest.tar.gz |
在B服务器创建专用数据库,并授权专有用户进行管理
1 | MariaDB [(none)]> create database wpdb; |
编辑WordPress配置文件指向数据库
1 | [root@apache htdocs]#vi wp-config.php |
之后按步骤创建站点,就可以拥有自己的个人网站了。
php-fpm模式搭建web应用
安装php-fpm、mariadb-server、httpd
1 | $ yum -y install php-fpm mariadb-server httpd |
php-fpm相关配置文件
/etc/php-fpm.conf
/etc/php-fpm.d/* .conf
配置php
修改php-fpm配置文件
1 | [root@apache ~]#vi /etc/php-fpm.d/www.conf |
创建php会话存放目录
1 | [root@apache ~]#mkdir /var/lib/php/session |
启动php服务
1 | [root@apache ~]#systemctl start php-fpm.service |
配置apache
这里以虚拟主机的方式配置
1 | [root@apache /data/blog/htdocs]#vi /etc/httpd/conf.d/blog.conf |
此时,以fastcgi方式运行的lamp架构已经搭建完成
phpMyadmin使用
下载phpMyadmin并解压到站点主目录下。
配置phpMyadmin
1 | [root@apache htdocs]#cp config.sample.inc.php config.inc.php |
安装php-mbstring,php-mysql模块
1 | [root@apache htdocs]#yum -y install php-mbstring php-mysql |
使用编译安装的方式搭建lamp架构
编译安装httpd
安装相关包组
Development Tools #开发相关包组
Server Platform Development #老版本需要安装,7.5已经集成到Development Tools中
pcre-devel #purl扩展的正则表达式
apr-devel #apache portable runtime Apache的可移植环境
apr-util-devel #apr工具
openssl-devel #实现http加密
1 | [root@apache htdocs]#yum -y install pcre-devel apr-devel apr-util-devel openssl-devel |
开始安装httpd,请自行下载如下所示相关软件包
1 | [root@apache tools]#ls |
如果想开启本地帮助页面需要修改配置文件,打开以下两项
1 | $ vi /app/httpd/conf/httpd.conf |
编译安装php(php-7.1.7)
安装相关依赖包
1 | [root@apache php-7.1.18]#yum install libxml2-devel bzip2-devel libmcrypt-devel |
到官方站点下载php源码包之后解压
1 | $ tar tar xf php-7.1.18.tar.bz2 |
编译安装php
1 | $ ./configure --prefix=/app/php \ #安装目录 |
注意:php-7.0以上版本使用–enable-mysqlnd –with-mysqli=mysqlnd ,
原–with-mysql不再支持
配置php
编译安装php后,默认不生成配置文件,需要手动copy一个配置文件到指定位置(/etc)
1 | [root@apache php-7.1.18]#cp php.ini-production /etc/php.ini |
修改httpd配置文件使其支持php,需更改如下三项
1 | $ vi /app/httpd/conf/httpd.conf |
此时httpd和php已经可以正常工作。
生成如下测试文件,在浏览器输入服务器地址,如果出现php信息页面内,说明安装成功。
1 | [root@apache httpd]#cat /app/httpd/htdocs/index.php |
编译安装mariadb
先安装mariadb的相关依赖包
1 | [root@ansible ~]#yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boostdeve |
创建相关用户和数据目录
1 | [root@ansible ~]#uaeradd -r -s /sbin/nologin -d /data/mysql mysql |
到官方网站下载mariadb源码包
1 | [root@ansible ~]#wget -p tools/ https://downloads.mariadb.org/interstitial/mariadb-10.3.11/source/mariadb-10.3.11.tar.gz/from/http%3A//mirrors.neusoft.edu.cn/mariadb/mariadb-10.2.19.tar.gz |
解压源码包
1 | [root@ansible ~]#cd tools/ |
执行编译安装
1 | [root@ansible mriadb-10.2.19]#cmake . \ |
1 | [root@ansible mriadb-10.2.19]#make && make install |
准备环境变量
1 | echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh |
生成数据库文件
1 | [root@ansible ~]#cd /app/mysql |
准备配置文件
1 | [root@ansible mysql]#cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf |
准备启动脚本
1 | [root@ansible mysql]#cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld |
启动服务
1 | [root@ansible mysql]#chkconfig --add mysqld ;service mysqld start |
此时,mariadb编译安装已经完成。
生成php-mysql连接测试文件并测试
1 | $ vi /app/httpd/htdocs/conn.php |
在浏览器输入服务器ip/conn.php即可测试。
以fpm的方式编译安装php
使用fpm编译安装pph时,需要加上–enable-fpm选项,并去掉–enable-maintainer-zts和–with-apxs2=/app/httpd24/bin/apxs。
1 | [root@apache tools]#tar xf php-7.1.18.tar.bz2 |
配置php-fpm(注意:以下路径php代表php的安装路径,php-7.1.18代表php源码包解压后的路径)
1 | [root@apache php]#cd /app/php/etc/ |
采用php-fpm方式结合httpd时,httpd的配置有一定变化,如下
1 | vi /app/httpd/conf/httpd.conf |
对编译安装的php使用xcache加速,php7不可用
到官方网站下载xcache源码包,之后解压进入该目录,以上面安装的php-fpm为例演示。
1 | [root@apache xcache-3.2.0]#/app/php/bin/phpize |