手记

LAMP环境httpd+mysql+php

一、安装编译工具和依赖包

[root@www src]# yum -y install gc gcc-c++ pcre-devel ncurses-devel openssl-devel libpng-devel libtool libxslt-devel libxml2-devel libXpm-devel curl-devel


二、安装PHP和MySQL所需要的软件

1、安装cmake

[root@www cmake-2.8.10.2]# ./bootstrap
[root@www cmake-2.8.10.2]# make && make

2、安装freetype

[root@www freetype-2.4.0]# ./configure --prefix=/usr/local/freetype
[root@www freetype-2.4.0]# make

3、安装libmcrypt

[root@www libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt
[root@www libmcrypt-2.5.8]# make

4、安装libiconv

[root@www libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
[root@www libiconv-1.14]# make install

5、安装jpeg-6b

[root@www src]# cd jpeg-6b/
[root@www jpeg-6b]# mkdir /usr/local/jpeg6
[root@www jpeg-6b]# mkdir /usr/local/jpeg6/bin
[root@www jpeg-6b]# mkdir /usr/local/jpeg6/lib
[root@www jpeg-6b]# mkdir /usr/local/jpeg6/include
[root@www jpeg-6b]# mkdir /usr/local/jpeg6/man/man1 -p

[root@www jpeg-6b]# cp /usr/share/libtool/config/config.sub .
cp: overwrite `./config.sub'? y
[root@www jpeg-6b]# cp /usr/share/libtool/config/config.guess .
cp: overwrite `./config.guess'? y
[root@www jpeg-6b]# ./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
[root@www jpeg-6b]# make

6、安装gd2

[root@www libgd-2.1.1]# ./configure --prefix=/usr/local/libgd2 --with-zlib --with-jpeg=/usr/local/jpeg6 --with-png --with-freetype=/usr/local/freetype


三、安装mysql

1、创建mysql用户

[root@www mysql-5.6.27]# groupadd mysql
[root@www mysql-5.6.27]# useradd -r -g mysql mysql

2、编译安装mysql

[root@www mysql-5.6.27]# cmake . \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_DATADIR=/var/lib/mysql \
> -DSYSCONFDIR=/etc \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
> -DMYSQL_TCP_PORT=3306 \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_PARTITION_STORAGE_ENGINE=1 \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    WITH_MEMORY_STORAGE_ENGINE
    WITH_READLINE


-- Build files have been written to: /usr/local/src/mysql-5.6.27

[root@www mysql-5.6.27]# gmake
[root@www mysql-5.6.27]# gmake install

3、修改/usr/local/mysql文件权限

[root@www mysql-5.6.27]# chown -R mysql:mysql /usr/local/mysql
[root@www mysql-5.6.27]# ll -d /usr/local/mysql
drwxr-xr-x 13 mysql mysql 4096 Dec 14 12:08 /usr/local/mysql

4、创建数据库存储目录

[root@www mysql-5.6.27]# mkdir /var/lib/mysql
[root@www mysql-5.6.27]# chown mysql. /var/lib/mysql


5、安装系统数据库

[root@www scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/var/lib/mysql --no-defaults --user=mysql

[root@www scripts]# ls /var/lib/mysql/
ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

6、复制配置文件

[root@www scripts]# cd /usr/local/mysql/support-files/
[root@www support-files]# ls
binary-configure  magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server

[root@www support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y

[root@www support-files]# vim /etc/my.cnf    //修改配置
basedir = /usr/local/mysql
datadir = /var/lib/mysql
port = 3306
# server_id = .....
socket = /var/lib/mysql/mysql.sock

7、添加启动脚本并设置开机启动

[root@www support-files]# cp mysql.server /etc/rc.d/init.d/mysqld
[root@www support-files]# chmod +x /etc/rc.d/init.d/mysqld

[root@www support-files]# service mysqld start
Starting MySQL.. SUCCESS!
[root@www support-files]# chkconfig --add mysqld
[root@www support-files]# chkconfig mysqld on

8、登录mysql

[root@www support-files]# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.27 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

9、设置mysql环境变量

[root@www www]# vim /etc/profile.d/path.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin
[root@www www]# source /etc/profile.d/path.sh


[root@www www]# which mysqld
/usr/local/mysql/bin/mysqld


四、安装apache2

1、安装apr和apr-util

[root@www apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@www apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr


2、编译安装apache2

[root@www httpd-2.2.31]# ./configure \

--prefix=/usr/local/apache2 \
--sysconfdir=/etc/httpd \
--with-included-apr \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre \
--enable-mem-cache \
--enable-cache \
--enable-static-support \
--with-z


[root@www httpd-2.2.31]# make

[root@www httpd-2.2.31]# make install
make[1]: Leaving directory `/usr/local/src/httpd-2.2.31'
[root@www httpd-2.2.31]# echo $?
0

[root@www ~]# ls /usr/local/apache2/
bin  build  cgi-bin  error  htdocs  icons  include  lib  logs  man  manual  modules


[root@www httpd-2.2.31]# /usr/local/apache2/bin/apachectl start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

[root@www httpd-2.2.31]# netstat -tnlp | grep 80
tcp        0      0 :::80                       :::*                        LISTEN      2112/httpd 

[root@www ~]# rm -rf /usr/local/apache2
[root@www src]# rm -rf httpd-2.2.31

[root@www src]# rm -rf /etc/httpd


reboot

[root@www ~]# netstat -tnlp | grep 80


[root@www httpd-2.2.31]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre --enable-mem-cache --enable-cache --enable-static-support --with-z


[root@www httpd-2.2.31]# /usr/local/apache2/bin/apachectl start
[root@www httpd-2.2.31]# netstat -tnlp | grep 80
tcp        0      0 :::80                       :::*                        LISTEN      50223/httpd 

[root@www httpd-2.2.31]# /usr/local/apache2/bin/apachectl -t
Syntax OK

3、创建启动脚本

[root@www src]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd


五、安装PHP

1、编译安装php

[root@www php-5.6.14]# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-gd=/usr/local/libgd2 \
--with-jpeg-dir=/usr/local/jpeg6 \
--with-freetype-dir=/usr/local/freetype \
--with-mcrypt=/usr/local/libmcrypt \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-libxml-dir \
--with-zlib-dir \
--with-png-dir \
--with-iconv-dir=/usr/local/libiconv \
--with-openssl \
--with-curl \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6 \
--enable-ftp \
--with-mhash \
--with-pcre-dir=/usr/bin/pcre-config \
--enable-zip \
--with-bz2

报错:

configure: error: Please reinstall the BZip2 distribution

[root@www php-5.6.14]# yum install -y bzip2 bzip2-devel


Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/usr/local/src/php-5.6.14/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:          /usr/local/php/include/php/ext/pdo/


[root@www php-5.6.14]# echo $?
0
[root@www php-5.6.14]# ls /usr/local/php/
bin  etc  include  lib  php


2、测试php

[root@www php-5.6.14]# ls /usr/local/apache2/htdocs/index.html
/usr/local/apache2/htdocs/index.html
[root@www php-5.6.14]# cat !$
cat /usr/local/apache2/htdocs/index.html
<html><body><h1>It works!</h1></body></html>[root@www php-5.6.14]#


[root@www php-5.6.14]# vim /etc/httpd/httpd.conf  //修改配置

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php .phtml


创建测试页面

[root@www php-5.6.14]# vim /usr/local/apache2/htdocs/index.php

<?php
phpinfo();
?>

[root@www php-5.6.14]# cp php.ini-production /usr/local/php/etc/php.ini

重新加载php配置:
[root@www php-5.6.14]# /usr/local/apache2/bin/apachectl graceful


0人推荐
随时随地看视频
慕课网APP