介绍 LAMP指的是协同工作的一整套系统和相关软件,能够静态提供Web站点服务及其应用开发环境 L=Linux,A=Apache,M=MySQL,P=PHP; Linux作为LAMP的基础环境;Apache作为LAMP架构的前端;MySQL作为LAMP架构的后端 部署环境 主机名:cong11 IP地址:192.168.1.4 mysql 主机名:cong12 IP地址:192.168.1.6 Linux+Apache+PHP

[root@cong11 ~]# yum -y remove mysql* mariadb* boost-* [root@cong11]# ls [root@cong11 ~]# tar -jxvf boost_1_68_0.tar.bz2 -C /usr/local/src/ [root@cong11 ~]#tar -zxvf mysql-5.7.26.tar.gz -C /usr/local/src/ 安装yum源 [root@cong11~]# vim /etc/yum.repos.d/lihuashi.repo [root@cong11 ~]# vim /etc/yum.repos.d/lihuashi.repo [linux] name=centos7 baseurl=file:///ios # YUM仓库目录 enabled=1 # 是否启用YUM源,1为启用,0禁用 gpgcheck=0 # 不开启秘钥检测 [root@cong11 ~]# mount /dev/cdrom /ios/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@cong11 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-dev # 安装依赖包 安装mysql 创建工作用户 [root@cong11 ~]# useradd -M -s /usr/sbin/nologin -r mysql -M:不创建宿主目录 -s:指定登录时的bash,’/usr/sbin/nologin’表示不允许登录到系统 -r:创建系统用户,会将UID指向499~1000之间 [root@cong11 ~]# id mysql uid=997(mysql) gid=1001(mysql) 组=1001(mysql) 创建工作目录 [root@cong11 ~]# mkdir -p /data/mysql/{data,log} [root@cong11 ~]# chown -R mysql:mysql /data/mysql 编译安装 [root@cong11 ~]# cd /usr/local/src/mysql-5.7.26/ # 切换至MySQL源码包解包目录 [root@cong11 mysql-5.7.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql/data \ -DSYSCONFDIR=/etc
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/root/boost_1_59_ 0各参数解释:

DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql DEFAULT_CHARSET:指定服务器默认字符集,默认latin1 DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF WITH_COMMENT:指定编译备注信息 WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM, MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。 WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎 SYSCONFDIR:初始化参数文件目录 MYSQL_DATADIR:数据文件目录 MYSQL_TCP_PORT:服务端口号,默认3306 MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock [root@cong11 mysql-5.7.26]# echo $? # 查看错误返回状态 [root@cong11 mysql-5.7.26]# make -j 4 && make install 修改mysql目录权限 [root@cong11 mysql-5.7.26]# chown -R mysql:mysql /usr/local/mysql/ 生成my.cnf配置文件 [root@cong11 ~]# mv /etc/my.cnf{,.bak} 创建my.cnf配置文件 [root@cong11 ~]# vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql #mysql安装目录 datadir=/data/mysql/data #mysql数据存放目录 port=3306 #mysql监听端口 socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目录 symbolic-links=0 #关闭mysql的符号链接 character-set-server=utf8 #指定mysql的字符集为utf8 log-error=/data/mysql/log/mysqld.log #指定mysql的错误日志存放路径 pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目录 生成服务启动脚本 [root@cong11 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@cong11 ~]# chmod +x /etc/init.d/mysqld #给脚本添加执行权限 添加mysqlpid开机自启 [root@cong11 ~]# chkconfig --add mysqld #把mysql添加到系统服务 [root@cong11 ~]# chkconfig mysqld on #把mysql添加到开机自启动 [root@cong11 ~]# chkconfig --list mysqld #查看mysql开机自启动状态 如果无法初始化先启动mysql [root@cong11 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql
--basedir=/usr/local/mysql --datadir=/data/mysql/data 启动服务 [root@cong11 ~]# /etc/init.d/mysqld start 添加path路径 [root@cong11 ~]# vim /etc/profile 添加下面2行 在文件的结尾 export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin 使修改生效 [root@cong11 ~]# source /etc/profile 或者 [root@cong11 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/ 修改mysql密码 [root@cong11 ~]# mysqladmin -u root password "123456" 或者登陆到mysql修改密码 [root@cong11 ~]# mysql mysql> set password for 'root'@'localhost'=password('123456'); 登录mysql [root@cong11 ~]# mysql -uroot -p123456 mysql> show databases; 安装apache 安装依赖包 [root@cong12 ~]# yum -y remove httpd [root@cong12 ~]# ls [root@cong12 ~]# tar -zxvf apr-1.5.2.tar.gz -C /usr/local/src/ # 解包 [root@cong12 ~]# cd /usr/local/src/apr-1.5.2/ [root@cong12 ~]# ./configure --prefix=/usr/local/apr # 编译 [root@cong12 ~]# vim configure 29605行 RM='$RM' 修改为 RM='$RM -f' [root@cong12 ~]# make && make install [root@cong12 apr-1.5.2]# echo $? 0解压依赖包apr-util-1.5.4.tar.gz [root@cong12 ~]tar -zxvf apr-util-1.5.4.tar.gz -C /usr/local/src/ [root@cong12 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/bin/apr-1-config [root@cong12 apr-util-1.5.4]# make && make install # 安装 [root@cong12 apr-util-1.5.4]# echo $? 0安装_pcre-8.41.tar.gz 解压 [root@cong12 ~]tar zxf pcre-8.41.tar.gz 预编译,指定安装目录 [root@cong12 pcre-8.41]# ./configure --prefix=/usr/local/pcre [root@cong12 pcre-8.41]# echo $?
0编译安装 [root@cong12 pcre-8.41]make && make install

安装_ httpd-2.4.38 [root@cong12 ~]# tar -zxvf httpd-2.4.38.tar.gz -C /usr/local/src/ [root@cong12 ~]# cd /usr/local/src/httpd-2.4.38/ [root@cong12 ~]# yum -y install openssl-devel # 需要安装关于openssl-devel依赖包 [root@cong12 ~]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --enable-charset-lite --enable-cgi --enable-mpms-shared=all --enable-mpm-with=event--enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ 各参数含义: --prefix=:指定安装目录 --enable-so:支持动态加载模块 --enable-rewrite :支持网站地址重写 --enable-cgi:支持CGI程序脚本 --enable-ssl:支持SSL加密 --with-apr=/usr/local/apr #关联apr --with-apr-util=/usr/local/apr-util #关联apr-util --with-pcre=/usr/local/pcre #关联pcre --enable-charset-lite:支持多语言编码 --enable-mpms-shared=all:安装apache所有运行模式模块(多线程多进程模块) [root@cong12 ~]# echo $? 0[root@cong12 ~]# make && make install

修改主配置文件 [root@cong12 ~]vim /usr/local/httpd/conf/httpd.conf 将ServerName www.example.com:80修改为ServerName localhost:80 查看网站根目录 ls /usr/local/httpd/htdocs/ index.html
设置Apache启动脚本 [root@cong12 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@cong12 ~]# vim /etc/init.d/httpd #添加以下两行,设置chkconfig自启动 #!/bin/sh chkconfig: 2345 11 88 #despriction: web site [root@cong12 ~]chmod +x /etc/init.d/httpd #添加执行权限 [root@cong12 ~]# chkconfig --add httpd #添加为系统服务 [root@cong12 ~]# chkconfig httpd on # 添加开机自启 [root@cong12 ~]# chkconfig --list httpd # 查看 [root@cong12 ~]# systemctl start httpd [root@cong12 ~]# systemctl status httpd httpd.service - SYSV: Apache Server Loaded: loaded (/etc/rc.d/init.d/httpd; bad; vendor preset: disabled) Active: active (running) since 五 2019-07-05 19:55:37 CST; 2s ago [root@cong12 ~]# ln -s /usr/local/httpd/bin/* /usr/bin/ # 创建软链接

安装PHP 安装依赖包 [root@cong12 ~]yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c libmcrypt-devel freetype-devel libjpeg-devel bzip2-devel 上传libmcrypt包 解压编译安装 [root@cong12 ~]# tar zxf libmcrypt-2.5.7.tar.gz [root@cong12 ~]# cd libmcrypt-2.5.7 [root@cong12 libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install [root@cong12 libmcrypt-2.5.7]# echo $? 查看执行命令

安装php 上传软件包 [root@cong12 ~]# tar -zxvf php-5.6.36.tar.gz -C /usr/local/src/ [root@cong12 php-5.6.36]# pwd /usr/local/src/php-5.6.36 [root@cong12 php-5.6.36]# ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/usr/local/php5.6/etc --with-config-file-scan-dir=/usr/local/php5.6/etc/ --with-bz2 --enable-maintainer-zts --with-apxs2=/usr/local/httpd/bin/apxs 相关选项的解释: --prefix=/usr/local/php5.6 //安装位置 --with-mysql=mysqlnd //支持mysql --with-pdo-mysql=mysqlnd //支持pdo模块 --with-mysqli=mysqlnd //支持mysqli模块 注:上面的三选项的作用:数据库与php不在一个服务器上,指定此种方式,安装数据库连接驱动 --with-apxs2 #将php编译为Apache的一个模块进行使用 --enable-mbstring #多字节字符串的支持 --with-curl #支持cURL --with-gd #支持gd库 --enable-fpm #支持构建fpm --with-config-file-path #设置配置文件路径 --with-openssl #支持openssl模块 --enable-fpm #支持fpm模式 --enable-sockets #启用socket支持 --enable-sysvshm #启用系统共享内存支持 --enable-mbstring #多字节字串、像我们的中文就是多字节字串 --with-freetype-dir #支持freetype、就要装freetype-devel、跟字体相关的、字体解析工具 --with-jpeg-dir --with-png-dir 注:上面的二选项的作用:处理jpeg、png图片的、php可以动态生成jpeg图片 --with-zlib #是个压缩库、在互联网传输时用来压缩传输的 --with-libxml-dir=/usr #这个libxml是用来解析xml的、指定/usr下 --enable-xml #支持xml的 --with-mhash #支持mhash --with-mcrypt=/usr/local/libmcrypt #libmcrypt-devel这个程序包所指定的 --with-config-file-path=/usr/local/php5.6/etc #指定配置文件的存放路径的 --with-config-file-scan-dir=/usr/local/php5.6/etc #配置文件扫描路径 --with-bz2 #支持BZip2 --enable-maintainer-zts 为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项 如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

[root@cong12 php-5.6.36]# echo $? 0[root@cong12 php-5.6.36]# make && make install 生成配置文件 [root@cong12 php-5.6.36]# cp php.ini-production /usr/local/php5.6/etc/php.ini

添加Apache模块支持 [root@cong12 ~]#vim /usr/local/httpd/conf/httpd.conf DirectoryIndex index.php index.html #265添加index.php AddType application/x-httpd-php .php .phtml

创建测试页面 [root@cong12 ~]vim /usr/local/httpd/htdocs/index.php #PHP测试页面 <?php
phpinfo();
?>
[root@cong12 ~]# vim /usr/local/httpd/htdocs/test.php #MySQL连接测试页面 <?php
$link=mysql_connect('192.168.1.4','test','123456'); if ($link)echo "connection success......";
mysql_close();

创建mysql测试账号 [root@cong11 ~]#mysql -u root -p123456 mysql> grant all on . to test@'192.168.1.%' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; 重启服务 [root@cong12 ~]#systemctl restart httpd 测试php 192.168.1.6 测试mysql网页192.168.1.6/test.php