一、介绍

1、 LAM(M)P:

L:linux

A:apache (httpd)

M:mysql, mariadb

M:memcached 缓存

P:php, perl, python

WEB 资源类型:

静态资源:原始形式与响应内容一致

动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端

Web 相关语言

客户端技术: javascript ,html

服务器端技术:php, jsp,python

2、LAMP的工作原理:

cat /etc/mime.types 查看http默认支持的文件后缀,默认不支持PHP

二、centos 6 编译安装LAMP,php基于FPM模式的应用WordPress

原理:实现LAMP的全过程,基于FPM模式:php以独立服务建立,且实现xcache加速

注意:一定要确保自己在纯净的环境,若有httpd、mysql、php请事先卸载

1、准备各个包,软件+相关的包

mkdir /root/src 准备个目录放包

① 软件包

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

httpd-2.4.28.tar.bz2

mariadb-5.5.57-linux-x86_64.tar.gz

php-5.6.31.tar.xz

wordpress-4.8.1-zh_CN.tar.gz

xcache-3.2.0.tar.gz

② 所依赖的相关包

openssl-devel expat-devel pcre-devel   http所依赖的

bzip2-devel libxml2-devel libmcrypt-devel   php所依赖的,注意:需epel扩展源

2、编译httpd2.4(用方法二)

① 解包解压缩,把3个都放到统一目录httpd-2.4.28下

tar xvf apr-1.6.2.tar.gz

tar xvf apr-util-1.6.0.tar.gz

tar xvf httpd-2.4.28.tar.bz2

mv apr-1.6.2 httpd-2.4.28/srclib/apr

mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util

② 执行脚本

cd /root/src/httpd-2.4.28

./configure --prefix=/app/httpd24 \

--enable-so \

--enable-ssl \

--enable-cgi \

--enable-rewrite \

--with-zlib \

--with-pcre \

--with-included-apr \

--enable-modules=most \

--enable-mpms-shared=all \

--with-mpm=prefork

③ 并行、多线程编译安装

make -j 4 && make install

3、编译安装http 后的设置

① 修改PATH路径,因为是编译安装

vim /etc/profile.d/lamp.sh

PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH 顺便把后边的mysql和php的也设置进去

. /etc/profile.d/lamp.sh   让设置生效

② 设置开机自启

cp /etc/init.d/httpd /etc/init.d/httpd24   拷个服务脚本,没有的话去其他机器拷一个

vim /etc/init.d/httpd24 修改路径

chkconfig --add httpd24 设置开机启动,哪个级别

service httpd24 start 开启服务

4、二进制安装mariadb-5.5.57

(1) 解包解压缩

tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/

(2) 创建mysql用户

① 加硬盘,创建逻辑卷,存放数据库

以为要存放数据库,最好空间越大越好,这里用一个硬盘作为逻辑卷,不够可以加空间

echo '- - -' > /sys/class/scsi_host/host2/scan    同步硬盘,虚拟机才能用,host2不行就host0

② 创建逻辑卷

pvcreate /dev/sdb 创建pv

vgcreate vg_mysqldb /dev/sdb 创建vg

lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb 创建lv

mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /data/mysqldb  文件系统格式化

③ 挂载

mkdir /data/mysqldb -p   创建挂载点,就是数据库存放的地方

vim /etc/fstab   设置开机自动挂载

/dev/vg_mysqldb/lv_mysqldb /data/mysqldb ext4 defaults,acl 0 0

mount -a 挂载

④ 创建用户

useradd -d /data/mysqldb -r -m -s /sbin/nologin mysql

chown mysql /data/mysqldb/

(3) cd /usr/local/ 发现mariadb的目录名字不符合要求

ln -s mariadb-5.5.57-linux-x86_64/ mysql   创建软连接也可以改名

(4) 创建修改配置文件

① 拷贝配置文件

cd /usr/local/mysql/

ls support-files/   包里自带的有配置文件,但地方不对,要放在/etc/mysql/my.cnf

mkdir /etc/mysql

cp support-files/my-huge.cnf /etc/mysql/my.cnf

② 修改配置文件

vim /etc/mysql/my.cnf 修改配置文件

[mysqld]

datadir = /data/mysqldb   //指定总目录,必须的

innodb_file_per_table = on  //让每一个表数据库都是一个文件,方便管理

skip_name_resolve = on   //忽略名字的反向解析,加快速度

(5)执行脚本,创建系统数据库

cd /usr/local/mysql 一定要在这个目录下执行脚本,因为脚本写死了

./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb 执行脚本

完成后就会在/app/mysqldb/ 生成mysql系统数据库

(6)把服务脚本复制过去

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld 设置服务在哪个运行级别,在哪个运行级别开启服务

chkconfig --list mysqld

service mysqld start 失败,看失败原因:缺少日志文件,日志文件须有读写权限

(7)创建日志文件

touch /var/log/mysqld.log

chown mysql /var/log/mysqld.log

service mysqld start 开启成功

(8)运行安全初始化脚本,同上实验

mysql_secure_installation

(9)运行mysql,创建WordPress的数据库和管理员并授权

mysql -uroot -palong(自己设的密码)

MariaDB [(none)]> create database blogdb;

MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;

4、编译安装php-5.6.31

① 解包 tar xvf

② 执行脚本

cd /root/src/php-5.6.31

./configure \

--prefix=/app/php \

--with-mysql=/usr/local/mysql \

--with-openssl \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--enable-fpm \

--with-mcrypt \

--with-config-file-path=/etc/php/ \

--with-config-file-scan-dir=/etc/php.d \

--with-bz2

③ make -j 4 && make install

④ 创建并修改php 的配置文件和服务脚本

cd /root/src/php-5.6.31 在编译源代码的路径

mkdir /etc/php

cp php.ini-production /etc/php/php.ini 复制生产类型的配置文件

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 复制个模板

chmod +x /etc/init.d/php-fpm

⑤ 编辑php配置文件

cd /app/php/etc 在编译源后的路径

cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf

注意:在centos 7 中php-fpm.conf.default 和www.conf.default 这两个文件都需要cp,但centos 6把这两个文件合在php-fpm.conf.default 中了

略:vim /app/php/etc/php-fpm.conf 可以不修改,根据自己想要的设置

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2

pm.max_spare_servers = 5 和pm.start_servers 一致

pid = /app/php/var/run/php-fpm.pid

⑥ 开启php-ftm服务

service php-fpm start

ss -ntl 开启9000端口

chkconfig --add php-fpm

5、修改http的主配置文件,让其支持php

① 取消两行对模块的注释,默认被注释了

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

② 修改下面行

DirectoryIndexindex.phpindex.html

③ 加下面四行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

6、布署wordpress

① 解包解压缩

② 把所有东西移到/app/httpd24/htdocs/

cd /src/wordpress

rm -rf /app/httpd24/htdocs/*

mv wordpress/* /app/httpd24/htdocs/

③ 准备WordPress的配置文件 wp-config.php

cd /app/httpd24/htdocs

cp wp-config-sample.php wp-config.php

vim wp-config.php 修改4行

define('DB_NAME', 'blogdb');

define('DB_USER', 'wpadm');

define('DB_PASSWORD', 'along');

define('DB_HOST', 'localhost');

④ 网页打开,设置,成功

⑤ ab 测试性能

ab -c 10 -n 100 http://192.168.30.111/

7、编译安装xcache

① 解包

tar xvf xcache-3.2.0.tar.gz

② 执行脚本

cd xcache-3.2.0 发现没有configure脚本

yum -y install php-devel

phpize 安装包,执行这个命令,生成configure脚本

./configure --enable-xcache --with-php-config=/app/php/bin/php-config

③ 编译安装

make && make install

④ 修改配置文件

mkdir /etc/php.d/

cp xcache.ini /etc/php.d/

ls /app/php/lib/php/extensions/no-debug-non-zts-20131226/

vim /etc/php.d/xcache.ini 因为是源码编译,xcache不是放在对应路径下,所以需修改

extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so 修改此行

service php-fpm restart

8、测试

① ab 测试性能

ab -c 10 -n 100 http://192.168.30.111/ 确实性能提升很大

② 也可用文件测试

/app/httpd24/htdocs

vim a.php

<?php

phpinfo() 确认xcache 已加载

?>

能看到xcache模块的信息

三、centos 7 编译安装LAMP,php基于模块的应用WordPress

原理:实现LAMP的全过程,php基于FPM模式:php以独立服务建立,且实现xcache加速

注意:一定要确保自己在纯净的环境,若有httpd、mysql、php请事先卸载

1、准备各个包,软件+相关的包

mkdir /root/src 准备个目录放包

① 软件包

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

httpd-2.4.28.tar.bz2

mariadb-10.2.9-linux-x86_64.tar.gz

php-7.1.10.tar.xz

phpMyAdmin-4.0.10.20-all-languages.zip

wordpress-4.8.1-zh_CN.tar.gz

xcache-3.2.0.tar.gz

② 所依赖的相关包

openssl-devel expat-devel pcre-devel http所依赖的

bzip2-devel libxml2-devel libmcrypt-devel php所依赖的,注意:需epel扩展源

yum -y install openssl-devel expat-devel pcre-devel

yum -y install bzip2-devel libxml2-devel libmcrypt-devel

2、编译httpd2.4(用方法一)

① 解包解压缩,3个各自编译安装各自的

apr-1.6.2.tar.bz2

apr-util-1.6.0.tar.bz2

httpd-2.4.28.tar.bz2

② 安装apr-1.6.2.tar.bz2

cd apr-1.6.2

./configure --prefix=/app/apr 执行脚本

make && make install 并行编译安装

③ 安装apr-util-1.6.0.tar.bz2

cd ../apr-util-1.6.0

./configure --prefix=/app/apr-util --with-apr=/app/apr/

make -j 2 && make install

检查是否成功:ls /app/apr-util/

④ 编译安装httpd-2.4

cd ../httpd-2.4.28

./configure --prefix=/app/httpd24 \

--enable-so \

--enable-ssl \

--enable-cgi \

--enable-rewrite \

--with-zlib \

--with-pcre \

--with-apr=/app/apr/ \

--with-apr-util=/app/apr-util/ \

--enable-modules=most \

--enable-mpms-shared=all \

--with-mpm=prefork 执行脚本

⑤ make -j 4 && make install 并行,多线程编译安装

3、编译安装http 后的设置

① 修改PATH路径,因为是编译安装

vim /etc/profile.d/lamp.sh

PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH 顺便把后边的mysql和php的也设置进去

. /etc/profile.d/lamp.sh 让设置生效

② 启动服务

apachectl 启动服务

ss -tnl 查看端口

4、二进制安装mariadb-10.2.8

(1) 解包解压缩

tar xvf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/

(2) 创建mysql用户

useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql

chown mysql /app/mysqldb/

(3) cd /usr/local/ 发现mariadb的目录名字不符合要求

ln -s mariadb-10.2.9-linux-x86_64/ mysql 创建软连接也可以改名

(4) 创建修改配置文件

① 拷贝配置文件

cd /usr/local/mysql/

ls support-files/ 包里自带的有配置文件,但地方不对,要放在/etc/mysql/my.cnf

mkdir /etc/mysql

cp support-files/my-huge.cnf /etc/mysql/my.cnf

② 修改配置文件

vim /etc/mysql/my.cnf 修改配置文件

[mysqld]

datadir = /app/mysqldb //指定总目录,必须的

innodb_file_per_table = on //让每一个表数据库都是一个文件,方便管理

skip_name_resolve = on //忽略名字的反向解析,加快速度

(5)执行脚本,创建系统数据库

cd /usr/local/mysql 一定要在这个目录下执行脚本,因为脚本写死了

./scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb 执行脚本

完成后就会在/app/mysqldb/ 生成mysql系统数据库

(6)把服务脚本复制过去

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld 设置服务在哪个运行级别,在哪个运行级别开启服务

chkconfig --list mysqld

service mysqld start 失败,看失败原因:缺少日志文件,日志文件须有读写权限

(7)创建日志文件

mkdir /var/log/mariadb/

touch /var/log/mariadb/mariadb.log

chown mysql /var/log/mariadb/mariadb.log

service mysqld start 开启成功

(8)运行安全初始化脚本

mysql_secure_installation

(9)运行mysql,创建WordPress的数据库和管理员并授权

mysql -uroot -palong(自己设的密码)

MariaDB [(none)]> create database blogdb;

MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;

5、编译安装php-7.1.10

① 解包 tar xvf

② 执行脚本

cd /root/src/php-7.1.10/

./configure \

--prefix=/app/php \

--enable-mysqlnd \

--with-mysqli=mysqlnd \

--with-openssl \

--with-pdo-mysql=mysqlnd \

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--with-apxs2=/app/httpd24/bin/apxs \ (php基于模块方式)

--with-mcrypt \

--with-config-file-path=/etc \

--with-config-file-scan-dir=/etc/php.d \

--enable-maintainer-zts \

--disable-fileinfo

③ make -j 4 && make install

④ 创建并修改php 的配置文件和服务脚本

cp php.ini-production /etc/php.ini

vim /app/httpd24/conf/httpd.conf

在文件尾部加两行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

修改下面行

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

apachectl stop

apachectl

⑤ 测试

测试php和mariadb连接

vim /app/httpd24/htdocs/index.php

<?php

$mysqli=new mysqli("localhost","root","along");

if(mysqli_connect_errno()){

echo "连接数据库失败!";

$mysqli=null;

exit;

}

echo "连接数据库成功!";

$mysqli->close();

phpinfo();

?>

6、布署phpmyadmin

注意:不要随便下载最新版,因为有的版本不支持PHP有些版本,例:4.7只支持php7.2

1、rz、解压缩,装包

unzip phpMyAdmin-4.0.10.20-all-languages.zip

2、cp -r phpMyAdmin-4.0.10.20-all-languages /app/httpd24/htdocs/pma/ 把文件放到//app/httpd24/htdocs下

网页打开发现确实东西 php-mbstring包

yum -y install php-mbstring

systemctl restart httpd 重启服务

3、在网页上设置数据库

① 登录

② 创建wpdb数据库,一会给WordPress用

③ 创建用户wpuser,

给他对wpdb数据库的全部权限

③ 加下面四行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

7、布署wordpress

① 解包解压缩

② 把所有东西移到/app/httpd24/htdocs/

cd /src/wordpress

mv wordpress/* /app/httpd24/htdocs/

③ 准备WordPress的配置文件 wp-config.php

cd /app/httpd24/htdocs

cp wp-config-sample.php wp-config.php

vim wp-config.php 修改4行

define('DB_NAME', 'wpdb');

define('DB_USER', 'along');

define('DB_PASSWORD', 'along');

define('DB_HOST', '192.168.30.222');

④ 网页打开,设置,成功

⑤ ab 测试性能

ab -c 10 -n 100 http://192.168.30.111/

实验就到这里了~~~

LAMP 实现全过程及wordpress的搭建的更多相关文章

  1. lamp+nginx代理+discuz+wordpress+phpmyadmin搭建

    我们以模拟实际需求的形式来复习.需求如下:1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache和nginx + php2. 同时安装apache和nginx,其中ngi ...

  2. Lamp(linux+apache+mysql+php)环境搭建

    Lamp(linux+apache+mysql+php)环境搭建 .安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sud ...

  3. 爬虫管理平台以及wordpress本地搭建

    爬虫管理平台以及wordpress本地搭建 学习目标: 各爬虫管理平台了解 scrapydweb gerapy crawlab 各爬虫管理平台的本地搭建 Windows下的wordpress搭建 爬虫 ...

  4. 在centos7上实现LAMP的全过程及实现wordpress

    原理 http使用方法一编译安装,php独立服务fpm实现. 软件版本 在本次实验中,我们需要用到的软件版本如下: apr-1.6.2 apr-util-1.6.0 httpd-2.4.28 mari ...

  5. Centos7.2 搭建Lamp服务器以及迁移WordPress个人博客详细过程

    其实自己的博客搭了有段时间了,但是由于自己不太确定是不是一定要用wd的框架,以及实验室公网服务器的不稳定,就一直荒废着. 今天偶然间看到了腾讯云对于学生的优惠活动,毕业之前每月只要8元的云服务器(就算 ...

  6. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)

    1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...

  7. LAMP平台-wordpress的搭建

    LAMP平台-wordpress的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来 ...

  8. lamp+nginx代理+discuz+wordpress+phpmyadmin

    实验课题:搭建LAMP,安装Nginx,作为代理,将MySQL安装在单独的机器,apache负责动态,nginx负责静态 实验环境: 1.VMware Workstation 11 2.设备A:MyS ...

  9. L(kali)A(apache)M(mysql)P(php)环境+wordpress站点搭建

    一:LAMP环境配置 首先LAMP(linux+apache+mysql+php)即为本次搭建网站所需的环境,由于本次使用的debian衍生版kali版本自带lamp,因此只要在服务器上启动相应服务既 ...

随机推荐

  1. Mybatis第四篇【多表连接】

    Mybatis多表连接 我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用<set>..<many-to-one>等标签将其的映射属性关联起来 ...

  2. Coder的好伙伴Github

    网络越来越发达,各式各样的网盘.云存储也走进日常生活,  在老师的指导下,我第一次接触了GitHub. 什么是Github? Github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一 ...

  3. ACM学习之路___HDU 5723(kruskal + dfs)

    Abandoned country Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s) ...

  4. vue+axios 前端实现登录拦截(路由拦截、http拦截)

    一.路由拦截 登录拦截逻辑 第一步:路由拦截 首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录.如果用户已经登录,则顺利进入路由, 否则就进入登录 ...

  5. Redis介绍——Linux环境Redis安装全过程和遇到的问题及解决方案

    一:redis的入门介绍: 首先贴出官网; 英文:https://redis.io/ 中文:http://www.redis.cn/ 1.是什么 --REmote DIctionary Server( ...

  6. 第5章 不要让线程成为脱缰的野马(Keeping your Threads on Leash) ----初始化一个线程

    使用线程的一个常见问题就是如何能够在一个线程开始运行之前,适当地将它初始化.初始化最常见的理由就是为了调整优先权.另一个理由是为了在SMP 系统中设定线程比较喜欢的 CPU.第10 章谈到 MFC 时 ...

  7. 替换应用程序DLL动态库的详细方法步骤 (gts.dll为例)

    在C++ builder编译器IDE软件下 1.View -Project Manageer --找到需要替换的x.dll(gts.dll)对应的x.lib(gts.lib),然后Remove2.Pr ...

  8. js中set和get的用法

    get 语句作为函数绑定在对象的属性上,当访问该属性时调用该函数. set 语法可以将一个函数绑定在当前对象的指定属性上,当那个属性被赋值时,你所绑定的函数就会被调用. eg: var log = [ ...

  9. sqoop使用的问题

    找不到表 17/05/02 18:15:47 ERROR tool.ImportTool: Imported Failed: There is no column found in the targe ...

  10. 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题

    题目: 题目已经说了是最大二分匹配题, 查了一下最大二分匹配题有两种解法, 匈牙利算法和网络流. 看了一下觉得匈牙利算法更好理解, 然后我照着小红书模板打了一遍就过了. 匈牙利算法:先试着把没用过的左 ...