LAMP+wordpress

lamp+wordpress

apr这两个软件是对后端服务软件进行优化
  • apr是httpd的依赖包
  • apr-util是httpd的第二个依赖包—只是在apr基础上提供更多的数据结构和操作系统封装接口。
  • pcre 是第三个httpd的依赖包pcre (perl compatible regular expressions)perl语言兼容正则表达式,是一个用C语言写的正则表达式函数库,PCRE被广泛应用在许多开源软件之中,最著名的有Apache HTTP服务器和PHP、Ruby脚本语言。此外PCRE也是perl语言的缺省正则库。
LAMP软件所需源码版本
httpd 2.4.16
apr 1.5.2
pcre 8.37
apr-util 1.5.4
mysql 5.6.26
php 5.6.13(yum装5.4.16)

通过几个命令来检查你系统的情况:

lsb_release -a  #正常看版本cat /etc/redhat-release,这条也能查
Description:       Red Hat Enterprise Linux Server release 7.6(Santiago)

uname -a
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 GNU/Linux

源码和yum安装务必不要串起来

  1. 不要同时存在多种安装方式
  2. 在编译之前安装开发组包,devel是功能库
yum groupinstall -y "Development Tools" "Development Libraries"   #里面有很多系统依赖的环境
hostname  LAMP ; su     #192.168.1.43改成名字为LAMP的机器
#yum 后面有很多install的方式,如果我想安装rpm,可以localinstall 。 如果我此时安装redis,yum redis他会自动帮助你去解决依赖,而localinstall就单独帮你装这个包。
#如果客户端装了图形界面。linux图形具备firefox,实际已经开启了apache,要把他关掉和卸载 。 

yum -y install gcc gcc-c++ openssl-devel
cd  /opt  ; yum -y install lrzsz   #把源码包放到这个文件夹
rz     lamp源码编译软件包.7z         #7z在linux也能解压
yum   -y   install  epel-release
yum provides  */7z
yum -y install p7zip
7za  e lamp源码编译软件包.7z   -o/opt/ # e表示解压 , -o表示解压到哪(不要加空格)

3那么现在我们一个一个去装,先装我们的apache,而apache有两个依赖

tar xf apr-1.5.2.tar.gz  -C  /usr/local/src/        #解压到/usr/local/src
tar   xf   apr-util-1.5.4.tar.bz2  -C /usr/local/src/
cd /usr/local/src     
cd  apr-1.5.2
./configure   --prefix=/usr/local/apr     #正常情况下都会把三方软件安装在/usr/local/   ,给他起个名字/usr/loca/apr,有些小依赖甚至都不用指定目录
#会发现很多的no,只要没有error就不要怕   。 你会发现
rm: cannot remove 'libtoolT': No such file or directory   #这不知道是正确还是错误的话就echo $?
echo $?         #返回0则正确
make  -j8  && make install -j8    #给他快一点
#安装成功,下一步进入 apr-util
cd  ../apr-util-1.5.4/
./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr/  #注意要进行安装的路径同样也是 /usr/local/apr-util,但是前面介绍过apr-util是基于apr的,   得先装apr,还得告诉你apr在哪里。
#一般来说预编译单独执行,预编译没有问题,编译安装就可以同时执行
make -j8 && make install -j8 
.#那么前两个搞定了,还剩四个。记住,大的包都是后面装
cd /opt    #还得把这个pcre给装了
tar  xf  pcre-8.37.tar.bz2  -C  /usr/local/src/
cd  /usr/local/src/pcre-8.37/
./configure  --prefix=/usr/local/pcre/
make -j8 && make install -j8

完事了之后,依次去装我们的大包。

cd  /opt
tar xf  httpd-2.4.16.tar.bz2  -C  /usr/local/src          #命名方式统一
cd /usr/local/src/http-2.4.16
./configure   --prefix=/usr/local/apache2.4  \        #我们说过,你们所有的攻击都是基于版本。所以命名的时候命名好,让后面有迹可循,比如版本号。所以在生产环境中,http是以apache加上版本号
--prefix=/usr/local/apache2.4   \
--enable-so      \    #so是模块,如果我想对接到php就得用到enable-so这个东西   如果要看需要哪些此参数就 -help
--enable-rewrite   \  #支持网站地址的重写,网站地址的重写是安全的选项
--enable-ssl       \  #支持ssl加密,apache开启ssl有两种方式。一种是CA认证,一种是安装ssl模块
--with-apr=/usr/local/apr    \  #我刚刚这三个包都是我的依赖,所以这三个包我要给他指出来
--with-apr-util=/usr/local/apr-util  \  #一定都给出来
--with-pcre=/usr/local/pcre     \  #后面跟/不跟都没关系
#后面参数如果是so,我们用enable去开启。如果是依赖源码的,我就用--with来进行链接
--enable-modules=most   \  #开启我们大多数的模块功能
--enable-mpms-shared=all  \  #咱们apache有三种工作模式,一个叫Perfork,一个worker,一个mpm。mpm表示我们的多进程处理模块。用all表示同时启用,都支持都用。
--with-mpm=event 
make -j8 && make install -j8 

现在只是安装OK了,我们说一个大的服务,安装、调试、启动。

  • 如果你是GUI安装,有firefox。你一定要在这里执行以下/etc/init.d./http stop
chkconfig  httpd off      #同时让他不要开机自启
#现在/etc/init.d 里面没有apache2.4  没有就不用管他了。
#再后面你只要把脚本复制过来
cp -a  /usr/local/apache2.4/bin/apachectl  /etc/init.d/
chmod +x  /etc/init.d/apachectl
vim  /etc/init.d/apachectl   #注意,在这里面需要加上几行
#  chkconfig: 2345 64 36     #2345是指启动级别,64是开机顺序(表示在网卡服务后面) 36在network前面,apache要在network前面关           保存退出
/etc/init.d/apachectl  start     #启动很慢
AH00558: httpd: Could not reliably determine.......‘ServerName' directive globally to suppress this message
#这个不是报错,提示你要修改ServerName,实际这个解析叫做fqdn。
vim  /usr/local/apache2.4/conf/httpd.conf
/ServerName   #找这个,默认的改成自己
ServerName 192.168.1.43:80         #保存退出
/etc/init.d/apachectl   restart          #重启很快
chkconfig apchectl on         #让他执行开机自启
ps -aux | grep apache        #看一下,当你通过这种方式去看的时候会有什么问题

LAMP+wordpress_第1张图片

#默认用户是daemon 来看一下daemon的id
id daemon
\uid=2(daemon)  gid=2(daemon)  groups=2(daemon)
#这是一个可知的用户,假如有人入侵了你的系统,把这个daemon改成了可登录的,就出问题了。所以正常情况下会把这个daemon改一下
useradd  -M  -s  /sbin/nologin  apache       #M表示不创建家目录
vim  /usr/local/apache2.4/conf/httpd.conf    #最快的方法是使用 !vim
/User       #改成
User apache
Group apache    #保存退出
/etc/init.d/apachectl restart  #再次重启
id apache   # 如果是6系统的话就是500以下
chown -R apache:apache  /usr/local/apache2.4  #对应的家目录授权,因为你默认情况下他是root的

到此为止apache就搞定了。

cd /opt/
tar xf  mysql-5.6.26.tar.gz  -C  /usr/local/src/
#从mysql5.5以后我们使用新的cmake编译方式,我们依赖于cmake,是跨平台的编译工具,所有的平台。他可以输出各种各样的makefile文件,project,预编译之后生成的
#而cmake又依赖于ncurses-devel
yum -y install  ncurses-devel  cmake
cd  /usr/local/src/mysql-5.6.26       
useradd  -M  -s  /sbin/nologin  mysql      #进入来之后我们先创建用户,编译安装是必须起用户的
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \    #这里这些指定的都是绝对路径
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  \  #unix这个是安全套接层,也就是说.sock文件放在哪里。
-DDEFAULT_CHARSET=utf8 \  #默认字符集utf_8
-DDEFAULT_COLLATION=utf8_general_ci  \  #默认的字符选择 utf8_general_ci
-DWITH_EXTRA_CHARSETS=all  \  #这里是额外的字符集
-DWITH_MYISAM_STORAGE_ENGINE=1  \  #后面的1表示支持这种引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DWITH_MEMORY_STORAGE_ENGINE=1  \
-DWITH_READLINE=1  \  #表示支持readline库
-DENABLED_LOCAL_INFILE=1  \  #开启本地的infile,允许本地导入infile,启用我们加载的数据
-DMYSQL_DATADIR=/usr/local/mysql/data  \  #以及我们数据放在哪里
-DMYSQL_USER=mysql  # 以及我们运行的用户是谁

#cmake很快但是make会很慢
#http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html 里面记录了所有编译的参数
#cmake至少要保证有2G的内存不然会卡在某个地方
make -j8 && make install -j8
chown  -R  mysql:mysql  /usr/local/mysql/     #做一个属主属组的更改
 cp  /usr/local/mysql/support-files/mysql.server    /etc/init.d/mysqld    #如果你要启动mysql,你的启动脚本在哪里?mysql.server是我们的启动脚本
cp  /usr/local/mysql/support-files/my-default.cnf    /etc/my.cnf
vim  /etc/init.d/mysqld     #先去更改启动脚本
/basedir
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data           #前面再cmake指定的参数

chmod  +x  /etc/init.d/mysqld            #加个可执行权限,没有可执行权限他是没有用的
chkconfig  mysqld  on   #同时让mysql开机自启
#源码安装,初始化。
/usr/local/mysql/scripts/mysql_install_db   --defaults-file=/etc/my.cnf  --basedir=/usr/local/mysql/  --datadir=/usr/local/mysql/data  --user=mysql   #初始化
OK
OK          #正常来说应该是看到有两个OK的
#  /usr/local/mysql/data/mysql  这个数据库存放了很多信息
ln -s /usr/local/mysql/bin/*    /bin/       #我不做环境变量,直接做链接让系统调用
/etc/init.d/mysqld start     #Success
netstat -lnt           #找一下3306
mysql_secure_installation      #优化,初始化
Enter current password for root:  输入空
Set root password : Y  # 输入两次 123456
Remove annoymous users?  Y
Disallow  root login remotely? Y
Remove test databaees and access to it? Y
Reload privilege tables now? Y
mysql -uroot -p   #此时必须要密码才能进入
  • 最后一个PHP,其实php安装也很耗费时间。php原称 personal home page,个人家网站。php通过moudule,对应的libphp.so,要把他集成到apache当中,除了安装你还要把他们两个连到一起
#我们还需要做一些配置,先把php装了
yum -y install libxml2-devel     #php的依赖还没有装,lib是功能库,xml是最早的编程语言,大多是用来写模板的。大多加上epel源都有这个依赖
cd /opt
tar  xf  php-5.6.13.tar.bz2  -C  /usr/local/src/
cd  /usr/local/src/php-5.6.13
./configure  --prefix=/usr/local/php  \
--with-mysql=/usr/local/mysql/  \ #你要连接数据库
--with-apxs2=/usr/local/apache2.4/bin/apxs  \  #apache使用apxs工具将php编译成自身的一个模块,插入到自身
--with-config-file-path=/usr/local/php  #指定一下主配置文件,php的主配置文件叫php.ini,其实默认的环境是有的,但是我们指定到新的目录下面去
#只要看到thank you for use php  基本上就没有什么问题了。一些no就是没有开启的功能模块,可以通过源码重新编译。
make && make install  #用到的mysql连接,如果没有连接上,在预编译的时候就报错了。
#我们在apache上启用,跟mysql没有关系。一般编译问题是内存不够。环境检测会检测你缺失什么工具
libtool: install: install  .libs/libphp5.so /usr/local/apache2.4/modules/libphp5.so #这个把libphp5.so装到哪里是有迹可查的
#如果你没有装的话,是不会再这个/usr/local/apache2.4/modules/ 下面出现php的 
#此时在源码当中有一个 php.ini两个文件
php.ini-development
php.ini-production 
#development是开发环境或测试环境,而production是生产环境。如果我是这正工作肯定是放production
cp  php.ini-production  /usr/local/php/php.ini
#在 /usr/local/apache2.4/modules/  有一个  httpd.exp 文件  还有一个 libphp5.so 都是绿颜色的
#安装好了之后再进行一个所谓的搭配,你是模块我肯定是去控制php。可以看一眼这里
vim  /usr/local/php/php.ini 
[Date]            #正常的话你得跟个时区
date.timezone  = Asia/Shanghai       #因为我们有很多的监控zabbix,elk都要用到时区,你没有的话我每次都需要重启一下


#但是如果我要把他嵌入到apache我肯定是要控制apache。找到配置文件
vim  /usr/local/apache2.4/conf/httpd.conf`
/Directory        #先找到这个
<IfModule  dir_module>     #这是默认的首页,还能是html吗?
    DirectoryIndex  index.php  index.html           #你们安装apache的时候已经默认带了index.html了,他这里会按顺序读。要不然不html删掉。  
</IfModule>
/AddType          #找一下这个,这块有两个
AddType  application/x-compress  .Z     #这一看就是压缩,也就是apache支持.gz .tgz这样的文件。有时候我们一点到链接就下载了,其实就是通过这种方式支持的。
AddType  application/x-gzip  .gz  .tgz    #这两个是我们以前有的,所以不用管它,我们要加两个
AddType  application/x-httpd-php   .php   #用它来支持我们php的文件
AddType  application/x-httpd-php-source    .phps   #前面有个替代就好了,php的源码``
#有空格
cd  /usr/local/apache2.4/htdocs      #这是你默认的网页目录
cat   index.html
<html><body><h1>It  works !</h1></body></html>

#我们进入到这里创建一个页面
vim  index.php        #php的测试页
<?php
    phpinfo();
?>

/etc/init.d/apachectl  restart  #重启apache
systemctl  stop  firewalld
iptables -F
setenforce  0
  • 此后再打开你们的网页就好了

Wordpress大家都知道是一个个人的博客

rz  wordpress-4.8.zip
yum -y install unzip
#wordpress和discuz都是集成软件,他的一些功能开发人员都已经帮你写好了,你拿来之后解压。你会得到很多的目录
ls -l    #你会看到很多的目录,我们要把他全部复制到默认的下面去
cp  -a  ./*  /usr/local/apache2.4/htdocs/
/etc/init.d/apachectl  restart
mysql -uroot -p   #用户名,数据库,密码都统一为wordpress,注意Table Prefix  这里不用改
create  database wordpress;
grant  all  on wordpress.*  to  'wordpress'@'localhost'  identified by 'wordpress';
flush privileges;

开始安装。

  1. 提供一些登录信息
  2. 用户名
  3. 密码
  4. 邮箱没有搭建的话是出不去的
  5. login

你可能感兴趣的:(LAMP+wordpress)