Linux + Nginx + Mysql + Php

1.新建挂载点,挂载光盘

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

clip_p_w_picpath002

2.编辑本地yum 源

# vim /etc/yum.repos.d/rhel-debuginfo.repo

clip_p_w_picpath004

3.安装pcre 和pcre-devel ,pcre提供地址重写功能。pcre系统已经默认安装,还需要安装pcre-devel 文件,pcre-devel提供开发所需的头文件和库文件

# yum list all|grep pcre

clip_p_w_picpath006

# yum install pcre-devel

4.安装后,调用库文件

# ldconfig -v

clip_p_w_picpath008

5.查看系统中的libevent 版本信息,版本号为1.1。libevent为事件触发库,可提高web服务器性能

# ldconfig -pv |grep libevent

clip_p_w_picpath010

6.为了使用新版本的libevent ,下面源码安装libevent 2.0

拆解libevent-2.0.16-stable.tar.gz 包到/usr/local/src/ 下

# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

clip_p_w_picpath012

7.切换到/usr/local/src/libevent-2.0.16-stable

clip_p_w_picpath014

8.查看安装路径,默认安装路径在/usr/local下

# ./configure --help

clip_p_w_picpath016

9.检测预编译环境

# ./configure

clip_p_w_picpath018

10.编译libevent ,生成4类文件:头文件、库文件、可执行文件、说明文件

# make

clip_p_w_picpath020

11.安装libevent,将4类文件存放到相应的位置

# make install

clip_p_w_picpath022

12.安装路径中定义,安装为为/usr/local,切换到/usr/local,下面有lib文件。但是这个lib文件位置为/usr/local/lib ,不是标准路径:/lib 或/usr/lib 。所以要在/etc/ld.so.conf.d 下新建 libevent.conf 文件(在/etc/ld.so.conf有说明),指明libevent库文件的位置。由于include位置为/usr/local/include,是标准路径,所以不用指明位置。

# vim /etc/ld.so.conf.d/libevent.conf

clip_p_w_picpath024

13.调用库文件,然后显示库文件调用情况

# ldconfig -v调用库文件

# ldconfig -pv |grep libevent

clip_p_w_picpath026

clip_p_w_picpath028

14.拆解nginx

# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/

clip_p_w_picpath002[4]

15切换到/usr/local/src/ nginx-1.0.11 下

clip_p_w_picpath004[4]

16.创建系统组 nginx

# groupadd -r nginx

clip_p_w_picpath006[4]

17.创建系统帐号uginx ,使该帐号属于nginx组

# useradd -r -g nginx -s /bin/false -M nginx

或者-s 后跟 /sbin/nologin ;-M 不创建家目录

clip_p_w_picpath008[4]

18.编译

./configure \

--prefix=/usr \

--sbin-path=/usr/sbin/nginx \

--conf-path=/etc/nginx/nginx.conf \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_flv_module \

--with-http_stub_status_module \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/tmp/nginx/client/ \

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

--with-pcre

clip_p_w_picpath010[4]

19 编译

# make

clip_p_w_picpath012[4]

20。安装

# make install

clip_p_w_picpath014[4]

21.启动Nginx,提示缺少目录

# nginx

clip_p_w_picpath002[6]

22. 手动创建/var/tmp/nginx

clip_p_w_picpath004[6]

23.再次启动Nginx

clip_p_w_picpath006[6]

24.安装文本浏览器lynx

clip_p_w_picpath008[6]

# yum install lynx -y

clip_p_w_picpath010[6]

25.访问Nginx服务器

# lynx 127.0.0.1

clip_p_w_picpath012[6]

clip_p_w_picpath014[6]

26.物理目录,在/usr/html 下新建目录abc,在abc 内产生网页文件index.html。由于

location / {

root html;

index index.html index.htm;

}

“location / ”表示可以读取html 目录及其子目录中的index.html ,index.htm 文件

clip_p_w_picpath016[4]

27.

clip_p_w_picpath018[4]

28.虚拟目录

在根下创建目录qq,产生网页文件index.html

clip_p_w_picpath020[4]

编辑配置文件

clip_p_w_picpath022[4]

重启Nginx 服务

# pkill -1 nginx

clip_p_w_picpath024[4]

访问

clip_p_w_picpath026[4]

基于ip 地址的虚拟主机

192.168.101.250 tec.abc.com

192.168.101.251 mkt.abc.com

clip_p_w_picpath027

clip_p_w_picpath029

 

clip_p_w_picpath002[8]

clip_p_w_picpath004[8]

访问测试,两个站点都没有访问成功

clip_p_w_picpath006[8]

clip_p_w_picpath008[8]

查看错误日志,地址已被占用。

# tail -F /var/log/nginx/error.log

clip_p_w_picpath010[8]

关闭Nginx的进程,再启动进程

# pkill nginx

# nginx

clip_p_w_picpath012[8]

clip_p_w_picpath014[8]

基于主机头的虚拟主机

clip_p_w_picpath015

clip_p_w_picpath017

clip_p_w_picpath019

重启服务

# pkill -1 nginx

clip_p_w_picpath021

clip_p_w_picpath023

clip_p_w_picpath025

libevent-2.0.16-stable.tar.gz事件触发库,提高性能

源码安装mysql数据库

1.由于mysql 为绿色软件,不是源代码,故拆解位置在/usr/local/mysql下,若是源代码则应拆解在/usr/local/src下。

# mkdir /usr/local/mysql

# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

 

clip_p_w_picpath002[10]

2.

切换到/usr/local/ 下,进入目录mysql-5.5.15-linux2.6-i686,查看INSTALL-BINARY文件内容

# cd /usr/local/

vim INSTALL-BINARY

按照里面的步骤来详细配置mysql

groupadd mysql 创建组mysql

useradd -r -g mysql mysql 创建系统帐号mysql,加入mysql组

cd /usr/local 进入/usr/local

ln -s mysql-5.5.15-linux2.6-i686 mysql 为该目录设置软连接,方便使用

cd mysql

chown -R mysql . 更改所有文件的所有者为mysql

chgrp -R mysql . 更改所有文件的所属组为mysql

scripts/mysql_install_db --user=mysql 以mysql的身份执行scripts/mysql_install_db脚本

chown -R root . 再将所有文件的所有者改为root

chown -R mysql data 其中要将data目录及其子文件的所有者改为mysql

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql & 启动mysql 数据库,3306 端口

如果想使用service mysqld restart ,来启动数据库,则需要在/etc/init.d下要有名为mysqld 的脚本,执行下面指令,创建/etc/init.d/mysqld脚本

cp support-files/mysql.server /etc/init.d/mysqld

clip_p_w_picpath004[10]

clip_p_w_picpath006[10]

3.设置mysqld开机自启动

# chkconfig --list |grep mysql

clip_p_w_picpath008[10]

4.查看/etc/init.d/mysqld文件,chkconfig: 2345 64 36 : 2345 表示可设置在2345 级别下开机启动或关闭;64 表示s64mysqld ,开机启动顺序,可在/etc/rc.d/rc3.d下查看;36 表示K36mysqld ,关机时关闭服务顺序

clip_p_w_picpath010[10]

5.

clip_p_w_picpath012[10]

clip_p_w_picpath014[10]

6系统启动时,自动调用库文件,位置有/lib /usr/lib ,但是现在mysql的数据库文件位置在/usr/local/mysql/lib,编辑/etc/ld.so.conf文件,该文件指明包含ld.so.conf.d/下的所有.conf文件。在/etc/ld.so.conf.d/ 下新建mysql.conf文件,指明mysqld 的lib 文件的位置

clip_p_w_picpath016[6]

# vim /etc/ld.so.conf.d/mysql.conf

clip_p_w_picpath017

7.查看是否连接到mysql 的lib 库文件

# ldconfig -v|grep mysql

clip_p_w_picpath019[4]

8.系统的头文件位置有:/usr/include/ /usr/local/include/ ,但是mysql的头文件位置在/usr/local/mysql/include,为非标准路径,系统无法调用,应该指明位置,使系统能够找到该位置。可在 /usr/include/ 或者 /usr/local/include/下 做符号连接

cd /usr/include/

# ln -s /usr/local/mysql/include/ mysql

# ll mysql/

clip_p_w_picpath021[4]

mysql安装完毕

php安装

1.检测预编译环境

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --with-libevent-dir=/usr/local --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-iconv-dir=/usr/local

2.编译 ,产生四类文件:头文件、库文件、可执行文件、说明文件

# make

clip_p_w_picpath023[4]

 

3.安装

# make install

4拷贝配置文件.

# cp php.ini-dist /usr/local/php/etc/php.ini

clip_p_w_picpath002[12]

5

clip_p_w_picpath004[12]

6.编辑/usr/local/php/etc/php-fpm.conf

clip_p_w_picpath006[12]

7.将以下几行的前面分号去掉

error_log=
pm.start_server=
pm.max_requests =
pm.max_spare_servers=
pm.min_spare_servers=
pm.max_children=

8.启动fastcgi:
#/usr/local/php/sbin/php-fpm &

clip_p_w_picpath008[12]

9.将fastcgi 设置为开机自启动

#echo “/usr/local/php/sbin/php-fpm &” >> /etc/rc.local

clip_p_w_picpath010[12]

10.修改 /etc/nginx/fastcgi.conf

clip_p_w_picpath012[12]

clip_p_w_picpath014[12]

11. 切换到/etc/nginx, 保证两个文件相同:fastcgi.conf 和 fastcgi_params

cat fastcgi.conf > fastcgi_params

clip_p_w_picpath016[8]

12.

修改/etc/nginx/nginx.conf ,由于配置的有基于ip 地址的虚拟主机,所以现在在其上进行修改

tec.abc.com 主机:

clip_p_w_picpath018[6]

clip_p_w_picpath020[6]

mkt.abc.com主机

clip_p_w_picpath022[6]

clip_p_w_picpath010[14]

13.重启nginx服务:

# pkill -1 nginx

clip_p_w_picpath024[6]

14.编辑/tec/index.php 或/mkt/index.php文件

 

clip_p_w_picpath002[14]

15.测试访问 tec.abc.com

clip_p_w_picpath004[14]

16.测试mysql 与 PHP 的连通性,编辑/tec/index.php 或/mkt/index.php文件

clip_p_w_picpath006[14]

17 测试

clip_p_w_picpath008[14]