任务1 安装LAMP,基础配置解析PHP
1. 安装MySQL
(1)下载与解压
[root@localhost ~]#cd /usr/local/src //软件包都放在这里方便管理
[root@localhost src]#tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar
(2)安装和配置
[root@localhost src]# useradd -s /sbin/nologin mysql
[root@localhost src]# mkdir -p /data/mysql
[root@localhost src]# chown -R mysql:mysql /data/mysql
[root@localhost src]# mv mysql-5.6.35-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost src]# cd /usr/local/mysql
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost mysql]#cp support-file/my-default.cnf /etc/my.cnf
[root@localhost mysql]#vi my-default.cnf //修改配置文件
修改my-default.cnf配置文件
#These are commonly set ,remove the # and set as required
Basedir=/usr/local/mysql //basedir表示MySQL包所在路径
Datadir=/data/mysql/datadir //表示定义存放数据的位置
Port=3306 //port表示定义MySQL服务监听的端口号
Server_id=128 //表示该MySQL服务的ID号
socket = /tmp/mysql.sock //定义MySQL服务监听的套接字地址
[root@localhost mysql]#cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]#chmod 755 /etc/init.d/mysql
[root@localhost mysql]#vi /etc/init.d/mysql //修改启动脚本
basedir=/usr/local/mysql
datadir=/data/mysql
[root@localhost mysql]#chkconfig --add mysql //把mysql服务加到系统服务列表中
[root@localhost mysql]#chkconfig mysql on //开机就启动
[root@localhost mysql]#service mysql start //启动服务
(3)安装成功
[root@localhost mysql]# service mysql start
Starting MySQL SUCCESS!
(4)遇到的问题
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
解决方法
yum -y install autoconf
2. 安装Apache
(1)下载并解压
[root@localhost src]#tar -zxvf http-2.4.46.tar
[root@localhost src]#tar -zxvf apr-1.6.5.tar
[root@localhost src]#tar -zxvf apr-util-1.6.1.tar
(2)安装和配置
[root@localhost src]#cd apr-1.6.5
[root@localhost apr-1.6.5]#./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]#make &&make install
[root@localhost apr-1.6.5]#cd /usr/local/src/apr-util-1.6.1.
[root@localhost apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]#make &&make install
[root@localhost apr-util-1.6.1]#cd /usr/local/src/http-2.4.46
[root@localhost http-2.4.46]#./configure --prefix=/usr/1ocal/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@localhost http-2.4.46]#yum install -y pcre pcre-devel
[root@localhost http-2.4.46]#make && make install
[root@localhost http-2.4.46]#/usr/local/apache2.4/bin/apachectl -M
(3)安装成功
(4)遇到的问题
configure:error: in `/usr/local/src/httpd-2.2.21/srclib/apr’:
configure:error: no acceptable C compiler found in $PATH
执行./configure命令时,在遇到以上错误是,这个是因为gcc包没有安装。
用yum install -y gcc命令就可以了
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
#include <expat.h>
^
编译中断。
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/usr/local/src/apr-util-1.6.1”
make: *** [all-recursive] 错误 1
执行make &&make install命令时报错,没有expat库文件,用yum install -y expat-devel命令安装
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-so --enable-mods-shared=most
执行完如果是以下报错内容
checking for pcre-config… false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
用yum install -y pcre-devel命令安装再重新执行上面命令
安装PHP
(1)下载并解压
[root@localhost ~]#cd /usr/local/src
[root@localhost src]#tar -zxvf php-5.6.30.tar.gz
(2)安装和配置
[root@localhost src]# yum install -y libxml2-devel
[root@localhost src]# yum install -y openssl openssl-devel
[root@localhost src]# yum install -y bzip2 bzip2-devel
[root@localhost src]# yum install -y libpng libpng-devel
[root@localhost src]# yum install -y freetype freetype-devel
[root@localhost src]# yum install -y epel-release
[root@localhost src]# yum install -y libmcrypt-devel //为防止配置时出错提前安装库文件
[root@localhost src]# cd php-5.6.30
[root@localhost php-5.6.30]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir--with-gd --with-jpeg-dir --with-png-dir--with-freetype-dir --with-iconv-dir--with-zlib-dir --with-bz2 --with-openssl--with-mcrypt --enable-soap--enable-gd-native-ttf --enable-mbstring--enable-sockets --enable-exif
[root@localhost php-5.6.30]#make && make install
4. httpd解析PHP
编辑httpd的主配置文件
[root@localhost php-5.6.30]# cd /usr/local/apache2.4/conf/
搜索ServerName,把ServerName www.example.com:80前#去掉;
<Directory />
AllowOverride none
Require all denied
</Directory>
改成
<Directory />
AllowOverride none
Require all granted
</Directory> //目的允许所有请求访问
搜索AddType application/x-gzip .gz .tgz,在下面添加一行 AddType application/x-httpd-php .php
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改成
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
(4)测试安装
① 测试配置文件是否正确
[root@localhost conf]#/usr/local/apache2.4/bin/apachectl -t //检验配置文件是否正确
Syntax OK
[root@localhost conf]#/usr/local/apache2.4/bin/apachectl start //启动httpd命令
[root@localhost conf]# netstat -lnp |grep httpd //查看是否启动
tcp6 0 0 :::80 :::* LISTEN 5427/httpd
[root@localhost conf]# curl localhost //使用curl命令简单测试,,显示了就是成功
<html><body><h1>It works!</h1></body></html>
② 测试是否正确解析PHP
[root@localhost conf]# vi /usr/local/apache2.4/htdocs/1.php //编写一个测试脚本
<?
echo “php解析正确”
?>
[root@localhost conf]# curl localhost/1.php
“php解析正确”[root@localhost conf]#
测试成功
任务2 Apache配置
1. 默认虚拟主机
(1)虚拟主机
虚拟主机(共享主机,又称虚拟服务器)是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。
(2)配置
[root@localhost ~]# vi /usr/local/apache2.4/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf //搜索httpd-vhost,去掉#
[root@localhost ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //编辑虚拟主机配置文件
配置文件
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/abc.com"
ServerName abc.com
ServerAlias www.abc.com www.aaa.com
ErrorLog "abc.com-error_log"
CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache2.4/docs/111.com"
ServerName 111.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
ServerAdmin指定管理员邮箱,
DocumentRoot为该虚拟主机站点的根目录,
ServaerName为网站的域名
ServerAlias为网站的第二域名
ErrorLog为站点的错误日志
CustomLog为站点的访问日志
[root@localhost apache2.4]# mkdir docs
[root@localhost apache2.4]# cd docs/
[root@localhost docs]# mkdir abc.com 111.com
[root@localhost docs]# vi abc.com/index.html
abc.com
[root@localhost docs]# vi 111.com/index.html
111.com
[root@localhost docs]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost docs]# /usr/local/apache2.4/bin/apachectl graceful
(3)配置验证
[root@localhost docs]# curl -xlocalhost:80 www.abc.com
abc.com
[root@localhost docs]# curl -xlocalhost:80 www.aaa.com
abc.com
[root@localhost docs]# curl -xlocalhost:80 111.com
111.com
(4)测试成功

