LAMP环境搭建

佐手、 提交于 2019-12-30 23:28:43

LAMP搭建

作者:compy  

日期:20170531

什么是LAMP

L指的是linux系统

A指的是Apache

M指的是Mysql/MariaDB

P指的是PHP/Perl/Python

Apache的工作原理:

Apache本身只处理html静态语言页面,当客户端需要访问php页面的时候,Apache会调用libphp5.so这个模块去工作,这个模块会把php页面转换成html静态页面,让Apache处理,Apache处理过,会返回给客户端

LAMP相关网站

Apache=http://httpd.apache.org/    #httpd主程序包

MySQL=http://dev.mysql.com/downloads/mysql/     # mysql主程序包

PHP=http://php.net/downloads.php      #php主程序包

apr=http://apr.apache.org/       #apr是httpd的依赖包

apr-util=http://apr.apache.org/        #apr-util是httpd的第二个依赖包

apr和apr-util这个两个软件是对后端服务软件进行优化的,

apr-util只是在apr的基础上提供了更多的数据结构和操作系统封装接口而已。

 pcre 是httpd的第三个依赖包 http://pcre.org/    

PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言、R脚本语言,此外,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。

 

LAMP安装

安装前先解决依赖包

# yum -y groupinstall "Development Tools" "Development Libraries"

# yum -y install gcc gcc-c++ openssl-devel

上传安装文件

 

安装apr和apr-util

# tar xf apr-1.5.2.tar.gz -C /usr/local/src/

# tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/

# cd /usr/local/src/apr-1.5.2/

# ./configure --prefix=/usr/local/apr

# make  &&  make install

# cd /usr/local/src/apr-util-1.5.4/

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

# tar xf pcre-8.37.tar.bz2 -C /usr/local/src/

# cd /usr/local/src/pcre-8.37/

# ./configure --prefix=/usr/local/pcre

# make && make install

Apache源码编译

依赖环境安装完成,开始编译安装apache

# tar xvf httpd-2.4.16.tar.bz2 -C /usr/local/src/

# cd /usr/local/src/httpd-2.4.16

# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event

# make && make install

--prefix=/usr/local/apache                      #安装路径

--enable-so                                         #支持动态加载模块

--enable-rewrite                                    #支持网站地址重写

--enable-ssl                                        #支持SSL加密

--with-pcre=/usr/local/pcre                         #pcre路径

--with-apr=/usr/local/apr                           #apr路径

--with-apr-util=/usr/local/apr-util                 #apr-util路径

一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展。

创建Apache运行用户

# useradd -M -s /sbin/nologin apache

修改配置文件改变apache运行身份

# vim /usr/local/apache/conf/httpd.conf 

 

修改为

 

User apache                     #运行用户

Group apache                    #运行组,创建apache的时候已经即时创建了apache这个组

 

默认是root,改为apache

# chown -R apache:apache /usr/local/apache/ 

配置Apache的启动脚本

# cp /usr/local/apache/bin/apachectl  /etc/init.d/apache

编辑启动脚本文件

# vim /etc/init.d/apache

#!/bin/sh

# chkconfig: 2345 64 36            

#这个是启动级别的服务,2345是指那些级别启动,64是开启顺序,应该在network服务的后面,36是关闭顺序,应该在network的前面,这里并不是注释

#默认network的是:2345 10 90

# description: Apache2.4.16 start script            #描述字段,有了这两个字段,就可以用chkconfig命令控制

启动apache服务

# service apache start

# chkconfig apache on #设置开机自启

 

MYSQL源码编译

解决依赖

# yum -y install cmake ncurses-devel     //gcc等相关在编译apache已安装

编译安装MySql

安装之前使用 yum remove mysql确保没有安装MySQL

# yum remove mysql

# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/

# cd /usr/local/src/mysql-5.6.26

创建mysql运行用户

# useradd -M -s /sbin/nologin mysql 

# cmake \

 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

 -DDEFAULT_CHARSET=utf8 \

 -DDEFAULT_COLLATION=utf8_general_ci \

 -DWITH_EXTRA_CHARSETS=all \

 -DWITH_MYISAM_STORAGE_ENGINE=1 \

 -DWITH_INNOBASE_STORAGE_ENGINE=1 \

 -DWITH_MEMORY_STORAGE_ENGINE=1 \

 -DWITH_READLINE=1 \

 -DENABLED_LOCAL_INFILE=1 \

 -DMYSQL_DATADIR=/usr/local/mysql/data \

 -DMYSQL-USER=mysql

参数解释

 

DCMAKE_INSTALL_PREFIX     

#制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置

DMYSQL_UNIX_ADDR                                          

 #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变

DDEFAULT_CHARSET                       

#mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集

DDEFAULT_COLLATION                           

#默认字符校对

DWITH_EXTRA_CHARSETS                  

#制定mysql拓展字符集,默认值也是all支持所有的字符集

DWITH_MYISAM_STORAGE_ENGINE 

DWITH_INNOBASE_STORAGE_ENGINE

DWITH_MEMORY_STORAGE_ENGINE

#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎

DWITH_READLINE                    

#支持readline库

DENABLED_LOCAL_INFILE                    

#允许本地倒入数据,启用加载本地数据

DMYSQL_DATADIR                                

#mysql数据库存放路径

DMYSQL-USER                                    

#运行mysql的用户

结束

 

编译安装

# make && make install

配置mysql

属主属组更改

# chown -R mysql:mysql /usr/local/mysql/

覆盖原配置文件

# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

启动脚本

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

更改启动脚本中指定mysql位置

# vim /etc/init.d/mysqld

basedir=

datadir=

修改为

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

开机启动

# chkconfig mysqld  on

初始化数据库

# /usr/local/mysql/scripts/mysql_install_db \

--defaults-file=/etc/my.cnf  \

--basedir=/usr/local/mysql/ \

--datadir=/usr/local/mysql/data/ \

--user=mysql

初始化看这个下面有无mysql和test等数据库

# ls /usr/local/mysql/data/

ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

这个里面是部分命令,让系统直接调用

# ln -s /usr/local/mysql/bin/* /bin/ 

启动数据库

# servie mysqld  start 

初始化数据库

# mysql_secure_installation

Enter current password for root (enter for none):<–初次运行直接回车

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止

Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车

初始安全设置(设置root密码,123456)

# mysql -uroot -p123456

编译安装配置PHP

解决依赖

# yum install -y libxml2-devel

# tar xf php-5.6.13.tar.bz2 -C  /usr/local/src/

# cd /usr/local/src/php-5.6.13

正式安装

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php --disable-fileinfo

参数解释

--prefix       

#指定安装路径

--with-apxs2    

#用apache的apxs工具将php编译成apache的一个模块

--with-mysql    

#与mysql结合,如果不跟路径,编译出来的版本将是低版本

--with-config-file-path   

#php的主配置文件php.ini路径

disable-fileinfo

# php编译时运行内存的限制

结束

看到下面一段内容,表示configure成功

Thank you for using PHP.

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands

编译安装

# make && make install

php配置文件

# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini 

检测编译安装结果

只有有下面这两个文件(模块),代表我们的apache就可以支持php了

#ls  /usr/local/apache/modules/httpd.exp 

/usr/local/apache/modules/httpd.exp

# ls /usr/local/apache/modules/libphp5.so

/usr/local/apache/modules/libphp5.so

 

配置Apache支持PHP

# vim /usr/local/apache/conf/httpd.conf

 

……

252    <IfModule dir_module>

253       DirectoryIndex index.html index.php           #添加index.php

254    </IfModule>

……

376     AddType application/x-compress .Z

377     AddType application/x-gzip .gz .tgz       

添加下面两行

378     AddType application/x-httpd-php .php      

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

修改完,重启下Apache服务。测试apache支持php

# echo "<?php  phpinfo(); ?>" >> /usr/local/apache/htdocs/index.php

 

然后使用客户端浏览此页面

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!