Linux + Nginx + Mysql + Php
1.新建挂载点,挂载光盘
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
2.编辑本地yum 源
# vim /etc/yum.repos.d/rhel-debuginfo.repo
3.安装pcre 和pcre-devel ,pcre提供地址重写功能。pcre系统已经默认安装,还需要安装pcre-devel 文件,pcre-devel提供开发所需的头文件和库文件
# yum list all|grep pcre
# yum install pcre-devel
4.安装后,调用库文件
# ldconfig -v
5.查看系统中的libevent 版本信息,版本号为1.1。libevent为事件触发库,可提高web服务器性能
# ldconfig -pv |grep libevent
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/
7.切换到/usr/local/src/libevent-2.0.16-stable
8.查看安装路径,默认安装路径在/usr/local下
# ./configure --help
9.检测预编译环境
# ./configure
10.编译libevent ,生成4类文件:头文件、库文件、可执行文件、说明文件
# make
11.安装libevent,将4类文件存放到相应的位置
# make install
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
13.调用库文件,然后显示库文件调用情况
# ldconfig -v调用库文件
# ldconfig -pv |grep libevent
14.拆解nginx
# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/
15切换到/usr/local/src/ nginx-1.0.11 下
16.创建系统组 nginx
# groupadd -r nginx
17.创建系统帐号uginx ,使该帐号属于nginx组
# useradd -r -g nginx -s /bin/false -M nginx
或者-s 后跟 /sbin/nologin ;-M 不创建家目录
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
19 编译
# make
20。安装
# make install
21.启动Nginx,提示缺少目录
# nginx
22. 手动创建/var/tmp/nginx
23.再次启动Nginx
24.安装文本浏览器lynx
# yum install lynx -y
25.访问Nginx服务器
# lynx 127.0.0.1
26.物理目录,在/usr/html 下新建目录abc,在abc 内产生网页文件index.html。由于
location / {
root html;
index index.html index.htm;
}
“location / ”表示可以读取html 目录及其子目录中的index.html ,index.htm 文件
27.
28.虚拟目录
在根下创建目录qq,产生网页文件index.html
编辑配置文件
重启Nginx 服务
# pkill -1 nginx
访问
基于ip 地址的虚拟主机
192.168.101.250 tec.abc.com
192.168.101.251 mkt.abc.com
访问测试,两个站点都没有访问成功
查看错误日志,地址已被占用。
# tail -F /var/log/nginx/error.log
关闭Nginx的进程,再启动进程
# pkill nginx
# nginx
基于主机头的虚拟主机
重启服务
# pkill -1 nginx
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/
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
3.设置mysqld开机自启动
# chkconfig --list |grep mysql
4.查看/etc/init.d/mysqld文件,chkconfig: 2345 64 36 : 2345 表示可设置在2345 级别下开机启动或关闭;64 表示s64mysqld ,开机启动顺序,可在/etc/rc.d/rc3.d下查看;36 表示K36mysqld ,关机时关闭服务顺序
5.
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 文件的位置
# vim /etc/ld.so.conf.d/mysql.conf
7.查看是否连接到mysql 的lib 库文件
# ldconfig -v|grep mysql
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/
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
3.安装
# make install
4拷贝配置文件.
# cp php.ini-dist /usr/local/php/etc/php.ini
5
6.编辑/usr/local/php/etc/php-fpm.conf
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 &
9.将fastcgi 设置为开机自启动
#echo “/usr/local/php/sbin/php-fpm &” >> /etc/rc.local
10.修改 /etc/nginx/fastcgi.conf
11. 切换到/etc/nginx, 保证两个文件相同:fastcgi.conf 和 fastcgi_params
cat fastcgi.conf > fastcgi_params
12.
修改/etc/nginx/nginx.conf ,由于配置的有基于ip 地址的虚拟主机,所以现在在其上进行修改
tec.abc.com 主机:
mkt.abc.com主机 :
13.重启nginx服务:
# pkill -1 nginx
14.编辑/tec/index.php 或/mkt/index.php文件
15.测试访问 tec.abc.com
16.测试mysql 与 PHP 的连通性,编辑/tec/index.php 或/mkt/index.php文件
17 测试