Linux下最新版LAMP环境(源码版)搭建详细解读

LAMP的四个字母代表神马,我先解释申明下

L:Linux 我用的Linux版本是 centos 7.0
A:Apache 我用的版本是 httpd-2.4.29
M:MySQL 我使用的版本是 mysql-5.7.20
P:PHP 我使用的版本是 php-7.1.11
Apache MySQL 和 PHP我采用的是源码包的安装方式安装,我们都知道Linux内置了很多牛逼的安装比如yum命令安装和rpm安装,Linux源码安装复杂,神马理由让我们采用源码安装了?不仅仅为了装逼!

在安装软件之前请确保的Linux上有gcc 和 gcc++的编译器 ,如果没有安装的话使用yum命令安装下

 yum -y install gcc
 yum -y install gcc-c++

1.安装Apache2

有些Linux自带Apache2,需要将Apache2 卸载掉,卸载Apache就不是本博客的范畴了,Apache2安装有个小插曲,你需要安装Apache2的两个额外的包


①.Apache2之安装apr 1.6.3

apr的下载地址: http://apr.apache.org/
http://apr.apache.org/download.cgi

这里写图片描述

将其下载到服务区上,为了演示的方便加上需要下载大量的第三方包,我在我服务器上新建了一个文件件,这个文件夹主要是存放各种下载的第三方包的 /hebiao 这个文件夹

这里写图片描述

然后是下载,选择这个源码包

这里写图片描述

使用wget 命令 ,然后解压

[root@localhost hebiao]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.3.tar.gz
[root@localhost hebiao]# tar -zxvf apr-1.6.3.tar.gz

你会看到如下

这里写图片描述

然后执行一下命令 ,注意 –prefix=/usr/local/apr 表示安装目录是/usr/local/apr 后面会大量用到

[root@localhost hebiao]# cd apr-1.6.3/
[root@localhost apr-1.6.3]#./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.3]# make
[root@localhost apr-1.6.3]# make install

②.Apache2之安装 apr-util

apr 和 apr-util在同一个下载页面

这里写图片描述

同样下载 解压 安装

[root@localhost hebiao]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
[root@localhost hebiao]# tar -zxvf apr-util-1.6.1.tar.gz 
[root@localhost hebiao]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]#  ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.6.1]# make

执行make的时候我们发现最后报错了 。。。。

这里写图片描述

这个就扯犊子了 ,应该是缺少了什么 我们执行一个命令 命令接着上面 ,先清除掉make,再安装一个库,就可以安装了

[root@localhost apr-util-1.6.1]# make clean
[root@localhost apr-util-1.6.1]# yum install expat-devel
[root@localhost apr-util-1.6.1]# make 
[root@localhost apr-util-1.6.1]# make install

③.Apache2之安装 pcre

下载地址 http://ftp.exim.llorien.org/pcre/

这里写图片描述

上命令

[root@localhost hebiao]# wget http://ftp.exim.llorien.org/pcre/pcre-8.20.tar.gz
[root@localhost hebiao]# tar -zxvf pcre-8.20.tar.gz 
[root@localhost pcre-8.20]#  ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.20]# make
[root@localhost pcre-8.20]# make install 

④.Apache2之安装 Apache2主程序

下载地址 http://httpd.apache.org/download.cgi#apache24

这里写图片描述

同样 命令如下

[root@localhost hebiao]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.29.tar.gz
[root@localhost hebiao]# tar -zxvf httpd-2.4.29.tar.gz 
[root@localhost hebiao]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]#  ./configure --prefix=/usr/local/apache2 --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@localhost httpd-2.4.29]# make 
[root@localhost httpd-2.4.29]# make install

你的Apache2 就安装好了 。。。 然后就是启动Apache2 了

[root@localhost httpd-2.4.29]# /usr/local/apache2/bin/apachectl start 

但是我们会看到以下信息

这里写图片描述

很显然这个我们是不能忍受的 。。。 我们需要修改下Apache2的配置文件

[root@localhost httpd-2.4.29]# cd /usr/local/apache2/conf/
[root@localhost conf]# vim httpd.conf 

这里写图片描述

这两个端口要保持一致,才可以

这里写图片描述

然后在执行命令

[root@localhost conf]# /usr/local/apache2/bin/apachectl stop 
[root@localhost conf]# /usr/local/apache2/bin/apachectl start 

这里写图片描述

这里写图片描述

无需过多的解释 ,但是如果你的访问不了 ,设置下防火墙 ,centos 7 下

[root@localhost conf]# vim /etc/sysconfig/iptables
[root@localhost conf]# systemctl restart iptables.service

防火墙配置文件修改如下 ,centos7默认只开放22端口,你需要配置 80 和 3306端口 不解释了。

这里写图片描述

到这里,Apache2的配置就完成了 。。。。 接下来我们搞一搞mysql


2.安装MySQL

我们说过,我们使用源码包安装,首先要下载源码包 。。。

下载地址 : https://dev.mysql.com/downloads/mysql/ 下载你自己的版本

这里写图片描述

下载就不演示了 。。。 迅雷挺快的。。

这里写图片描述

安装MySQL之前需要先创建MySQL的一些组和用户

[root@localhost hebiao]# tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 
[root@localhost hebiao]# groupadd mysql
[root@localhost hebiao]# useradd -r -g mysql mysql 
// useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
// useradd -g参数表示把mysql用户添加到mysql用户组中。

我们这里MySQL的默认安装目录是 /usr/local/mysql
我们需要把这个解压之后的MySQL文件夹重命名成 /usr/local/mysql

[root@localhost hebiao]# mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql

这里写图片描述

是的,没错! 是把整个文件夹移动过去的。。。。。 然后新建一个叫data的目录 ,并修改权限
然后执行安装命令

[root@localhost hebiao]# cd /usr/local/mysql/
[root@localhost mysql]# pwd
//  /usr/local/mysql
[root@localhost mysql]# mkdir data
[root@localhost mysql]#  chown -R root . 
// 修改权限 整个mysql文件夹 root用户所有  
[root@localhost mysql]# chown -R mysql data
// 修改 data文件夹的所有者为mysql

这里写图片描述

然后执行安装命令,安装命令如下。。

[root@localhost mysql]# cd bin/
[root@localhost bin]# pwd
//   /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
// 不要问为什么 。。。这是规定 datadir 就是上面建立的data目录 

执行完之后,会得到下面的 如图 。。红色的圈圈表示MySQL第一次登录的随机密码,看到这个说明我们安装成功了

这里写图片描述

安装成功就要启动MySQL了 。。。 但是我们发现我们根本就没有配置过MySQL ,配置文件我们要搞一搞了。 。 命令行接着上面 ,我们需要新建一个 my_default.cnf 的这么一个文件 ,那么里面的内容了?

[root@localhost bin]# cd ../support-files/
[root@localhost support-files]# pwd
// /usr/local/mysql/support-files 
[root@localhost support-files]# ls
//  magic  mysqld_multi.server  mysql-log-rotate  mysql.server
[root@localhost support-files]# touch my-default.cnf
[root@localhost support-files]# ls
// magic  my_default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server
[root@localhost support-files]# vim my_default.cnf 

my_defualt.cnf 的内容 如下面所示

#For advice on how to change settings please see
#http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
#*** DO NOT EDIT THIS FILE. It's a template which will be copied to the
#*** default location during install, and will be replaced if you
#*** upgrade to a newer version of MySQL.

[mysqld]



sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

#一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8


#下面是可选项,要不要都行,如果出现启动错误,则全部注释掉,保留最基本的配置选项,然后尝试添加某些配置项后启动,检测配置项是否有误
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M

max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8

thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6


server_id=1

innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M


innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on

[mysqldump]
quick

max_allowed_packet = 32M

[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192

然后我们还需要配置下MySQL启动相关的东西 ,包括添加到系统服务 和注册开机启动等
并且配置环境变量

[root@localhost support-files]# cp mysql.server /etc/init.d/mysql 
[root@localhost support-files]# chmod +x /etc/init.d/mysql 
// 添加到系统服务 

[root@localhost support-files]# chkconfig --add mysql 
// 添加开机启动 

[root@localhost support-files]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/
[root@localhost support-files]# ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/
[root@localhost support-files]# ln -s /usr/local/mysql/bin/mysqld_safe /usr/local/bin/
/// 添加软连接 

然后我们把软连接加到环境变量中 , 这个不解释了。。 直接上 。。

[root@localhost support-files]# vim /etc/profile
//  PATH=$PATH:/usr/local/mysql:/usr/local/mysql/bin
//  export PATH

这里写图片描述

现在来启动MySQL 和关闭,启动MySQL方式很多种

/etc/init.d/mysql start 或者 serivce mysql start 或者 bin/mysqld_safe&
/etc/init.d/mysql stop 或者 service mysql stop 或者 bin/mysqladmin -uroot -p

[root@localhost support-files]# service mysql  start 
// 启动MySQL  

这里写图片描述

我们发现启动MySQL失败了 。。。 这个时候我们需要删除一个文件 /etc/my.cnf

[root@localhost etc]# mv my.cnf my.cnf.bak
[root@localhost etc]# service mysql  start 
// Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
//  SUCCESS! 
[root@localhost etc]# pwd
// /etc

MySQL启动了 ,我们需要连接进去做一些设置

[root@localhost etc]# mysql -uroot -pG*4wojSwlgZ5
//  mysql -u[用户名] -p[密码,安装的时候随机生成的]

这里写图片描述

然后设置MySQL的一些资料 ,设置用户密码 和远程访问

mysql> SET PASSWORD = PASSWORD('123456'); 
// Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION; 
// Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES ;
// Query OK, 0 rows affected (0.00 sec)
mysql> exit;

到此MySQL的设置已经全部完成了。。。。。。


3.安装libxml2

下载地址: http://xmlsoft.org/sources/

[root@localhost hebiao]# wget http://xmlsoft.org/sources/libxml2-2.7.4.tar.gz
[root@localhost hebiao]# tar -zxvf libxml2-2.7.4.tar.gz
[root@localhost hebiao]# cd libxml2-2.7.4/
[root@localhost libxml2-2.7.4]# ./configure –prefix=/usr/local/libxml2
[root@localhost libxml2-2.7.4]# make
[root@localhost libxml2-2.7.4]# make install


4.安装PHP

PHP的下载地址:http://php.net/get/php-7.1.11.tar.gz/from/a/mirror

这里写图片描述

这里毋庸置疑选择我大天朝

[root@localhost hebiao]# wget http://cn2.php.net/distributions/php-7.1.11.tar.gz
[root@localhost hebiao]# tar -zxvf php-7.1.11.tar.gz
[root@localhost hebiao]# cd php-7.1.11/
[root@localhost php-7.1.11]# pwd
// /hebiao/php-7.1.11
[root@localhost php-7.1.11]# ./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2
[root@localhost php-7.1.11]#  make 
[root@localhost php-7.1.11]# make install 

然后,我们配置下PHP的环境变量

这里写图片描述

[root@localhost php-7.1.11]# vim /etc/profile
[root@localhost php-7.1.11]# source /etc/profile
[root@localhost php-7.1.11]# php -v
// PHP 7.1.11 (cli) (built: Nov  7 2017 15:03:00) ( ZTS )
// Copyright (c) 1997-2017 The PHP Group
// Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

配置Apache2的解析

[root@localhost php-7.1.11]# vim /usr/local/apache2/conf/httpd.conf

这里写图片描述

这里写图片描述

修改之后,需要重启下Apache2 的服务 ,到Apache2的项目目录下新建一个 index.php的文件 ,并且编辑内容

[root@localhost php-7.1.11]# /usr/local/apache2/bin/apachectl stop 
[root@localhost php-7.1.11]# /usr/local/apache2/bin/apachectl start
[root@localhost php-7.1.11]# cd /usr/local/apache2/htdocs/
[root@localhost htdocs]# mv index.html aaa.html 
[root@localhost htdocs]# touch index.php

<?
 phpinfo();

这里写图片描述

到此为止,LAMP的环境搭建已经完成


5.安装PHP的扩展 之 MySQL_PDO

这里写图片描述

PHP没有PDO你敢信 ???? 想都不敢想!!我们编辑下 index.php 文件

<?
try {
    $dsn = "mysql:host-localhost;dbname-tb_user";
    $pdo = new PDO($dsn, "root", "123456");
} catch (PDOException $e) {
    echo "string BBB"."   ".$e->getMessage()."<br/> ";
}

一个简单的PDO链接 。。。
这里写图片描述

提示驱动没有找到。。。。 也就是PDO 模块没有被载入 。。这个需要我们配置下PDO模块,其他模块配置类似

[root@localhost htdocs]# cd /hebiao/php-7.1.11/ext/pdo_mysql/
[root@localhost pdo_mysql]# pwd
//   /hebiao/php-7.1.11/ext/pdo_mysql
[root@localhost pdo_mysql]#  yum install m4 
[root@localhost pdo_mysql]#  yum install autoconf 
/// 需要安装 m4 和 autoconf
[root@localhost pdo_mysql]#  /usr/local/php/bin/phpize 
// Configuring for:
// PHP Api Version:         20160303
// Zend Module Api No:      20160303
// Zend Extension Api No:   320160303

[root@localhost pdo_mysql]# ./configure  --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
[root@localhost pdo_mysql]# make
[root@localhost pdo_mysql]# make install
//  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/

make install 命令之后会生成一个pdo_mysql.so的文件

[root@localhost pdo_mysql]#  find /usr/local/php/ -name pdo_mysql.so
/usr/local/php/lib/php/extensions/no-debug-zts-20160303/pdo_mysql.so

生成这个文件之后 我们需要修改下配置文件 ,但是。。。 我们发现我擦;PHP的配置文件怎么不见了????? 不是传说中的php.ini 吗 ???? 但是看不见。。。。。
这里写图片描述

phpinfo中显示在 /usr/local/php/lib这个目录下,但是 我们找不到 .。。。。。 其实PHP提供了 。。 我们切到PHP的源码目录,将php.ini-production 复制到 /usr/local/php/lib/ 目录下

[root@localhost pdo_mysql]# cd /hebiao/php-7.1.11/
[root@localhost php-7.1.11]# pwd
//  /hebiao/php-7.1.11
[root@localhost php-7.1.11]# cp php.ini-production /usr/local/php/lib/php.ini
[root@localhost php-7.1.11]# ls /usr/local/php/lib/
///  php  php.ini

修改下php.ini的配置 ,将 生成的 pdo_mysql.so文件配置在这里 ,然后重启下Apache2服务
这里写图片描述

[root@localhost lib]# /usr/local/apache2/bin/apachectl stop 
[root@localhost lib]# /usr/local/apache2/bin/apachectl start 

这里写图片描述

不在报PDO异常。。。。。 其他模块导入类似 。。。 到此 整合完毕!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值