Nginx是通过php-fpm这个服务来处理php文件
Apache是通过libphp5.so这个模块来处理php文件
Apache的libphp5.so随着apache服务器一起运行,而nginx和php-fpm是各自独立运行,所以在服务的运行过程中,nginx和php-fpm都需要分别启动
修改Nginx配置文件,启动nginx服务,修改php配置文件,启动php-fpm服务
LNMP软件所需要的软件包
MySQL=http://dev.mysql.com/downloads/mysql/
PHP=http://php.net/downloads.php
Nginx=http://nginx.org/en/download.html
libmcrypt=http://mcrypt.hellug.gr/index.html
pcre=http://pcre.org/ pcre是php的依赖包!!!!!
Mysql源码安装
解决环境问题
yum install gcc gcc-c++
yum install cmake-2.8.12.2-4.el6.x86_64.rpm
yum install ncurses-devel
yum install biso
tar zxf mysql-boost-5.7.17.tar.gz 解压压缩包
cmake验证
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1\ -DWITH_INNOBASE_STORAGE_ENGINE=1\ -DWITH_MEMORY_STORAGE_ENGINE=1\ -DWITH_READLINE=1\ -DENABLED_LOCAL_INFILE=1\ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL-USER=mysql
DCMAKE_INSTALL_PREFIX #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置
DMYSQL_UNIX_ADDR #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
DDEFAULT_CHARSET #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集DDEFAULT_COLLATION #默认字符校对
DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默认值也是all支持所有的字符集DWITH_MYISAM_STORAGE_ENGINE #静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎
DWITH_INNOBASE_STORAGE_ENGINEDWITH_MEMORY_STORAGE_ENGINEDWITH_READLINE #支持readline库DENABLED_LOCAL_INFILE #允许本地倒入数据,启用加载本地数据DMYSQL_DATADIR #mysql数据库存放路径DMYSQL-USER #运行mysql的用户
chown -R mysql:mysql /usr/local/mysql/ //属主属组更改#这里的权限需要注意:#1、数据目录给mysql属主和属组 #2、文件安装目录,在安装之前,给mysql属主和属组,安装之后,改成root用户,mysql组,否则在启动的时候,可能启动不了!
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf //覆盖原配置文件cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //启动脚本
vim /etc/init.d/mysqld //更改启动脚本中指定#mysql位置
basedir=datadir=#修改为basedir=/usr/local/mysqldatadir=/usr/local/mysql/data #
开机启动 chkconfig mysqld on
mysqld --initialize --user=mysql 初始化数据库
mysql_secure_installation 设置密码即可
解决环境问题需要安装以下rpm软件
yum install net-snmp-devel gmp-devel -y curl-devel -y
openssl-devel -y re2c-0.13.5-1.el6.x86_64.rpm -y libxml2-devel -y libmcrypt-devel-2.5.8-9.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm
之后 开始编译
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl -with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-mcrypt --with-mhash
--with-config-file-path #设置 php.ini 的搜索路径。默认为 PREFIX/lib
--with-mysql #mysql安装目录,对mysql的支持
--with-mysqli #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动
--with-iconv-dir #种字符集间的转换
--with-freetype-dir #打开对freetype字体库的支持
--with-jpeg-dir #打开对jpeg图片的支持
--with-png-dir #打开对png图片的支持
--with-zlib #打开zlib库的支持,实现GZIP压缩输出
--with-libxml-dir=/usr #打开libxml2库的支持,libxml是一个用来解析XML文档的函数库
--enable-xml #支持xml文档
--disable-rpath #关闭额外的运行库文件
--enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-shmop #shmop共享内存操作函数,可以与c/c++通讯--enable-sysvsem #加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。
--enable-inline-optimization #优化线程
--with-curl #打开curl浏览工具的支持
--with-curlwrappers #运用curl工具打开url流 ,新版PHP5.6已弃用
--enable-mbregex #支持多字节正则表达式
--enable-fpm #CGI方式安装的启动程序,PHP-FPM服务
--enable-mbstring #多字节,字符串的支持-
-with-gd #打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
--enable-gd-native-ttf #支持TrueType字符串函数库
--with-openssl #打开ssl支持
--with-mhash #支持mhash算法扩展
--enable-pcntl #freeTDS需要用到的,pcntl扩展可以支持php的多线程操作
--enable-sockets #打开 sockets 支持
--with-xmlrpc #打开xml-rpc的c语言-
-enable-zip #打开对zip的支持
--enable-soap #扩展库通过soap协议实现了客服端与服务器端的数据交互操作
--with-mcrypt #mcrypt算法扩展
配置文件
cd /usr/local/lnmp/php/
cd etc/
cp php-fpm.conf.default php-fpm.con
cd /mnt/lamp/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/
cd /usr/local/lnmp/php/
cd etc/
vim php-fpm.conf
tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-sticky-module-ng.tar.gz
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37*************************************
--with-http_dav_module #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法) 默认关闭,需要编译开启
--with-http_stub_status_module #启用支持(获取Nginx上次启动以来的工作状态)-
-with-http_addition_module #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)
--with-http_sub_module #启用支持(允许一些其他文本替换Nginx相应中的一些文本)--with-http_flv_module #启用支持(提供支持flv视频文件支持)
--with-http_mp4_module #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)
--with-pcre=/usr/local/src/pcre-8.37 #需要注意,这里指的是源码,用#./configure --help |grep pcre
文件组成
ll /usr/local/nginx/drwxr-xr-x 2 root root 4096 Sep 1513:44
conf #Nginx相关配置文件drwxr-xr-x 2 root root 4096 Sep 1513:44
html #网站根目录drwxr-xr-x 2 root root 4096 Sep 1513:44
ogs #日志文件drwxr-xr-x 2 root root 4096 Sep 1513:44
sbin #Nginx启动脚本
配置文件 vim /usr/local/lnmp/nginx/conf/nginx.conf
#location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} #找到上面这段内容,将这段内容复制,去掉#
且修改为如下
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将scripts修改为nginx的html,即Nginx页面目录,因为要处理的php文件也在这个目录下 include fastcgi_params;
测试使用
echo "" > /usr/local/nginx/html/index.php
出现网页即可
根据以前博客按需要解决问题即可
在php -m 看到memcache
yum 安装 memcached
配置文件之 memcache.conf 与example.conf到 nginx 下html目录中
就可以看到结果