前言
在构建LAMP平台时,各组件的安装顺序为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。
Apache
Apache的起源
Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中中长期领域中长期保持着超过半数的份额。Apache服务器可以在Linux、UNIX、Windows等多种操作平台中运行。
Apache HTTP Server是ASF旗下著名的软件项目之一,其正式名称为“httpd”。
Apache的特点
Apache服务在功能、性能、安全性等方面的表现都是比较突出的,可以满足Web服务器用户的应用需求,主要特点主要为:
- 开放源代码(Apache服务程序由全世界的开发者共同维护,并且任何人都可以自由使用。)
- 跨平台应用
- 支持Web编程语言
- 模块化设计
- 运行稳定
- 良好的安全性
安装httpd服务器
[root@localhost mysql-5.6.26]# rpm -e httpd --nodeps #卸载httpd及相关的依赖包
错误:未安装软件包 httpd
[root@localhost opt]# tar xf apr-1.6.2.tar.gz #源码编译及安装
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
[root@localhost opt]# ls
apr-1.6.2 apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 php-5.6.11.tar.bz2
apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip mysql-5.6.26 rh
apr-util-1.6.0 httpd-2.4.29 mysql-5.6.26.tar.gz
[root@localhost opt]# vim /etc/resolv.conf #指定dns,为了后面下载安装所需的环境
nameserver 114.114.114.114
[root@localhost opt]# yum -y install gcc gcc-c++ make pcre-devel expal-devel perl
#gcc:C语言的编译器;gcc-c++:c++的编译器;make:源代码编译器(源代码转换成二进制文件);pcre:perl函数库,兼容的正则表达式库:pcre-devel:perl的接口开发包;expat-devel:用于支持网站解析HTML、XML文件;perl:perl语言编译器
[root@localhost opt]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
#prefix=/usr/local/httpd 指定httpd服务程序的安装路径
#enable-so 启用动态加载核心模块支持
#enable-rewrite 启用网页地址重写功能
#enable-charset-lite 启用字符集支持
#enable-cgi 启用CGI(通用网关接口)脚本程序支持
将依赖放入srclib文件,否则会编译失败
[root@localhost httpd-2.4.29]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost httpd-2.4.29]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost httpd-2.4.29]#make && make install
创建软连接,不然每次要用绝对路径很麻烦,并且把httpd服务的可执行程序放入环境变量中,便于系统识别
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd//bin/* /usr/local/bin/
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #复制模板到HTTP的启动文件
[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd #HTTP的启动文件
#!/bin/sh
# chkconfig: 35 85 21 #级别开机自启,第85个启动,第21个关闭
# description: Apache is a World Wide Web server
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
[root@localhost httpd-2.4.29]# chkconfig -add httpd #将http加入到系统管理器
[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf #进入http配置文件
[root@localhost ~]# httpd -t #检查语法有没有错误
Syntax OK
[root@localhost httpd-2.4.29]# systemctl start httpd #开启服务
[root@localhost httpd-2.4.29]# netstat -anpt | grep 80 #查看端口是否在监听
[root@localhost httpd-2.4.29]# netstat -anpt | grep 80
tcp 0 0 192.168.20.11:80 0.0.0.0:* LISTEN 124189/httpd
tcp 0 0 192.168.20.11:22 192.168.20.1:61808 ESTABLISHED 122752/sshd: root@p
做到这里已经可以在网页中访问静态网页html中的内容
- 默认首页存放路径
[root@localhost ~]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
bbs index.html index.php
[root@localhost htdocs]# cat index.html
<html><body><h1>It works!</h1></body></html>
MySQL
[root@localhost ~]# yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf
#gcc 编译语言
#gcc-c++
#ncurses 字符终端下裕兴互动功能的动态库
#ncurses-devel ncurses开发包
#bison 语法分析器
#cmake cmake编译安装
#autoconf 用于生成自动配置软件源代码适应多种类型的脚本工具
[root@localhost ~]# tar xzvf mysql-5.6.26.tar.gz -C /opt #解压包
[root@localhost opt]# cd mysql-5.6.26/
[root@localhost mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定默认使用的字符集编码
> -DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集校对规则
> -DDEFAULT_COLLATION=utf8_general_ci \ #指定支持其他字符集编码
> -DEXTRA_CHARSETS=all \
> -DSYSCONFIDIR=/etc \
> -DMYSQL_DATADIR=/home/mysql/ \
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock #指定链接数据库的通讯文件
[root@localhost opt]#make && make install #编译
[root@localhost ~]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost ~]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chmod 755 /etc/init.d/mysqld #权限
[root@localhost ~]# chkconfig --add /etc/init.d/mysqld #增加新服务(在文件中增加相关数据)
[root@localhost ~]# chkconfig mysqld --level 35 on #级别
[root@localhost ~]# useradd -s /sbin/nologin mysql #创建普通用户管理mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost ~]# chown mysql:mysql /etc/my.cnf #更改管理主/组
[root@localhost ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #设置环境变量,宣告mysql命令便于系统识别
[root@localhost ~]# source /etc/profile
初始化数据库
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql
[root@localhost ~]# vim /etc/init.d/mysqld
[root@localhost ~]# service mysqld start
Starting MySQL SUCCESS!
[root@localhost ~]# netstat -anpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 9997/mysqld
[root@localhost ~]# mysqladmin -u root -p password "abc123" #设置mysql密码
PHP
[root@localhost ~]# yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libpeg-devel
#gd 图形化处理的库
#libpng png格式图片的库
#libpng-devel
#pcre pcre库支持正则表达式
#pcre-devel 编译安装所需要
#libxml2-devel 解析xml标记语言的库
#libpeg-devel jpeg格式图片的库
[root@localhost ~]# tar xjvf php-5.6.11.tar.bz2
[root@localhost ~]# cd php-5.6.11
[root@localhost php-5.6.11]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring
#with-gd 激活gd库的支持
#with-zlib 提供数据压缩功能的函式库
#with-apxs2=/usr/local/httpd/bin/apxs 指定http服务提供的apxs模块支持程序的文件位置
#with-mysql=/usr/local/mysql 关联数据库
#with-config-file-path=/usr/local/php5 指定配置文件
#enable-mbstring 启用多字节字符串功能
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.6.11]# vim /etc/httpd.conf
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php #创建php页面文件
<?php
phpinfo();
?>
[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# sevice httpd start
安装论坛
这边是安装的论坛来玩
[root@localhost opt]# mysql -uroot -pabc123
mysql> CREATE DATABASE bbs; #创建数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #bbs数据库里面所有表的权限授予给bbsuser,并设置密码
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';#同意所有访问来源
mysql> flush privileges; #刷新数据库
mysql> show DATABASES; #查看是否有数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]#cd /opt/dis
[root@localhost dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost dis]# cd /usr/local/httpd/htdocs/bbs
[root@localhost dis]#chown -R daemon ./config
[root@localhost dis]#chown -R daemon ./data
[root@localhost dis]#chown -R daemon ./uc_client
[root@localhost dis]#chown -R daemon ./uc_server/data
总结
- lamp支持两种工作模式,一种是集成的php模块,另外一种使用fast-cgi
- 在cmake mysql的时候报错,需要把源码目录中的CMakeCache.txt文件删除,然后再重新cmake
- 在PHP make后在/etc/httpd.conf中,会自动生成php5的默认支持文件,如果没有的话,检查前面下载的安装环境重新安装
- 我在(PHP)make时,提示以下错误
make: *** 没有指明目标并且找不到 makefile。 停止。
我从部署php安装环境开始检查发现所需要支持的语言全部都安装完毕,并且也./configure过了,但是就是没有生成makefile文件,检查目标目录依然没有发现文件,于是我重新部署并./configure,发现make && make install成功,可能是./configure过程中发生了数据包丢失,导致没有自动生成makefile文件。