Linux-LAMP搭建
2022-10-07 08:21:30 0 举报
AI智能生成
登录查看完整内容
Linux-lamp搭建流程 yum 和编译安装流程
作者其他创作
大纲/内容
前面的机器安装的依赖都是根据版本来的
你再去安装其他版本,依赖不同,直接安装可能出错
不能使用之前的机器了
因为最小化安装安装,缺少很多基础系统工具包,导致你编译安装或者运行软件时会报错。
安装一个最小化的初始系统
拍好快照方便下次使用
准备一个,干净的,初始化刚装好系统的机器
yum install wget -y
先安装好一些需要的基础命令 vim wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
基础的软件源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
第三方软件源,epel源
配置阿里云的源
yum clean all
rm -rf /var/cache/yum
方便后续的下载,下载更快
生成新缓存
yum makecache
清空yum缓存,生成新的缓存
清除之前的缓存
1.建议用最新的阿里云yum源
开启
Enforcing
临时修改
setenforce 0
宽容模式,基本不生效
Permissive
关闭
Disable
getenfroced
查看防火墙状态
使用sed时最好使用的是加上-c 参数,否则会破坏软链接-c ∶取代
sed -i -c 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
vim /etc/selinux/config
也可以手动修改
修改/etc/selinux/config文件
关闭自带的防火墙,selinux
关闭服务
systemctl stop firewalld
开机禁止自启动
systemctl disable firewalld
关闭并且禁用,firewalld服务
删除规则
iptables -F
查看规则
iptables -L
清空iptables 的规则
2.关闭防火墙这是俩大坑 404 403 目录数据无法读写
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 net-tools vim -y
一些底层的依赖需要进行安装
yum install cmake make pcre-devel ncurses-devel openssl-devel libcurl-devel -y
底层编译库的安装
yum install libxml2-devel libjpeg-devel libpng-devel freetype-devel libcurl-devel wget -y
编译php可能缺少的一些依赖或软件
3.安装基础的软件和依赖
新机器初始化
之前的编译里会缺少依赖和软件,你按照了对应依赖后,重新编译才会加进去
1.编译的过程如果出现报错,安装完成了需要的依赖后,请删除掉编译生成的目录,重新根据当前的基础环境再次编译
#前提是机器有tar命令 -x参数调用tar命令
# -z参数调用gzip命令,进行解压
# 注意压缩的格式,下载对应的格式软件yum install bzip2-devel
2.关于压缩的报错
下载的时候去看下文件的格式: file 文件名
【先装好工具包,再去编译安装】yum install openssl-devel ncurses-devel
3.编译mysql,编译httpd都遇见了这个报错系统中缺少openssl相关,以及curses相关
yum 源更换
更换dns
网络环境问题
apache必须要先于php安装,因为php中自定义会去调用一些apache中的内容
在php-5.3版本前,mysql必须先于php的编译;
5.注意软件的安装顺序
子主题
6.可以清空历史记录,防止留下密码等信息
常见踩坑点
软件版本 安装目录 数据目录 端口mysql-5.6.31 /usr/local/mysql /usr/local/mysql/data 3306
安装需求
-r 用来建立系统账号
-s 指定shell的解释器,为不登录
useradd -r -s /sbin/nologin mysql
id mysql
验证一下
㈠ 创建mysql用户
cd /usr/local ; mkdir software-mysql;cd software-mysql
创建一个指定的源码目录,下载对应软件
wget -c https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.6/mysql-5.6.50.tar.gz
下载MySQL源码
tar -zxf mysql-5.6.50.tar.gz
解压缩文件,查看源码
需要安装cmake这个命令才行
提供了另一种配置脚本,叫做cmake脚本
㈡ 解压软件,进入目录
1.进行编译配置,也就安装定制化的操作#注意先安装cmake
cmake . \\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \\ #指定安装路径-DMYSQL_DATADIR=/usr/local/mysql/data \\ #数据存放-DENABLED_LOCAL_INFILE=1 \\ # 开启加载外部文件功能;1开启,0关闭-DWITH_INNOBASE_STORAGE_ENGINE=1 \\-DMYSQL_TCP_PORT=3306 \\ #设置端口-DDEFAULT_CHARSET=utf8mb4 \\ #mysql的编码-DDEFAULT_COLLATION=utf8mb4_general_ci \\ #大小写的规则-DWITH_EXTRA_CHARSETS=all \\-DMYSQL_USER=mysql #运行用户,指定的为我们进行创建的mysql用户
cat cmake.sh
常常主要需要关注的是warnging (不那么重要)和error(严重错误)
error 严重及错误,程序是无法运行warnging 警告,没那么太严重,不影响程序继续,但是你后续的使用,可能会有报错info ,输出程序正常日志的
关于报错信息如何看
chmod +x cmake.sh
添加执行权限
# 创建编译脚本,设置编译参数,需要在MySQL的源码目录下
#执行脚本./cmake.sh
㈢ 根据需求配置编译参数
make && make install
install才是生成数据文件夹的步骤
㈣ 编译并安装
tail -1 /etc/profileexport PATH=$PATH:/usr/local/mysql/bin/
命令的目录在/usr/local/mysql/bin/
source /etc/profile
打印检查变量: echo $PATH
重新登录,或者手动source读取该文件配置,使配置生效
1.由于是自己编译的,需要将路径加入到PATH环境变量中
应用创建了使用者是mysql
chown -R mysql:mysql /usr/local/mysql/
2.修改mysql的文件权限,属主,属组
mv /etc/my.cnf /etc/my.cnf.bak
3.1移除默认的mysql配置文件,改名即可
ps -ef|grep mysql
3.2确保没有mysql进程
一定要进入文件夹后执行
cd /usr/local/mysql/
注意所处的文件夹
./scripts/mysql_install_db --user=mysql
3.3进入mysql安装目录,开始初始化
3.数据库初始化
#拷贝脚本,放入linux一个固定的服务启动目录cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
使用service命令,会去读取/etc/init.d目录下的脚本文件
4.因为是编译安装,需要手动创建启动脚本
#启动mysqlservice mysql start
#查询状态,此时表示成功service mysql status
5.启动脚本
# -u -p参数后面不得有空格,是直接跟上用户名或者密码的# -p 不写密码的话,会让你交互式输入密码# password 跟上你的新的mysql密码
/usr/local/mysql/bin/mysqladmin -uroot -p password 'lxh123123'
6.设置用户和密码,此时可以修改mysql的密码,用如下命令,注意语法
㈤ 安装mysql后续配置
MySQL安装
mkdir /usr/local/software-apache
建立文件夹
wget -c http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2
下载
tar -xf apr-1.5.2.tar.bz2
解压
1.下载源码,且解压缩,然后编译安装即可
#修改 第29605行
vim configure29605 RM='$RM -f'
#可能由于其1.5.2的bug,存在一个配置错误
./configure
#次执行配置脚本
# 然后进行编译且安装make
# 安装make install
2.要对apr软件进行编译配置,编译三部曲
1.安装依赖包apr
wget -c https://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2
tar -xf apr-util-1.5.4.tar.bz2
#进入目录cd apr-util-1.5.4
#下载 解压
#从配置可见,该文件的定义,必须依赖第一个软件包./configure --with-apr=/usr/local/apr/bin/apr-1-config
make && make install
编译安装
安装完成之后,告诉系统已经有这些库可以使用了,不用重启机器
echo \"/usr/local/apr/lib/\" >> /etc/ld.so.conf
动态库配置文件/etc/ld.so.conf
把编译安装的apr工具,写入系统的动态库配置文件中,然后更新这些基础动态库即可
ldconfig
执行ldconfig命令,让linux能找到你安装的这个apr即可
开始进行配置动作
2.安装基础库apr-util
版本 安装路径httpd-2.4.37 /usr/local/
先回到software-apache,下载源码wget -c https://archive.apache.org/dist/httpd/httpd-2.4.37.tar.bz2
#对压缩文件进行解压缩tar -xf httpd-2.4.37.tar.bz2
下载解压
--enable-modules=all 加载所有支持模块--enable-mods-shared=all 共享方式加载大部分常用的模块--enable-so 启动动态模块加载功能--enable-rewrite 启用url地址重写功能--enable-ssl 编译ssl模块,支持https--with-pcre 支持正则表达式--with-apr=/usr/local/apr/bin/apr-1-config 指定依赖软件apr路径--with-apr-util=/usr/local/apr/bin/apu-1-config--with-mpm=prefork 插入式并行处理模块,称为多路处理模块,Prefork 是类UNIX平台上默认的MPM
cat config.sh./configure \\--enable-modules=all \\--enable-mods-shared=all \\--enable-so \\--enable-rewrite \\--with-pcre \\--enable-ssl \\--with-mpm=prefork \\--with-apr=/usr/local/apr/bin/apr-1-config \\--with-apr-util=/usr/local/apr/bin/apu-1-config
配置参数
执行该脚本,开始配置./config.sh
修改配置文件的权限chmod +x config.sh
编译且安装
ls /usr/local/apache2/ls /usr/local/apache2/bin
检查安装路径
4.安装apache
编译安装Apache
不然会有很多的参数无法找到
先装好php,再去修改apache配置文件
mkdir software-php && cd software-php
wget -c https://museum.php.net/php7/php-7.2.17.tar.xz
tar -xf php-7.2.17.tar.xz
建立文件夹,下载php压缩文件
chmod +x configure_php.sh
cat 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
配置编译过程,即编译脚本文件
make && make install
开始编译、且安装
编译安装php
httpd.conf 这个表示了是主配置文件
extra 额外模块的配置文件,将其分开,更加的明朗清晰,便于管理
/usr/local/apache2/conf/
配置文件路径
配置语言支持159 LoadModule negotiation_module modules/mod_negotiation.so 去掉这一行的注释482 Include conf/extra/httpd-languages.conf 打开此选项,扩展配置文件就生效了
让apache支持php语言的插件,当有用户访问php程序时,apache自动转发给php程序去解析。166 LoadModule php7_module modules/libphp7.so#在166行下面添加下面两行数据167 AddHandler php7-script .php168 AddType text/html .php
#添加一个默认的网站首页,添加为php的文件267 <IfModule dir_module>268 DirectoryIndex index.php index.html269 </IfModule>#那个写在前面表示就是先去加载那一个文件,这里会先去加载我们添加的php文件
#关于网站默认的首页html文件,存放的目录路径,由以下参数控制234 DocumentRoot \"/usr/local/apache2/htdocs\"235 <Directory \"/usr/local/apache2/htdocs\">#这个目录在那就去那找首页文件
打开主配置文件,修改如下参数
19 DefaultLanguage zh-CN#修改第19行的参数,默认语言未中文
#修改第78行,将中文放在第一个的位置,语言的优先级LanguagePriority zh-CN en ca ...
修改apache的子配置文件,优先支持中文,需要做如下两步操作vim /usr/local/apache2/conf/extra/httpd-languages.conf
#这一步可以不做,保留#修改apache的域名,也就是我们网站的域名配置 210 ServerName yuchao-lamp.cc
修改apache配置文件支持php
cd /usr/local/apache2/htdocs
进入apache网页根目录
cat index.php<?php phpinfo();?>
#写一个php的测试网页
测试apache是否支持php
cp /usr/local/apache2/bin/apachectl /etc/init.d/apache
拷贝apache默认提供的一个脚本即可,就是启动apache的命令
service apache start
#启动apache
用另一台机器,yum install httpd
查看yum给你生成的httpd.service脚本,然后模仿该脚本写法,修改你编译的http路径即可
如果没有启动脚本,可以使用如下技巧,进行创建
启动apache
直接去访问: ip:端口 即可
如果出现了PHP的页面,表示配置成功!- 表示你的LAMP的环境已经搭建好了
测试LAMP架构
结合php和apache
mkdir /opt/wordpress && cd /opt/wordpress
先创建文件夹,并且下载到对应的路径
wget -c https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz
tar -zxvf wordpress-4.7.3-zh_CN.tar.gz
安装源码
rm -rf /usr/local/apache2/htdocs/index.php
先将原来的测试文件删除
mv wordpress/* /usr/local/apache2/htdocs/
解压文件移动到目录(/usr/local/apache2/htdocs/)
将解压缩的文件放入到apache的网页根目录中
去看当前进程的用户是谁:daemon
ps -ef | grep httpd
chown -R daemon.daemon /usr/local/apache2/htdocs/
修改wordpress源码文件的属主、属组,防止出现无权访问
修改完成后不需要重启,但是要注意httpd 服务的使用者
此时去访问这个网站ip:端口
需要去创建数据库
在这里需要注意mysql中,是否配置了对应的数据库
#先登录数据库mysql -uroot -p
mysql的坑
安装wordpress
Linux 操作系统
Apache/Nginx web服务器
Mysql/Mariadb
Perl/Php/Python
LAMP是公认的最常见、最古老的黄金Web技术栈
什么是LAMP
从底层的编译器,make编译工具,到bash脚本,git代码管理,vim编辑器,依赖管理工具等等都很齐全。
Linux系统主要是以开发者为中心,
Linux
Web服务器的作用是将HTTP请求从前端转发到后端应用上
虽然称之为`web服务器`,但是不是意味着他是一个`物理服务器`,是一个软件
apache
主要用于web开发,常用PHP脚本嵌入HTML源码中执行。
php
用户可以自行对数据库进行增加、删除、修改、查询等操作。
是一款数据库管理系统,也就是一个存储数据的工具
MySQL
LAMP的核心
买一台云服务器
了解使用的流程
使用xshell连接自己的服务器
查看对应的公网ip
1.直接可以在腾讯云上查看
curl ifconfig.me110.40.184.57
2.由于我们现实在2个公网中的机器,互相访问
公网ip的查看方法
LAMP环境准备
#运行中 enforcing:严格模式,所有的规则都会被执行
#永久关闭disabled:关闭模式,SELINUX的所有规则不起作用
#临时关闭,下次开机还会启动permissive:宽容模式,实际不起作用,但是会发送警告信息
三种模式的解释
[root@localhost ~]# getenforce Permissive
1.检查seLinux状态
setenforce 0
setenforce 选项
选项: 0: 切换成 permissive(宽容模式) 1: 切换成 enforcing(强制模式)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
修改/etc/selinux/config/文件
注意,修改后需要重启电脑生效
永久修改
2.修改对应状态
关闭内置的selinux
关闭firewall的防火墙
systemctl stop firewalld
#禁止开机启动
systemctl disable firewall
关闭内置的firewalld
iptables -F
以及清空iptables规则
1.关闭防火墙(很重要!!!)
rpm -qa
查看是否安装apache
注意:apache在yum里面的名字叫做httpd
yum install -y httpd
没有安装,可以直接安装
第95行,其实也可以不修改
vim /etc/httpd/conf/httpd.conf
#修改apache配置文件,设置为80端口
修改apache的端口设置
systemctl status httpd
查看是都启动
systemctl start httpd
ps -ef | grep httpd
netstat -tunlp | grep httpd
查看运行的端口和进程
curl -I 127.0.0.1:80
访问本地,就相当于访问公网地址
当可以拿到apache的信息,表示搭建成功了
#curl -I -I/--head 只显示文档信息
ip:端口
可以直接使用浏览器进行访问
y验证httpd是否启动成功
2.安装apache
注意点:由于mysql被收购了
安装这个rpm包,只会生成一些配置文件,并不是软件本身wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
#安装rpm包rpm -ivh mysql-community-release-el7-5.noarch.rpm
#安装完成后目录下多了两个yum源mysql-community.repomysql-community-source.repo
配置mysql的源需要找对包,注意看文件的后缀。
注意最好是在/etc/yum.repos.d目录下进行
yum -y install mysql-community-server
接下来使用yum安装MySQL即可,注意要写mysql-community-server
systemctl start mysqld
systemctl status mysqld
netstat -tunlp | grep mysqld
安装完毕后,启动mysql
生成基础数据库的,用于测试
mysql_install_db
.确保mysql启动后,初始化数据,进行使用默认的mysql没有密码,没数据,得初始化使用
设置的密码为:lxh123123#是否要移除匿名用户Remove anonymous users? [Y/n] #为了安全考虑,移除 y#是否禁止root远程登录Disallow root login remotely? [Y/n] #移除了就无法使用root进行登录的了 n#是否移除测试数据库Remove test database and access to it? [Y/n] #移除#是否刷新权限表,让之前的修改生效Reload privilege tables now? [Y/n] # yes
(没有设置密码就直接回车就行)
mysql_secure_installation
#初始化数据库密码
-uroot #表示使用root进行登录-p # 输入密码
mysql -uroot -p
注意数据的命令最后都是带有;的
查看有那些库
show databases;
查看版本信息
select version();
退出MySQL
mysql> exit;
使用新密码登录数据库
mysql的初始化以及基础配置
已经下载了其他依赖包,版本不匹配
注意,不能在yum源的目录下进行操作,不然会将之前的安装包删除
需要删除系统中已经安装的MySQL依赖
cd
yum remove mysql* -y
先到家目录再去执行,靠谱点
可能是之前安装过MySQL
一些常见的报错解决
3.安装MySQL
yum install php -y
安装php
安装完成php之后,会默认的和apache结合工作
/var/www/html
找到html文件放置的位置
rpm -ql httpd | grep html
# cat index.php <?phpphpinfo();?>
在目录中写入如下php脚本
创建php的代码index.php,放到apache的网页目录下
systemctl restart httpd
需要重启让apache去加载php
完成之后,需要重启apache
http://110.40.184.57:80
访问网址,看是否加载成功
4.安装php
比如国内主流的disucz论坛代码
当我们把环境搭建好之后,有了这个环境,只需要准备各种php写的程序,即可运行了
https://www.dismall.com/forum.php?mod=attachment&aid=MTA0fGZlYmVhN2ZlfDE2NDg3ODQ3ODV8MHw3Mw%3D%3D
yum install lrzsz -y
安装 lrzsz
安装完成后直接上传即可
.传输工具,上传压缩包
.下载论坛的源码
将测试文件删除
rm -rf ./index.php
删除之前的文件
yum install unzip -y
下载unzip命令
使用-d参数,可以指定解压缩的位置
unzip -d /var/www/html/ /opt/Discuz_X3.4_SC_UTF8_20220811.zip
解压文件
解压缩
解压压缩包到html目录中
#因为我们需要的是php文件!!!
mv ./upload/* ./
可以将upload目录下的文件,移动到当前目录下
此处指的目录是当前所处的目录是/var/www/html
需要对这些文件进行权限修改,加入写的权限,暴力点全加,777
chmod -R 777 ./*
第一个错误:出现文件目录不可写
yum install php-mysqli -y
发现缺少mysql的驱动安装该驱动即可
此时php的跟新已经加载
安装了php的驱动需要重新启动apache才行
第二个错误是,php需要去连接MySQL,PHP到MySQL需要一个连接驱动,
再次访问对应的网页,开始进行安装(ip:端口)
5.部署Discuz论坛
1.使用lamp架构,成功搭建了这个网站,但是这只是最简单的yum部署。
2.学习了 apache 的安装,mysql的安装 ,以及php的下载使用
你一点要记住,需要去重启服务,确保新的东西生效。
3.学会了一步步解决报错的思路。细心,外加下载安装了新的服务或软件,或修改了配置文件
yum是简易版安装,所有的安装目录都是固定的,安装简单、易用,但是缺少定制化,在性能、自动化配置上不够靠谱
yum自动的安装软件到 /etc /var /usr 等路径,很可能与别人冲突,或者被yum remove卸载
不同的机器可能配置不一,安装的软件和依赖可能存在冲突
当你服务器批量管理的时候,你也无法批量操作,很容易出问题
关于yum
源码编译安装,通过脚本对服务器批量化操作,如安装到/opt/自定义文件夹下
而且编译可扩展很多功能,都是yum无法比拟的
因此掌握编译安装是一个重点
这些问题的解决办法就都在编译安装中
6.总结
yum源安装
编译安装LAMP
0 条评论
回复 删除
下一页