(一)安装apache
1、安装apache依赖包
yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel
2、下载并安装apache2.2.31
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
tar xf httpd-2.2.31.tar.gz
cd httpd-2.2.31
./configure \
--prefix=/application/apache2.2.31 \
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-modules=most \
--enable-so \
--with-mpm=worker \
--enable-rewrite
make
make install
ln -s /application/apache2.2.31/ /application/apache
ls -l /application/
总用量 4
lrwxrwxrwx 1 root root 26 6月 27 22:37 apache -> /application/apache2.2.31/
drwxr-xr-x 15 root root 4096 6月 27 22:35 apache2.2.31
3、编写apache启动脚本
# 编写apache启动脚本方法一
#!/bin/bash
# chkconfig: 2345 85 15
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
INITLOG_ARGS=""
apachectl=/application/apache/bin/apachectl (修改)
httpd=/application/apache/bin/httpd (修改)
pid=$httpd/logs/httpd.pid
prog=httpd
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd $pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f $pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status"
echo $"|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
# 编写apache启动脚本方法二
# vi /etc/init.d/httpd
#!/bin/bash
case $1 in
start)
/alidata/http/bin/apache1 -t start
;;
stop)
/alidata/http/bin/apache1 -t stop
;;
restart)
/alidata/http/bin/apache1 -t restart
;;
*)
echo "start|stop|restart"
;;
esac
# echo "/etc/init.d/httpd start" >> /etc/rc.local
# 或者
cat >/etc/init.d/httpd<<EOF
#!/bin/bash
case \$1 in
start)
/usr/local/lnmp/httpd-2.2.34/bin/apachectl -k start && netstat -npult|grep httpd
;;
stop)
/usr/local/lnmp/httpd-2.2.34/bin/apachectl -k stop && netstat -npult|grep httpd
;;
restart)
/usr/local/lnmp/httpd-2.2.34/bin/apachectl -k restart && netstat -npult|grep httpd
;;
*)
echo "start|stop|restart"
;;
esac
EOF
# echo "/etc/init.d/httpd start" >> /etc/rc.local
4、设置apache开机启动
chkconfig --add httpd
chkconfig --list httpd
chmod +x /etc/init.d/httpd
/etc/init.d/httpd restart
5、配置基于域名虚拟 主机
cd /application/apache/conf/
vim httpd.conf 修改98行
ServerName 127.0.0.1:80
修改132
<Directory "/application/apache2.2.31/html">
修改378
Include conf/extra/httpd-mpm.conf
修改396
Include conf/extra/httpd-vhosts.conf
===================================
[root@web02 conf]# cd extra/
[root@web02 extra]# vim httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin oldboy@oldboyedu.com
DocumentRoot "/application/apache2.2.31/html/www"
ServerName www.etiantian.org
ServerAlias etiantian.org
ErrorLog "/app/logs/www-error_log"
CustomLog "/app/logs/www-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin oldboy@oldboyedu.com
DocumentRoot "/application/apache2.2.31/html/bbs"
ServerName bbs.etiantian.org
ErrorLog "/app/logs/bbs-error_log"
CustomLog "/app/logs/bbs-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin oldboy@oldboyedu.com
DocumentRoot "/application/apache2.2.31/html/blog"
ServerName blog.etiantian.org
ErrorLog "/app/logs/blog-error_log"
CustomLog "/app/logs/blog-access_log" common
</VirtualHost>
6、创建站点目录以及测试文件
mkdir -p /application/apache2.2.31/html/{www,bbs,blog}
echo www.etiantian.org >/application/apache2.2.31/html/www/index.html
echo bbs.etiantian.org >/application/apache2.2.31/html/bbs/index.html
echo blog.etiantian.org >/application/apache2.2.31/html/blog/index.html
mkdir /app/logs -p
/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful
7、配置客户端host解析到如下域名商,检查
curl www.etiantian.org
curl bbs.etiantian.org
curl blog.etiantian.org
(二) 安装mysql(这里用二进制包)
1、安装mysql依赖包
1
yum -y install libaio*
2、下载mysql二进制安装包
1
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz
3、创建mysql用户
1
useradd mysql -s /sbin/nologin -M
4、解压并安装mysql
1
2
3
4
5
6
7
8
9
10
tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz
cp -a mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49
ln -s /application/mysql-5.5.49/ /application/mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql (初始化mysql)
chown -R mysql.mysql /application/mysql/
cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
cp /application/mysql-5.5.49/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
sed -i ‘s#/usr/local/mysql#/application/mysql#g’ /application/mysql/bin/mysqld_safe /etc/init.d/mysqld (修改mysql启动脚本)
/etc/init.d/mysqld start
5、配置环境变量
1
2
echo “PATH=”/application/mysql/bin:$PATH"" >> /etc/profile
source /etc/profile
6、创建mysql密码
1
2
mysqladmin -uroot password ‘123456’
mysqladmin -uroot -p’旧密码’ password ‘新密码’ (修改)
7、启动mysql
1
/etc/init.d/mysqld start
(三) 安装PHP
1、安装php依赖包
1
2
3
4
5
6
7
8
9
10
11
12
13
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel libmcrypt-devel mhash mhash-devel mcrypt openssl-devel -y
mkdir -p /home/oldboy/tools
cd /home/oldboy/tools
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd …
2、安装php(注意:编译的时候\后面不能有空格和注释内容)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
wget http://mirrors.sohu.com/php/php-5.5.26.tar.gz
cd /home/oldboy/tools
tar xf php-5.5.26.tar.gz
cd php-5.5.26
./configure
–prefix=/application/php5.5.26
–with-apxs2=/application/apache/bin/apxs \ #这里指定apache中apxs的安装路径
–with-mysql=mysqlnd \ #这里可以直接写mysqlnd,无论是否安装mysql都不需要专门指定mysql安装路径。
–with-mysqli=mysqlnd
–with-pdo-mysql=mysqlnd
–with-iconv-dir=/usr/local/libiconv \ #这里指定libiconv安装路径
–with-freetype-dir
–with-jpeg-dir
–with-png-dir
–with-zlib
–with-libxml-dir=/usr \ ##这里指定libxml安装路径,一般都在/usr/include/libxml2/libxml
–enable-xml
–disable-rpath
–enable-safe-mode
–enable-bcmath
–enable-shmop
–enable-sysvsem
–enable-inline-optimization
–with-curl
–with-curlwrappers
–enable-mbregex
–enable-mbstring
–with-mcrypt
–with-gd
–enable-gd-native-ttf
–with-openssl
–with-mhash
–enable-pcntl
–enable-sockets
–with-xmlrpc
–enable-zip
–enable-soap
–enable-short-tags
–enable-zend-multibyte
–enable-static
–with-xsl
–enable-ftp \ #用于nginx
–enable-fpm
make
make install
ln -s /application/php5.5.26/ /application/php
php报错
意思是新版的php不支持这些选项,默认就开启了,所以以下的参数可以不用写
configure: WARNING: unrecognized options: --enable-safe-mode, --with-curlwrappers, --enable-zend-multibyte
php.ini位置
需要在php源码包编译目录里去找,找一个php.ini-development或者php.ini-production复制到到/data/home/server/php-7.0.0/etc那个目录,并重命名为php.ini
或者你去php官网下载一个源码包,把源码包下面的php.ini-development或者php.ini-production复制到到/data/home/server/php-7.0.0/etc那个目录,并重命名为php.ini
来源: https://segmentfault.com/q/1010000007556275
3、检查结果
1
2
3
4
5
6
7
(1)查看apache目录下是否有 libphp5.so
[root@web02 php-5.5.26]# ll /application/apache/modules/
-rw-r–r-- 1 root root 9194 11月 10 20:37 httpd.exp
-rwxr-xr-x 1 root root 31285631 11月 10 23:51 libphp5.so
(2) 查看apache配置文件里面是否有libphp5.so
[root@web02 php-5.5.26]# grep libphp5.so /application/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
(3) 将php源码包里面的php.ini 拷贝到php的安装目录下
[root@web02 php-5.5.26]# cp php.ini-production /application/php/lib/php.ini
4、配置apache整合php(配置httpd.conf)
1
2
3
4
5
6
7
8
311行下增加:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
168行下增加index.php:
DirectoryIndex index.php index.html
67行下增加,将apache进程的运行用户改为www
User www
Group www
5、建立apache的运行用户,这个用户不能登录系统
1
2
3
4
5
useradd www -s /sbin/nologin
id www
/application/apache/bin/apachectl -t
Syntax OK
/application/apache/bin/apachectl graceful
6、检查php
1
2
3
vi /alidata/server/httpd-2.2.34/htdocs/index.php
<?php phpinfo(); ?>7、检查mysql
1
2
3
4
5
6
7
8
9
vi mysql_status.php
<?php $link_id=mysql_connect('localhost','root','123456') or mysql_error(); if($link_id){ echo "mysql successful by oldboy training!"; } else{ echo mysql_error(); } ?>LAMP搭建完成
(四)搭建wordpress
1、下载wordpress
1
2
3
4
wget https://cn.wordpress.org/wordpress-4.5.3-zh_CN.tar.gz
tar xf wordpress-4.5.3-zh_CN.tar.gz
mv wordpress/* /application/apache/html/blog/
chown -R www.www /application/apache/html/blog/
2、创建wordpress数据库
1
2
3
mysql> create database wordpress;
mysql> grant all on wordpress.* to wordpress@‘172.16.1.%’ identified by ‘wordpress123’
mysql> flush privileges;
3、修改hosts记录
1
2
vi /etc/hosts (修改hosts记录将mysql指向本机)
172.16.1.31 MysqlServer.com
4、访问并配置博客 http://blog.etiantian.org/index.php
5、配置wordpress伪静态
(1)在WordPress后台-设置-固定链接-自定义结构,输入下面的代码,最后保存更改即可。
1
/archives/%post_id%.html
(2)在虚拟主机增加权限控制(只需要允许blog站点被访问就可以了,不需要写rewrite)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@Oldboy extra]# tail -15 httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin oldboy@oldboyedu.com
DocumentRoot “/application/apache2.2.31/html/blog”
ServerName blog.etiantian.org
ErrorLog “/app/logs/blog-error_log”
CustomLog “/app/logs/blog-access_log” common
# 增加以下内容
<Directory “/application/apache2.2.31/html/blog”>
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
(3)查看效果