其他分享
首页 > 其他分享> > 黄金架构LAMP(编译安装)

黄金架构LAMP(编译安装)

作者:互联网

编译安装LAMD

前期准备

最好是新机器
暂停所有服务
[root@lamp-241 ~]# netstat -tnlp|grep httpd
[root@lamp-241 ~]# netstat -tnlp|grep php
[root@lamp-241 ~]# netstat -tnlp|grep mysql
关闭防火墙
[root@lamp-241 ~]# iptables -F
[root@lamp-241 ~]#
[root@lamp-241 ~]# systemctl stop firewalld
[root@lamp-241 ~]# systemctl disable firewalld

[root@lamp-241 ~]# setenforce 0  #关闭内置防火墙
关闭selinux
注意,关闭selinux,关闭firewalld,这是俩大坑  404  403 目录数据无法读写
[root@client-242 yum.repos.d]# grep -i 'selinux='  /etc/selinux/config 
# SELINUX= can take one of these three values:
SELINUX=disabled
或者这条命令,临时的
[root@lamp-241 ~]# setenforce 0

下载所需要 依赖的软件支持

基础软件
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y


依赖于操作系统本身的一些软件支持
yum groupinstall "Development tools" -y

桌面开发工具包
yum groupinstall "Desktop Platform Development" -y 
底层编译库的安装
yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel -y

安装mysql

安装版本 mysql-5.6.31
安装目录 /usr/local/mysql
数据目录 /usr/local/mysql/data
端口号    3300


1、创建mysql用户
useradd -r -s /sbin/nologin mysql
2、在这个目录下下载的软件
/opt/my_lamp_bianyi/my_mysql
3、下载源码
wget -c https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.6/mysql-5.6.50.tar.gz
4、解压缩
tar -zxf mysql-5.6.50.tar.gz
[root@Xafei my_mysql]# ls
mysql-5.6.50  mysql-5.6.50.tar.gz
5、看一下大小
[root@Xafei my_mysql]# du -sh *
284M	mysql-5.6.50
31M	mysql-5.6.50.tar.gz
6、加入目录
cd mysql-5.6.50
8、创建编译脚本,设置编译参数
[root@Xafei mysql-5.6.50]# vim cmake.sh
[root@Xafei mysql-5.6.50]# cat cmake.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \   安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data \      数据目录
-DENABLED_LOCAL_INFILE=1 \           开启加载外部文件功能;1开启,0关闭
-DWITH_INNOBASE_STORAGE_ENGINE=1 \    将InnoDB存储引擎静态编译到服务器
-DMYSQL_TCP_PORT=3306 \                    端口
-DDEFAULT_CHARSET=utf8mb4 \                字符集
-DDEFAULT_COLLATION=utf8mb4_general_ci \    字符校验规则
-DWITH_EXTRA_CHARSETS=all \                  扩展字符集
-DMYSQL_USER=mysql                            用户身份mysql
9、给cmake.sh添加权限
chmod +x cmake.sh
10、执行脚本
./cmake.sh    
首先执行cmake这个命令,用于设置安装mysql的一些参数
后面就是cmake命令的各种参数,比如调整端口,安装目录,安装用户等
11、编译并安装
make && make install

12、修改mysql安装目录的权限属主属组
chown -R mysql.mysql /usr/local/mysql/
13、初始化数据库,生成可用的数据库文件
 1)移除默认的mysql配置文件,改名即可
  mv /etc/my.cnf /etc/my.cnf.ori
 2)确保没有mysql进程
   ps -ef|grep mysql
 3)进入mysql安装目录,开始初始化看到两个ok后可以开始下一步
    cd /usr/local/mysql/
   ./scripts/mysql_install_db --user=mysql
 4)验证数据库目录里是否有文件
    ll /usr/local/mysql/data
14、制作启动mysql脚本,系统提供好了模板
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
15、启动、检查mysql服务
service mysql status
service mysql start
service mysql status
16、设置mysql默认密码
/usr/local/mysql/bin/mysqladmin -uroot password 'yongfei123'


17、验证mysql登录
1)确保服务运行了
ps -ef|grep mysql
2)查看端口
netstat -tnlp|grep mysql
3)使用mysql登录命令
mysql -uroot -pyongfei123
4)需要配置环境变量,改为永久环境变量 /etc/profile
export PATH=/usr/local/mysql/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
5)检查变量,看是否加入
echo $PATH

[root@Xafei mysql]# echo $PATH
/usr/local/mysql/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
重新执行这个配置  source /etc/profile
6)执行命令登录
mysql -uroot -pyongfei123

安装apache

安装apache需要相应的依赖包apr
安装的apr包含三个依赖包(apr、apr-util、apr-iconv),都是独立开发的,还有自己的版本

官方地址  https://downloads.apache.org/apr/

要想apache运行php,一定是先下载apache,在安装php

安装apr 
1、下载 
wget -c http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2
2、解压缩
tar -xf apr-1.5.2.tar.bz2
3、修改配置configure
  第29605行    RM='$RM -f'
4、配置
./configure
5、编译
make
6、安装
make  install


安装apr-util
1、下载
wget -c https://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2
2、解压缩
tar -xf apr-util-1.5.4.tar.bz2
3、开始编译安装apr-utils ,且需要指定安装的apr命令路径
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr/bin/apr-1-config
4、编译安装
make && make install

ldconfig命令
一般来说,库文件安装到/lib,/lib64,/usr/lib/,/usr/lib64等,都可以找得到; 但是如果一个软件A把库文件安装到/usr/local/A/lib下,就要把这个路径加入到ldconfig命令可以找到的路径列表里面去,别人才能找到。
ldconfig是一个动态链接库管理命令;主要用途是在默认搜索目录(/lib,/lib64,/usr/lib/,/usr/lib64)以及动态库配置文件/etc/ld.so.conf中所列的目录中搜索出可共享的动态链接库。

有两种方法
1、在/etc/ld.so.conf这个主配置文件里加上一行,写上让别人要查找库文件的路径
   echo "/usr/local/apr/lib/" >> /etc/ld.so.conf
   [root@lamp-241 apr-util-1.5.4]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/apr/lib/

2、在/etc/ld.so.conf.d/目录下创建一个*.conf结尾的文件,里面加入该路径即可
# echo /usr/local/apr/lib/ > /etc/ld.so.conf.d/lamp.conf
# ldconfig      上面加入路径后,就使用此命令让其生效



编译安装httpd
链接
https://archive.apache.org/dist/httpd/

1、httpd源码下载
wget -c https://archive.apache.org/dist/httpd/httpd-2.4.37.tar.bz2
2、解压
tar -xf httpd-2.4.37.tar.bz2
3、进入
cd httpd-2.4.37
4、修改配置参数,可以做成脚本
[root@lamp-241 httpd-2.4.37]# cat apache-configure.sh
./configure \
--enable-modules=all \             加载所有支持模块
--enable-mods-shared=all \         共享方式加载大部分常用的模块
--enable-so \                       启动动态模块加载功能
--enable-rewrite \                  启用url地址重写功能
--with-pcre \                        支持正则表达式
--enable-ssl \                      编译ssl模块,支持https
--with-mpm=prefork \   插入式并行处理模块,称为多路处理模块,Prefork 是类UNIX平台上默认的MPM
--with-apr=/usr/local/apr/bin/apr-1-config \    指定依赖软件apr路径
--with-apr-util=/usr/local/apr/bin/apu-1-config


(1)prefork
    多进程模型,每个进程响应一个请求
(2)worker
    多进程多线程模型,每个线程处理一个用户请求 
(3)event(最优)
    事件驱动模型,多进程模型,每个进程响应多个请求
    
5、添加执行权限,执行该脚本
[root@lamp-241 httpd-2.4.37]# chmod +x apache-configure.sh
[root@lamp-241 httpd-2.4.37]# ./apache-configure.sh


6、有可能会缺少一些依赖库
yum -y install pcre-devel
yum -y install openssl-devel

7、编译安装
[root@lamp-241 httpd-2.4.37]# pwd
/usr/local/source-code/httpd-2.4.37

make && make install

编译安装php

1、下载源码包
wget -c https://museum.php.net/php7/php-7.2.17.tar.xz
2、下载需要的依赖
yum install libxml2-devel -y
yum install libjpeg-devel -y
yum install libpng-devel -y
yum install freetype-devel -y
yum -y install libcurl-devel
3、解压
tar -xf  php-7.2.17.tar.xz
4、进入目录
cd php-7.2.17
5、编辑一个脚本文件
vim configure_php.sh
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli \
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath

with-apxs2        调用apache加载模块支持PHP
gd                  画图库
libiconv         字符变换转换
libmcrypt         字符加密
mcrypt              字符加密
mhash               哈希运算

6、加权限开始执行脚本
[root@lamp-241 php-7.2.17]# chmod +x configure_php.sh
[root@lamp-241 php-7.2.17]# ./configure_php.sh
7、编译且安装
 make && make install

php与apache结合

1、修改apache配置文件,httpd.conf
vim /usr/local/apache2/conf/httpd.conf

配置语言支持
159 LoadModule negotiation_module modules/mod_negotiation.so
去掉至一行的注释

482 Include conf/extra/httpd-languages.conf 
去掉注释,扩展配置文件生效

让apache支持php语言插件,让apache自动解析php程序
166 LoadModule php7_module        modules/libphp7.so
找到这一行
在下面添加两行以.php结尾的文件php程序文件,.php前面有空格
166 LoadModule php7_module        modules/libphp7.so
167 AddHandler php7-script .php
168 AddType text/html .php

默认的网站首页,添加为php的文件
263 #
264 # DirectoryIndex: sets the file that Apache will serve if a directory
265 # is requested.
266 #
267 <IfModule dir_module>
268     DirectoryIndex index.php index.html
269 </IfModule>
270


网站默认的首页html文件,存放的目录路径,由以下参数控制
230 # DocumentRoot: The directory out of which you will serve your
231 # documents. By default, all requests are taken from this directory, but
232 # symbolic links and aliases may be used to point to other locations.
233 #
234 DocumentRoot "/usr/local/apache2/htdocs"
235 <Directory "/usr/local/apache2/htdocs">


修改apache的域名,网站的域名,是需要买的
 210 ServerName yuchao-lamp.cc
2、修改apache子配置文件,语言conf,优先中文
vim /usr/local/apache2/conf/extra/httpd-languages.conf

 19 DefaultLanguage zh-CN

 75 # Just list the languages in decreasing order of preference. We have
 76 # more or less alphabetized them here. You probably want to change this.
 77 #
 78 LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW

测试是否结合

1、cd  /usr/local/apache2/htdocs
2、在当前目录下创建一个php的脚本
  vim  index.php
<?php
    phpinfo();
?>


3、启动apache
拷贝apache默认提供的一个脚本即可,就是启动apache的命令
cp /usr/local/apache2/bin/apachectl /etc/init.d/apache

查看端口,这时还未启动,netstat -tnlp|grep 80
启动   service apache start
再次查看端口,看是否运行 netstat -tnlp|grep 80

登录客户端测试

这时,就代表你已经部署好了LAMP(linux+apache+mysql+php)的服务器,就代表可以给测试运行代码了注意

部署wed应用

LAMP环境已经搭好,获取php源码即可,
这里推荐的是wordpress程序,一个博客网站
地址
https://cn.wordpress.org/

https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz
1、下载源码
 wget -c https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz
2、解压
  tar -zxf  wordpress-4.7.3-zh_CN.tar.gz
3、创建一个存放wordpress代码的目录
 mkdir -p /www/yongfei-blog
4、将解压后的文件全部拷贝到刚才创建的那个目录下
 cp -a wordpress/* /www/yongfei-blog/
5、更改wordpress源码的属主属组  同为daemon
 chown -R daemon.daemon /www/yongfei-blog/
6、给apache添加一个新配置文件,专门发布我们这个wordpress
 vim /usr/local/apache2/conf/httpd.conf
 
 492 # Virtual hosts
 493 Include conf/extra/httpd-vhosts.conf
7、修改配置文件,添加关于wordpress的配置信息
  vim  /usr/local/apache2/conf/extra/httpd-vhosts.conf
注释掉该文件默认的虚拟机加入如下内容

<VirtualHost *:80>
    DocumentRoot "/www/yongfei-blog"
    ServerName yuchao-wordpress.cc
    ErrorLog "logs/blog-error_log"
    CustomLog "logs/blog-access_log" common
</VirtualHost>

8、hosts文件修改,做好域名解析
  vim   /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.241 yuchao-lamp.cc
192.168.0.241 yuchao-wordpress.cc

9、设置将内容存放的数据库中
登入数据库
[root@lamp-241 extra]# mysql -uroot -pyongfei123
创建储存博客的数据库yongfei_biog
mysql> create database yongfei_blog default charset utf8;
Query OK, 1 row affected (0.16 sec)

10、重启apache,
service apache restart
查看端口
netstat -tnlp|grep 80

如果是这种情况,需要配置apache的配置文件
vim /usr/local/apache2/conf/httpd.conf
Require all denied 这个是默认拒绝所有的给他打开Require all granted
第219行


212 #
213 # Deny access to the entirety of your server's filesystem. You must
214 # explicitly permit access to web content directories in other
215 # <Directory> blocks below.
216 #
217 <Directory />
218     AllowOverride none
219     Require all granted
220 </Directory>

然后就可以即可用客户端登录

部署商城系统

源码网址
https://www.aircheng.com/
商户后台管理

商家后台页面

前台界面

标签:架构,--,编译,LAMP,usr,mysql,apache,local,apr
来源: https://www.cnblogs.com/Xafei/p/16518982.html