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异常。。。。。 其他模块导入类似 。。。 到此 整合完毕!!!!!!