1、简介php
LNMP表明的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。html
——Linux是一类Unix计算机操做系统的统称,是目前最流行的免费操做系统。表明版本有:debian、mysql
centos、ubuntu、fedora、gentoo等。nginx
——Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。sql
——Mysql是一个小型关系型数据库管理系统。数据库
——PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。ubuntu
这四种软件均为免费开源软件,组合到一块儿,成为一个免费、高效、扩展性强的网站服务系统。vim
2、项目环境centos
Linux 6.5api
Nginx-1.8.1.tar.gz
Mysql-5.6.16.tar.gz
php-5.6.20.tar.gz
nginx源码包下载地址http://nginx.org/en/download.html
3、项目架构
4、安装过程
一、nginx服务器安装配置
(1)首先安装开发环境,及所需依赖
[root@nginx ~]# yum -y groupinstall "Development libraries" "Development tools" "X Software Development"
[root@nginx ~]# yum -y install gcc pcre pcre-devel
(2)添加nginx使用用户
[root@nginx ~]#useradd -r www
(3)编译安装nginx
[root@nginx ~]# tar -zxvf nginx-1.8.1.tar.gz
[root@nginx ~]# cd nginx-1.8.1
[root@nginx nginx-1.8.1]# ./configure --prefix=/usr/local/nginx \
> --user=www --group=www \
> --with-http_ssl_module \ ## 启用ngx_http_ssl_module支持(需已安装openssl)
> --with-http_stub_status_module \ ##启用nginx的NginxStatus功能
> --with-http_gzip_static_module \ ##启用ngx_http_gzip_static_module支持
> --with-pcre
[root@nginx nginx-1.8.1]# make && make install
(4)编辑nginx.conf,在server段中如下内容去掉注释
location ~ \.php$ {
fastcgi_pass 192.168.32.130:9000; ##PHP服务器,及监听端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
(5)启动nginx
[root@nginx ~]# /usr/local/nginx/sbin/nginx
(6)测试访问,访问成功以下图:
二、PHP服务器的安装
(1)PHP所需依赖,及添加用户
[root@php ~]# yum -y install gcc openssl-devel pcre pcre-devel zlib-devel libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel
[root@php ~]# useradd -r www
(2)安装PHP扩展
[root@php ~ ]# tar -zxvf mhash-0.9.9.9.tar.gz
[root@php mhash-0.9.9.9]# cd mhash-0.9.9.9
[root@php mhash-0.9.9.9]# ./configure
[root@php mhash-0.9.9.9]# make && make install
[root@php ~ ]# tar -zxvf libiconv-1.13.tar.gz
[root@php libiconv-1.13]# cd libiconv-1.13
[root@php libiconv-1.13]# ./configure
[root@php libiconv-1.13]# make && make install
[root@php libmcrypt-2.5.8]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@php libmcrypt-2.5.8]# cd libmcrypt-2.5.8
[root@php libmcrypt-2.5.8]# ./configure
[root@php libmcrypt-2.5.8]# make && make install
[root@php libmcrypt-2.5.8]# ldconfig -v
[root@php libmcrypt-2.5.8]# cd libltdl
[root@php libltdl ]# ./configure --with-gmetad --enable-gexec --enable-ltdl-install
[root@php libltdl ]# make && make install
[root@php ~ ]# ln -sv /usr/local/lib/libmcrypt* /usr/lib/
[root@php ~ ]# ln -sv /usr/local/lib/libmhash.* /usr/lib/
[root@php ~ ] # ldconfig -v
(3)编译安装PHP
[root@php ~]#tar -zxvf php-5.6.20.tar.gz
[root@php ~]#cd php-5.6.20
[root@php php-5.6.20]#./configure --prefix=/usr/local/php5 \
> --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd \
>--with-mysqli=mysqlnd --with-openssl \
>--enable-mbstring --with-freetype-dir \
>--with-jpeg-dir --with-png-dir --with-zlib \
>--with-libxml-dir=/usr --enable-xml \
>--enable-sockets --enable-fpm \
>--with-mcrypt --with-config-file-path=/etc \
>--with-config-file-scan-dir=/etc/php.d \
>--with-bz2 --with-mcrypt --with-mhash \
>--with-iconv-dir=/usr/local
configure: error: Cannot find ldap libraries in /usr/lib 解决办法: cp -frp /usr/lib64/libldap* /usr/lib/ 若是出现的报错相似于libmysqlclient.so.18这样的文件not found,查找以后作个软链接,并ldconfig && make clean |
[root@php php-5.6.20]#make && make install
[root@php php-5.6.20]#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@php php-5.6.20]#chmod +x /etc/init.d/php-fpm
[root@php php-5.6.20]#chkconfig --add php-fpm
[root@php php-5.6.20]#chkconfig php-fpm on
[root@php php-5.6.20]# cd /usr/local/php5/etc/
[root@php etc]# cp php-fpm.conf.default php-fpm.conf
[root@php etc]#cat php-fpm.conf ## 更改如下内容
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = error
daemonize = yes
[www]
user = www
group = www
listen = 192.168.32.130:9000
pm = dynamic ## 进程管理方式为dynamic,static为静态
pm.max_children = 32 ##子进程最大数根据官方建议,小于2GB内存的服务器,
##能够只开启64个进程,4GB以上内存的服务器能够开启200个进程。
pm.start_servers = 15 ##动态方式下的起始php-fpm进程数量。
pm.min_spare_servers = 5 ##动态方式下的最小php-fpm进程数量
pm.max_spare_servers = 32 ##动态方式下的最大php-fpm进程数量
[root@php etc]# service php-fpm start
[root@php etc]#cd /var/www/html
[root@php html]# cat index.php ##测试页面
<!--?php
$link = mysql_connect('192.168.32.128','root','123456');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
三、mysql服务器安装
(1)编译安装mysql
[root@mysql ~]# yum -y install gcc cmake
[root@mysql ~]#useradd -s /sbin/nologin -M mysql
[root@mysql ~]#tar -zxvf mysql-5.6.16.tar.gz
[root@mysql ~]# cd mysql-5.6.16
[root@mysql mysql-5.6.16]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
> -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all \
> -DWITH_READLINE=1 -DWITH_SSL=system \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@mysql mysql-5.6.16]#make &&make install
(2)配置mysql
[root@mysql mysql-5.6.16]#cd /usr/local/mysql
[root@mysql mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@mysql mysql]# ./scripts/mysql_install_db --user=mysql \
>--datadir=/usr/local/mysql/data ##Mysql初始化
[root@mysql mysql]# ls data/
mysql performance_schema test
[root@mysql mysql]#cp support-files/my-medium.cnf /etc/my.cnf
[root@mysql mysql]#cp support-files/mysql.server /etc/init.d/mysqld
[root@mysql mysql]# chmod +x /etc/init.d/mysqld
[root@mysql mysql]#chkconfig mysqld on
(3)环境变量设置
[root@mysql ~]# vim /etc/profile
PATH=/bin:/usr/local/mysql/bin/ :$PATH
[root@mysql ~]# source /etc/profile
[root@mysql ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib/
[root@mysql ~]# ldconfig
(4)数据库受权
mysql> grant all privileges on *.* to root@% identified by '123456';
mysql> grant all privileges on *.* to root@'localhost' identified by '123456';
mysql> flush privileges;
(5)测试