前提:假设阅读本文的读者已经拥有基本的linux使用技巧,可以解决系统安装问题,以及软件安装的技巧。php
注意: 本文所涉及的主要安装包(须要下载使用的)安装包,在本文最后会给出百度云盘连接,须要使用的,能够自由下载。html
建议: 建议先通篇阅读本文,了解Nginx 各组件之间的关系后再进行安装,作到胸有大局,而后进行进一步的操做。mysql
安装所在的机器配置:linux
百度云盘:连接: http://pan.baidu.com/s/1o8SyQ2e 密码: i6hknginx
groupadd nginx useradd -g nginx nginx groupadd mysql useradd -g mysql mysql
yum -y install gcc gcc-c++
nginx 须要第三方库的支持:c++
gzip 用来压缩网页。gzip 须要 zlib库。web
rewrite 用来实现网页重定向的功能。 rewrite 须要 pcre(Perl Compatible Regular Expression)库。sql
ssl 是一个加密库。如https.ssl 功能须要 openssl库数据库
yum -y install \ zlib \ zlib-devel \ openssl \ openssl-devel \ pcre pcre-devel
那么既然已经安装了 zlib openssl pcere 包为何还要安装 zlib-devel 等包呢?api
devel 包主要是供开发使用的,包里面至少包括如下2个东西。
一、头文件
二、连接库
以zlib 和 zlib-devel 为例.
若是你安装的是基于zlib 开发的程序,只须要安装zlib就行。
若是你要你变使用了glib的源代码,则须要使用glib-devel。
本文中咱们要先安装zlib,因为不肯定咱们机器里面有没有这个库,因此就一并将zlib-devel安装上了。
因为yum会自动解决依赖,因此即便没有安装-devel,应该也会本身安装。做为了解原理,建议你们仍是手动安装。
mkdir -p /usr/local/webserver/source cd /usr/local/webserver/source
从文后的百度云盘中下载nginx-1.8.0.tar.gz 文件。
tar -xf nginx-1.8.0.tar.gz //解压文件 cd nginx-1.8.0 ./configure --help //查看编译
选项
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install /usr/local/webserver/nginx/sbin/nginx -V //查看nginx的版本信息 /usr/local/webserver/nginx/sbin/nginx -h //查看nginx的帮助信息 /usr/local/webserver/nginx/sbin/nginx //启动nginx 打开浏览器,输入linux的ip。能够看到欢迎的信息。 /usr/local/webserver/nginx/sbin/nginx -s stop //关闭nginx /usr/local/webserver/nginx/sbin/nginx //从新启动,以便后续操做。
5.一、 解决mysql的安装依赖
cmake 用来编译mysql,因此要先下载cmake。
ncurses 和 ncurses-devel 是mysql的字符终端处理库。
yum -y install cmake ncurses ncurses-devel
下载文后网盘中的mysql-5.6.24.tar.gz 文件至 /usr/local/webserver/source
tar -xf mysql-5.6.24.tar.gz // 解压mysql cd /usr/local/webserver/source/mysql-5.6.24 查看编译选项:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \ -DMYSQL_DATADIR=/usr/local/webserver/mysql/data \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci
如下为编译选项解释
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \ //mysql的安装路径 -DMYSQL_DATADIR=/usr/local/webserver/mysql/data \ //mysql的表数据存储路径 -DWITH_MYISAM_STORAGE_ENGINE=1 \ //装载MYISAM存储引擎。注:mysql的存储引擎是插件化的。须要按需加载。 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ //装载INNODB存储引擎。 -DWITH_MEMORY_STORAGE_ENGINE=1 \ // 装载 memory引擎,该引擎并不经常使用。 -DWITH_READLINE=1 \ // 不知道这是什么意思。 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ //mysql 的sock文件路径。 -DMYSQL_TCP_PORT=3306 \ //mysql的监听端口,默认3306. -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ //默认的字符集为utf8 -DDEFAULT_COLLATION=utf8_general_ci 执行编译: make && make install
我这里用单核的服务器使用了整整20分钟,虚拟机可能要30分钟以上。耐心等待,不要执行其余操做,此时cpu处于99%的满载状态。
/usr/local/webserver/mysql/scripts ./scripts/mysql_install_db \ --basedir=/usr/local/webserver/mysql \ --datadir=/usr/local/webserver/mysql/data \ --user=mysql
设置开机启动:
/usr/local/webserver/mysql/support-files cp ./mysql.server /etc/init.d/mysql //复制到系统自启动目录。 chkconfig mysql on //设置开机启动 service mysql start //启动MySQL PATH=/usr/local/webserver/mysql/bin/:$PATH //将mysql命令设置到全局命令路径中 export PATH //将PATH设置为全局变量 source /etc/profile //从新载入系统配置 5.6 测试mysql mysql -u root set password = password('密码') //设置密码 exit //退出
//以后的测试就不讲了。
6.一、解决环境依赖
yum -y install libxml2 libxml2-devel yum -y install libcurl libcurl-devel
下载文后所示网盘中的 php-5.6.24.tar.gz 文件至/usr/local/webserver/source
cd /usr/local/webserver/source tar -xf php-5.6.24.tar.gz cd /usr/local/webserver/source/php-5.6.24 ./configure --help //查看下配置项
配置项以下:
./configure \ --prefix=/usr/local/webserver/php \ --enable-fpm \ --with-config-file-path=/usr/local/webserver/php/conf \ --with-zlib \ --with-curl \ --enable-mysqlnd \ --enable-pdo \ --enable-mbstring \ --with-mysql=/usr/local/webserver/mysql \ --with-pdo-mysql=mysqlnd \ --with-openssl-dir \ --disable-fileinfo make && make install
cd /usr/local/webserver/php mkdir conf /usr/local/webserver/source/php-5.6.24/php.ini-development ./conf/php.ini //复制配置 cd /usr/local/webserver/php/etc mv php-fpm.conf.default php-fpm.conf ls /usr/local/webserver/source/php-5.6.24/sapi/fpm/php-fpm /usr/local/bin/ php-fpm -h //查看php的配置信息 php-fpm -m //查看加载了那些模块
修改nginx配置,使其支持php后缀的文件。
//约52行 65行。
location / { root html; index index.php index.html index.htm; } location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
修改php的配置,修改时间选项。
//约925行 date.timezone = Asia/Shanghai //你不在上海也填上海。这个指的是时区。
ln -s /usr/local/webserver/nginx/sbin/nginx /usr/local/bin/ ln -s /usr/local/webserver/php/sbin/php-fpm /usr/local/bin/ cd / 执行 nginx 执行 php-fpm cd /usr/local/webserver/nginx/html/ mv index.html index.php 写一个phpinfo(); 的函数。去浏览器看下效果。
以上,已经将nginx 、php 、mysql 三者结合在了一块儿。若是你已经按照上面的提示安装成功,那么恭喜你,你运气真好。实践的过程当中,可能会遇到各类各样的报错,必定要详细的看报错的信息,根据报错的信息去安装相应的组件。每一个人的机器不一样,可能报错的类别也不同,遇到报错的欢迎你们到评论区提问,共同研讨,共同提升。
这篇文章的目的在于让你们了解到nginx 、php 、mysql三者之间的组合关系。本文中没有安装GD库,Reids 和 Memcache 等库。这留在后续的文章中逐步的去讲。如何让php经过打补丁(phpize)的方式将未加的组件编译进来。