源码安装LAMP

(一)安装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)查看效果

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值