ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

黄金架构LAMP(编译安装)

2022-07-25 22:04:20  阅读:180  来源: 互联网

标签:架构 -- 编译 LAMP usr mysql apache local apr


编译安装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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有