首页 > 其他分享 >编译安装LAMP环境及wordpress部署

编译安装LAMP环境及wordpress部署

时间:2024-02-05 13:12:02浏览次数:32  
标签:apr lamp 编译 LAMP wordpress mysql -- php root

一、安装背景及任务需求

1.LAMP简介

LAMP是公认的最常见、最古老的黄金Web技术栈
Linux 操作系统
Apache/Nginx web服务器作用是将HTTP请求从前端转发到后端应用上
Mysql/Mariadb Mysql是一款数据库管理系统,也就是一个存储数据的工具,用户可以自行对数据库进行增加、删除、修改、查询等操作。
Perl/Php/Python PHP是一门服务端脚本编程语言,主要用于web开发,常用PHP脚本嵌入HTML源码中执行。

2.任务需求

LAMP
Apache——>httpd

MySQL——>5.6.31

PHP——>7.2.17

apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
httpd-2.4.37.tar.bz2
mysql-5.6.43
php-7.2.17.tar.xz

wordpress-4.7.3-zh_CN.tar.gz
最终达成访问IP地址即可使用wordpress即可,不需要域名解析先

3.编译环境说明

Linux
Apache(2.4)
MySQL(5.6.31)
PHP(7.2.17)
编译安装顺序,由于软件之间存在依赖性,会有先后顺序。
说明:

apache必须要先于php安装
apache和mysql之间并没有直接先后顺序的依赖,所以谁先谁后没所谓。
在php-5.3版本前,mysql必须先于php的编译;因为php需要实现连接数据库的功能,它通过mysql的接口才能编译出该功能;
在php-5.3版本或者之后,php已经集成了一套连接mysql数据的代码,并不依赖mysql的接口,这个时候,mysql和php的编译顺序也就无所谓了。
故安装顺序为 linux mysql apache(httpd PHP

二、部署LAMP实战

1.环境准备

1.准备一个新机器配置yum源
yum install wget -y
配置yum源
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 https://mirrors.aliyun.com/repo/epel-7.repo
清空yum缓存
yum clean all
重新生成yum缓存
yum makecache
2.关闭防火墙
关闭firewalld
iptables -F
systemctl stop firewalld
systemctl disable firewalld
setenforce 0 ##关闭selinux
查看selinux
[root@client-242 yum.repos.d]# grep -i 'selinux=' /etc/selinux/config
SELINUX= can take one of these three values:
SELINUX=disabled
3.安装工具和基础软件库
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
linux很多软件的运行,依赖于操作系统本身的一些软件支持
yum groupinstall "Development tools" -y

桌面开发工具包(图形化相关包)
yum groupinstall "Desktop Platform Development" -y

底层编译库的安装
yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel -y

2..编译安装mysql

1.mysql的安装规格说明

安装需求

软件版本 安装目录 数据目录 端口
mysql-5.6.31 /usr/local/mysql /usr/local/mysql/data 3306
2. 创建mysql用户,用于给mysql的数据,进程,设置相关的user属主
useradd -r -s /sbin/nologin mysql
3.创建一个源码目录,用于统一安装管理
cd /usr/local ; mkdir software-mysql;cd software-mysql
或者cd /usr/local/;mkdir source-code;cd source-code/ 然后所有源码统一从这个文件夹下载安装。
4.下载源码包,解压并进入,源码文件夹
下载
[root@lamp-241 source-code]# wget -c https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.6/mysql-5.6.50.tar.gz

解压
[root@lamp-241 source-code]# tar -zxf mysql-5.6.50.tar.gz

进入文件夹
[root@lamp-241 source-code]# cd mysql-5.6.50
5.根据需求配置编译参数

[root@lamp-241 mysql-5.6.50]#
创建编译脚本,设置编译参数

vim cmake.sh
[root@lamp-241 mysql-5.6.50]# cat cmake.sh
cmake .
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/
-DMYSQL_DATADIR=/usr/local/mysql/data
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3306
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DWITH_EXTRA_CHARSETS=all
-DMYSQL_USER=mysql
[root@lamp-241 mysql-5.6.50]# 以上配置符号是\同行变多行,或者说多行按同行读取

给脚本添加执行权限
[root@lamp-241 mysql-5.6.50]# chmod +x cmake.sh
[root@lamp-241 mysql-5.6.50]# ll cmake.sh
-rwxr-xr-x. 1 root root 295 Feb 26 17:12 cmake.sh

执行脚本
./cmake.sh

结果

6.编译并安装
[root@lamp-241 mysql-5.6.50]# make && make install

7.安装mysql的后续配置
1)修改mysql安装目录的权限,属主,属组(因为是root用户创建的)

chown -R mysql.mysql /usr/local/mysql/

2)初始化数据库,生成可用的数据库文件

-1.移除默认的mysql配置文件,改名即可
mv /etc/my.cnf /etc/my.cnf.ori

-2.确保没有mysql进程
-3.进入mysql安装目录,开始初始化
[root@lamp-241 mysql-5.6.50]# cd /usr/local/mysql/
[root@lamp-241 mysql]#
[root@lamp-241 mysql]# ./scripts/mysql_install_db --user=mysql
看到两个ok后表示安装正确

-4.验证数据库目录里是否有文件
[root@lamp-241 mysql]# [root@lamp-241 mysql]# ll /usr/local/mysql/data
total 110600

3)制作启动mysql脚本,系统提供好了模板
-拷贝脚本,放入linux一个固定的服务启动目录
[root@lamp-241 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

-启动、检查mysql服务
[root@lamp-241 mysql]#
[root@lamp-241 mysql]# service mysql status
ERROR! MySQL is not running
[root@lamp-241 mysql]# service mysql start
Starting MySQL.Logging to '/usr/local/mysql/data/lamp-241.err'.
SUCCESS!
[root@lamp-241 mysql]# service mysql status
SUCCESS! MySQL running (38476)
4)修改mysql的密码
/usr/local/mysql/bin/mysqladmin -uroot -p password 'xxxxxxxx'
为了不让别人看到你的密码,请清空历史记录
history -c
history -w
成功进入mysql交互页面成功

3.编译安装apache

1. 安装依赖包apr

下载源码,且解压缩,然后编译安装即可
-apr(apache portable run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

wget -c http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2
[lamp-server root /usr/local/software-apache]$tar -xf apr-1.5.2.tar.bz2

要对apr软件进行编译配置,编译三部曲
以前都是指定
./configure

可能由于其1.5.2的bug,存在一个配置错误,需要修改如下的一个配置参数
并且这里需要修改一个配置
修改此行
[root@lamp-241 apr-1.5.2]# vim configure
29605 RM='$RM -f'

然后进行编译且安装

make

安装

make install

2.再编译安装一个apache必须的基础库apr-util

安装apr-util软件

完整的APR(Apache portable Run-time libraries,Apache可移植运行库)实际上包含了三个开发包:apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。
apr-util该目录中也是包含了一些常用的开发组件。
这些组件与apr目录下的相比,它们与apache的关系更加密切一些。比如存储段和存储段组,加密等等
1.安装apr-util软件
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

2.开始编译安装apr-utils ,且需要指定安装的apr命令路径
[root@lamp-241 apr-util-1.5.4]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config (因为apr安装后产生了文件夹,所以这里也得指定位置)

3.编译且安装
[root@lamp-241 apr-util-1.5.4]# make && make install

3.编译安装这两个基础软件库后,得让系统识别软件库

5.此时apr和apr-util这俩工具,就生成了一些基础的linux文件,你需要告诉linux系统,多了一些这些工具,linux才能够读取到他们的信息,然后apache才能用

把编译安装的apr工具,写入系统的动态库配置文件中,然后更新这些基础动态库即可
[lamp-server root /usr/local/software-apache/apr-util-1.5.4]$echo "/usr/local/apr/lib/" >> /etc/ld.so.conf

执行ldconfig命令,让linux能找到你安装的这个apr即可
[lamp-server root /usr/local/software-apache/apr-util-1.5.4]$ldconfig

4.依赖完毕后,可以编译apache(httpd 了

编译三部曲
1.下载源码解压并进入文件夹
链接
https://archive.apache.org/dist/httpd/
wget -c https://archive.apache.org/dist/httpd/httpd-2.4.37.tar.bz2
[root@lamp-241 source-code]# tar -xf httpd-2.4.37.tar.bz2
[root@lamp-241 source-code]# cd httpd-2.4.37

2.根据需求配置参数
配置参数制作脚本-添加执行权限-执行脚本
[root@lamp-241 httpd-2.4.37]# cat apache-configure.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

配置参数说明:
apache默认啥功能都没有,必须通过模块的进行添加!
--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

(1)prefork
多进程模型,每个进程响应一个请求
(2)worker
多进程多线程模型,每个线程处理一个用户请求
(3)event(最优)
事件驱动模型,多进程模型,每个进程响应多个请求

添加执行权限,执行该脚本
[root@lamp-241 httpd-2.4.37]# chmod +x apache-configure.sh
[root@lamp-241 httpd-2.4.37]# ./apache-configure.sh

3.编译并安装
[root@lamp-241 httpd-2.4.37]# pwd
/usr/local/source-code/httpd-2.4.37
[root@lamp-241 httpd-2.4.37]# make && make install
4.检查是否安装了
[root@lamp-241 httpd-2.4.37]# ls /usr/local/apache2/
bin build cgi-bin conf error htdocs icons include logs man manual modules

编译安装php

1.解压软件并进入解压目录

wget -c https://museum.php.net/php7/php-7.2.17.tar.xz
tar -xf php-7.2.17.tar.xz
[root@lamp-241 source-code]# cd php-7.2.17

2.根据配置修改参数,并执行脚本--由于参数过多,写成sh文件-权限-执行

[root@lamp-241 php-7.2.17]# vim configure_php.sh
[root@lamp-241 php-7.2.17]#
[root@lamp-241 php-7.2.17]# 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

执行该脚本
[root@lamp-241 php-7.2.17]# chmod +x configure_php.sh
[root@lamp-241 php-7.2.17]#
[root@lamp-241 php-7.2.17]# ./configure_php.sh
可能报错
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.编译并安装

[root@lamp-241 php-7.2.17]# make && make install

5.结合php和apache配置

找到conf文件夹apache的配置
ls /usr/local/apache2/conf/
extra httpd.conf magic mime.types original
httpd.conf 主配置文件
extra里面有副配置文件

1.修改apache的主配置文件httpd.conf

主配置文件路径

[lamp-server root /usr/local/software-php/php-7.2.17]$vim /usr/local/apache2/conf/httpd.conf

1.修改apache配置文件,找到你的安装路径
配置语言支持
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 找到这一行,然后在下面添加语句

添加以下两行意思是以.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
268 DirectoryIndex index.php index.html
269

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">

2.修改apache 的子配置文件,语言conf

[root@lamp-241 php-7.2.17]# 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

3.启动apache

1.生成apache的执行命令
cp /usr/local/apache2/bin/apachectl /etc/init.d/apache

2.启动即可
service apache start

3.如果你要创建apache的systemctl管理脚本,可以用如下技巧

用另一台机器,yum install httpd

查看yum给你生成的httpd.service脚本,然后模仿该脚本写法,修改你编译的http路径即可

4.查看apache是否支持php

打开phpinfo页面即可
[lamp-server root /usr/local/apache2/htdocs]$cat /usr/local/apache2/htdocs/index.php
冲冲冲

由此已经部署好了LAMP linux apache mysql php

5.准备wordpress源码

1.下载博客源码
wget -c https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz

2.解压缩该源码,放入到httpd的网页根目录中去
[lamp-server root /opt/wordpress]$ls
wordpress wordpress-4.7.3-zh_CN.tar.gz
[lamp-server root /opt/wordpress]$mv wordpress/* /usr/local/apache2/htdocs/

3.由于是静态文件做了更改,你不需要重启httpd,直接访问该网站即可
但是,注意,先看一下apache的启动进程,用户是谁

修改wordpress源码文件的属主、属组,防止权限有问题

[lamp-server root /opt/wordpress]$chown -R daemon.daemon /usr/local/apache2/htdocs/

4.此时可以去访问网站了

6.访问wordpress,查看博客安装

1.1.发现该博客需要写入数据库,wordpress,需要你先创建这个数据库

登录数据库,操作
[lamp-server root /opt/wordpress]$mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.50 Source distribution
......
mysql>

创建wordpress数据库
mysql> create database wordpress default charset utf8;
Query OK, 1 row affected (0.00 sec)

结果

用户访问 wenjie.top/index.php > lamp的linux服务器

apache(index.php) >

php (处理wordpress程序) >

mysql(用户数据,博客文章数据)
7.最后,确保看到如下结果即可

标签:apr,lamp,编译,LAMP,wordpress,mysql,--,php,root
From: https://www.cnblogs.com/rocky0022/p/18007771

相关文章

  • 14. C++函数的编译
    C++函数的编译C++和C语言的编译方式不同。C语言中的函数在编译时名字不变,或者只是简单的加一个下划线_(不同的编译器有不同的实现),例如,func()编译后为func()或_func()。而C++中的函数在编译时会根据它所在的命名空间、它所属的类、以及它的参数列表(也叫参数签名)等信息进行重新......
  • onlyoffice编译和https设置资料
    编译文档:https://helpcenter.onlyoffice.com/installation/docs-community-compile.aspxhttps设置:https://helpcenter.onlyoffice.com/installation/docs-community-https-linux.aspxhttps://blog.csdn.net/u013930899/article/details/134428379......
  • Golang 开发Android服务--交叉编译
    Golang开发Android服务--交叉编译移动端主要arm架构,编译命令CGO_ENABLED=0GOOS=linuxGOARCH=armgobuild-ogo_promine.goCGO_ENABLED=0GOOS=linux,指定临时环境变量不影响其它编译,也可以设置为全局环境变量。AOSP查看版本信息getprop不传参数查看所有属性值ge......
  • Ubuntu编译报错:fatal error: bits/libc-header-start.h: No such file or directory
    Ubuntu编译报错:fatalerror:bits/libc-header-start.h:Nosuchfileordirectory具体报错如下:fromhost/minilua.c:33:/usr/include/limits.h:26:10:fatalerror:bits/libc-header-start.h:Nosuchfileordirectory26|#include<bits/libc-header-start.h>......
  • 尝试通过Codeblocks编译Codeblocks
    最近工作安排上的空余时间比较多.尝试了下通过Codeblocks去编译(Self-host)Codeblocks还传了个Gitee(code-blocks-mint),不知道后面会不会继续对其进行修改——主要最近习惯了使用qml这种脚本化的界面实现方式,看见widget跟页面标签就一阵头大;另外,Codeblocks的代码虽然相对屎......
  • ubuntu上安装meson & 如何使用meson编译C代码
    一·搭建meson环境并简单编译:1.什么是meson  Meson旨在开发最具可用性和快速的构建系统。提供简单但强大的声明式语言用来描述构建。原生支持最新的工具和框架,如Qt5、代码覆盖率、单元测试和预编译头文件等。利用一组优化技术来快速变异代码,包括增量编译和完全编译。 ......
  • 在ubuntu16.04下,源码编译安装特定版本的MongoDB PHP扩展
    背景:我的php项目在连接其他mongo库时报:Serveratxxx:27017reportswireversion5,butthisversionoflibmongocrequiresatleast6(MongoDB3.6)原因:本地MongoDBPHP扩展的版本过高解决方法:降低本地PHP扩展MongoDB版本,现在要降到mongodb-1.12.0版本步骤:1:下载......
  • 编译时process_begin: CreateProcess | mutex/condition_variable 报错的一种解决办法
    系统:win10目的:想跑一下wisper.cpp前置操作:把该项目git下来后打算make,一make就报错注意,图里其实有两种错误,第一种是process_begin:CreateProcess(NULL,xxx)failed,第二种是error:'thread'isnotamemberof'std'.第二种错误是因为mingw不支持thread库,但是官方有给过补丁,可......
  • POCO编译报错:LNK1104 无法打开文件“libcrypto.lib”
    POCO编译报错1>LINK:fatalerrorLNK1104:无法打开文件“libcrypto.lib” 解决:1、项目  ->  属性  ->  C/C++ -> 常规 -> 附加包含目录,添加OPENSSL头文件路径C:\ProgramFiles\OpenSSL-Win64\include(OPENSSL安装路径) 2、项目  ->  属......
  • WordPress 技巧:解决 3.6 版本的 "wpdb::escape is deprecated" 错误提示
    来源:http://www.shanhubei.com/archives/13621.html升级到WordPress3.6之后,发现在debuglog中有很多以下的错误信息:Notice:wpdb::escapeisdeprecatedsinceversion3.6!Usewpdb::prepare()oresc_sql()instead.这个错误信息的意思是WordPress3.6将$wpdp类......