CentOS6.9编译安装LAMP

LAMP架构

CentOS6.9编译安装LAMP_第1张图片

        L-linux,A-apache,M-mysql或mariadb,P-Python、php或perl

       当客户端请求静态资源如index.html时,web服务器会到本地磁盘查找相应资源;当客户端请求动态资源如index.php时,web服

务器会将请求交给php模块处理,php模块会进行相应运算,如果过程中还需用到数据库中的数据作为运算参数,php模块还会连接

数据库取得相应数据,进行运算,并将运算的结果转换为静态资源由web服务器返回给客户端。

       本文实现了在CentOS6.9操作系统上源码编译安装LAMP,并基于wordpress平台搭建了博客:

环境:

(1)安装有CentOS6.9操作系统的主机

(2)用到的源码包:

apache程序包:httpd-2.4.27.tar.bz2 ,编译 httpd-2.4.27.tar.bz2还需用到apr-1.6.2.tar.gz 、apr-util-1.6.0.tar.gz

数据库程序包:mariadb-5.5.57-linux-x86_64.tar.gz 

php程序包:php-5.6.31.tar.xz           

wordpress程序包:wordpress-4.8.1-zh_CN.tar.gz

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。


1 源码编译安装httpd-2.4

安装开发包组

首先安装编译httpd2.4时依赖的软件包

创建源码存放目录,将实验中用到的源码都放在该目录下

解压apr-1.6.2.tar.gz 


解压apr-util-1.6.0.tar.gz 


解压httpd-2.4.27 

将解压后apr-1.6.2、apr-util-1.6.0.tar.gz

--prefix=/app/httpd24   httpd程序安装路径(--sysconfdir配置文件安装路径未指定,则放在httpd程序安装路径下

--with-included-apr 使用源码编译的apr
--with-mpm=prefork    httpd工作模式为prefork模式

将处理器数量设置为4个

-j 4 4核编译,提高编译速度

make install安装httpd24

yum安装httpd会在/etc/init.d目录下生成httpd服务脚本,将该脚本改一下就可以作为编译安装httpd的服务脚本

httpd服务脚本名为httpd24,即服务名为httpd24

打开服务脚本

apachetl指定了httpd服务专用的管理工具apachetl的路径

httpd指定了httpd程序的路径

pidfile指定了pid文件的路径

服务脚本中的原设置是针对yum安装httpd程序的情况

编译安装httpd2.4时指定了安装路径为/app/httpd24,所以相关配置文件都在/app/httpd24目录下,需要进行修改

修改好服务脚本,并使用chkconfig --add httpd24将http24服务加入控制列表后,就可以使用service命令控制httpd24服务的启动和停止

service httpd24 start 启动httpd24服务

chkconfig httpd24 onhttpd24服务开机自启动

httpd24服务已经监听在80端口

在浏览器输入http://192.168.25.106测试搭建的apache服务器,如图,显示It works!表明apache服务器已正常工作

2 二进制安装mariadb

源码安装是对源码进行编译,编译时可以自定义安装路径;
二进制安装是安装已经过编译的二进制程序包,在编译时已经指定了安装目录,所以在解压安装时就不能随便找一个目录,必须将其安装在编译时指定的目录下。mariadb源码包编译为二进制包时,指定的目录是/usr/local/mysql,即必须将二进制压缩包解压到/usr/local/mysql目录下,此时也就相当于将mariadb安装到了该目录下。也可以将二进制压缩包解压到其他目录下,然后建立到/usr/local/mysql的软链接,这样当机器上有多个mariadb版本时,方便管理,只需修改软链接,而不用增删程序包了。

-C选项指定解压目录


解压后,建立源码包到/usr/local/mysql的软链接


二进制安装mariadb程序包的/usr/local/mysql/bin下有mysql、mysql_secure_installation等二进制程序

若不修改PATH变量,需执行/usr/local/mysql/bin/mysql;若修改PATH变量,只需执行mysql

mysqld程序运行时是以mysql账户的身份运行的,所以需要创建mysql账户。
可以先用getent passwd mysql命令检查系统是否已有mysql账户,若没有,可用以下命令创建:
useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql 
-r表示创建系统用户,-d指定家目录(可以用作数据库文件的存放目录,不是二进制程序包的安装路径/usr/local/mysql,在下面的步骤中会创建数据库文件(即创建数据库)),但系统用户创建时默认不会创建家目录,即使用-d指定了也不会创建,必须加-m选项强制创建,-s指定用户的shell类型,/sbin/nologin类型比较安全
本实验中系统已有mysql账户,其家目录为/var/lib/mysql,因为数据库占用的空间可能越来越大,所以本实验不使用其家目录/var/lib/mysql,在独立分区上创建一个目录/app/mysqld用作数据库文件的存放目录

mysql账户对目录/app/mysqld具有rwx权限,可以通过修改目录/app/mysqld的所有者确保mysql账户的权限

(或者通过加ACL权限的方式

使用/usr/local/mysql/scripts目录下的脚本mysql_install_db创建系统数据库文件(包括mysql数据库和test数据库等),系统数据库文件中保存了一些系统信息。

--datadir=/app/mysqldb指定数据库文件的存放路径

--user=mysql指定创建数据库文件的用户

注意:必须在/usr/local/mysql/下执行该脚本,不能进入scripts目录下,否则会报错

系统数据库mysql、test创建完毕

/usr/local/mysql/support-files/目录下有多个配置文件,适合生产中的不同场景。
建立/etc/mysql目录,并将/support-file下的配置文件拷贝到/etc/mysql/my.cnf(可以覆盖/etc/my.cnf的配置),并进行修改


datadir= /app/mysqldb 指定数据库文件存放的路径
innodb_file_per_table= on当使用innodb引擎时,不采用默认的存储方式(将所有的表都存放在一个大文件中),而是每张表建立一个独立的文件
skip_name_resolve= on 客户端以ip地址访问服务器时,不进行主机名解析,即不把ip翻译为主机名
其他设置默认即可


/usr/local/mysql/support-files/目录下有服务脚本mysql.server,将服务脚本拷贝到/etc/init.d目录下,就可以用service命令控制这个使用二进制方法安装的mysql

service mysqld start启动mysqld服务

启动报错是因为mysql用户对/var/log目录没有权限,但这个目录是公共日志目录,最好不要对该目录设置权限,可以创建文件,对文件加权限


服务启动成功

mysqld已监听在3306端口


数据库刚装好时,存在安全隐患:root账户无密码即可登录;匿名账户可登录等,可以通过运行/usr/local/mysql/bin下的mysql_secure_installation脚本消除安全隐患,该脚本的功能主要有设置root账户的口令、移除匿名账户、禁止root账户远程连接、删除测试数据库、重载特权表

创建数据库wpdb,并授予wpuser用户对wpdb数据库的所有权限,wpuser用户和wpdb数据库用于WordPress搭建博客管理平台。

grant语句表示授权wpuser用户可以从任何主机登录到本数据库服务器(192.168.25.107),登录密码为centos,并且登录后具有对wpdb数据库的所有权限。

3 源码编译安装php(模块方式)


编译php时依赖libmcrypt-devel,该包来自epel源
CentOS6.9编译安装LAMP_第2张图片
配置epel源
安装编译php时依赖的源码包
解压php-5.6.31.tar.xz 
CentOS6.9编译安装LAMP_第3张图片
--with-apxs2=/app/httpd24/bin/apxs 以模块方式编译php,而不是fpm方式
--with-mysql=/usr/local/mysql 支持mysql与php模块以mysql方式连接
-withmysqli=/usr/local/mysql/bin/mysql_confi支持mysql与php模块以mysqli方式连接
4核编译并安装
CentOS6.9编译安装LAMP_第4张图片
源码包下的php.ini-production是生产环境下php的配置文件,需将其放在/etc目录下并改名为php.ini
打开httpd24的配置文件进行修改,以让httpd24识别php模块

添加以下两行,将.php后缀和.phps后缀的文件交给php模块处理
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
CentOS6.9编译安装LAMP_第5张图片
访问http://192.168.25.106时优先访问index.php而不是index.html

重启httpd24,加载/etc/httpd24/httpd.conf


修改网页文件,html代码用于测试静态网页,php代码用于测试php模块,phpinfo函数可以加载当前web服务器的php相关设置


CentOS6.9编译安装LAMP_第6张图片
在浏览器输入http://192.168.25.106,如图,显示It works!和当前web服务器的php相关设置表明php模块已成功加载,搭建的Apache服务器可以响应静态请求和动态请求

CentOS6.9编译安装LAMP_第7张图片
加入php与数据库连接的测试代码 CentOS6.9编译安装LAMP_第8张图片
如图,连接数据库成功
4 配置wordpress

解压wordpress-4.8.1-zh_CN.tar.gz,需将WordPress解压到httpd的网站根目录下,-C指定安装目录



wordpress文件夹改名为/blog

在源码包下有wordpress的配置文件模板wp-config-sample.php,将其改名为wp-config.php

CentOS6.9编译安装LAMP_第9张图片

将WordPress安装到localhost主机数据库服务器的wpdb数据库,安装时使用的用户身份为wpuser,密码为centos,也就是之前创建的wpuser用户和wpdb数据库

CentOS6.9编译安装LAMP_第10张图片

在浏览器输入http://192.168.25.106/blog,出现如图页面,进行最后的配置

CentOS6.9编译安装LAMP_第11张图片

填写站点标题、用户名、密码、邮箱等,此处设置的用户名和密码是博客后台管理员的用户名和密码

CentOS6.9编译安装LAMP_第12张图片

使用刚才设置的用户名、密码登录博客管理后台

CentOS6.9编译安装LAMP_第13张图片

博客管理后台如图所示,可以在该界面进行设置:更换博客风格、上传文章等

CentOS6.9编译安装LAMP_第14张图片

在浏览器输入http://192.168.25.106即可访问搭建的博客

你可能感兴趣的:(CentOS6.9编译安装LAMP)