LNMP分离式部署搭建
一、前期准备
Mysql:192.168.200.143
二、服务搭建
一、Nginx Web搭建
yum install -y pcre-devel openssl-devel #用本地yum仓库安装依赖包wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件源码包useradd -s /sbin/nologin -M www #创建程序用户tar xf nginx-1.10.2.tar.gz -C /usr/src/ #解压缩cd /usr/src/nginx-1.10.2./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #预配置make && make install #编译和安装ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #给命令做软连接,以便PATH能找到/usr/local/nginx/sbin/nginx #启动nginx
特别提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重启命令
/usr/local/nginx/sbin/nginx -s stop nginx停止服务命令
(2)、加工Nginx配置文件
cd /usr/local/nginx/confegrep -v "#|^$" nginx.conf.default > nginx.conf
2、安装二进制MySQL数据库
(1)、创建mysql用户的账号
groupadd mysqluseradd -s /sbin/nologin -g mysql -M mysql
提取码:4yjf
(3)、采用二进制方式安装MySQL
tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/cd /usr/local/mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32ln -s mysql-5.5.32 mysql
(4)、初始化MySQL配置文件my.cnf
cd /usr/local/mysqlls -l support-files/*.cnf/bin/cp support-files/my-small.cnf /etc/my.cnf
(5)、初始化MySQL数据库文件
mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql#初始化MySQL数据库文件,会有很多信息提示,如果没有ERROR级别的错误,会有两个OK的字样,表示初始化成功,否则就要解决初始化的问题
这些MySQL数据文件是MySQL正确运行所必需的基本数据库文件,其功能是对MySQL权限,状态等进行管理。
(7)配置mysql命令的全局使用路径
(9)、MySQL安全配置、为MySQL的root用户设置密码
mysqladmin -u root password '123123' #设置root用户密码mysql -uroot -p123123 #用root用户登录数据库
二、安装Nginx
1、安装解压
yum install -y pcre-devel openssl-devel #用本地yum仓库安装依赖包#wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件源码包tar xf nginx-1.10.2.tar.gz -C /usr/src/ #解压缩cd /usr/src/nginx-1.10.2./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #预配置,命令说明:--with-http_stub_status_module 要运用的模块名,--with指定模块make && make install #编译和安装ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #给命令做软连接,以便PATH能找到
2、创建一个程序用户
useradd -M -s /sbin/nologin nginx #创建程序用户/usr/local/nginx/sbin/nginx #启动nginx特别提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重启命令/usr/local/nginx/sbin/nginx -s stop nginx停止服务命令web排错三部曲下面介绍客户端排查的思路第一步,在客户端上ping服务器端IP,命令如下:ping 10.0.0.8排除物理线路问题影响第二步,在客户端上telnet服务器端IP,端口,命令如下:telnet 10.0.0.8 80排除防火墙等得影响第三步,在客户端使用wget命令检测,如下:wget 10.0.0.8(curl -I 10.0.0.8)模拟用户访问,排除http服务自身问题,根据输出在排错
3、安装完成后进入配置文件目录加工下配置文件
Nginx主配置文件nginx.conf,路径:/usr/local/nginx/conf/nginx.confegrep -v "#|^$" nginx.conf.default > nginx.conf #去掉包含#号和空行的内容
4、配置Nginx支持PHP程序请求访问
(1)查看nginx当前的配置[root@LNMP conf]# vim nginx.confworker_processes 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;include extra/www.conf;include extra/mail.conf;include extra/blog.conf;}(2)PHP解析,这里以blog为例讲解,内容如下:[root@LNMP extra]# cat blog.confserver {listen 80;server_name blog.shidu.com;location / {root html/blog;index index.html index.htm;}}最终blog虚拟机的完整配置如下:[root@LNMP extra]# cat blog.confserver {listen 80;server_name blog.shidu.com;location / {root html/blog;index index.html index.htm;}location ~ .*.(php|php5)?$ {root html/blog;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}}
三、PHP安装
1 检查Nginx及MySQL的安装情况
(1)检查确认Nginx及MySQL的安装路径
[root@LNMP ~]# ls -ld /usr/local/nginxdrwxr-xr-x. 11 root root 4096 Nov 9 00:42 /usr/local/nginx[root@LNMP ~]# ls -ld /usr/local/mysqllrwxrwxrwx. 1 mysql mysql 12 Nov 9 01:00 /usr/local/mysql -> mysql-5.5.32
2 安装相关的lib软件包
yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd libcurl-devel libxslt-devel
从上图结果看出,仅有libiconv-devel这个包没有安装,因为默认的yum源没有此包,后面会编译安装。
3、安装yum无法安装的libiconv库
./configure --prefix=/usr/local/libiconv && make && make install #开始编译安装
4、安装libmcrypt库mhash加密扩展库mcrvpt加密扩展库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #推荐使用简单的在线yum的方式安装cd /etc/yum.repos.d/yum -y install libmcrypt-devel #安装libmcrypt库yum -y install mhash #安装mhash加密扩展库yum -y install mcrypt #mcrvpt加密扩展库
提取码:c970
6、解压配置PHP
tar xf php-5.3.28.tar.gz -C /usr/src/cd /usr/src/php-5.3.28/./configure> --prefix=/usr/local/php5.3.28> --with-mysql=mysqlnd> --with-iconv-dir=/usr/local/libiconv> --with-freetype-dir> --with-jpeg-dir> --with-png-dir> --with-zlib> --with-libxml-dir=/usr> --enable-xml> --disable-rpath> --enable-safe-mode> --enable-bcmath> --enable-shmop> --enable-sysvsem> --enable-inline-optimization> --with-curl> --with-curlwrappers> --enable-mbregex> --enable-fpm> --enable-mbstring> --with-mcrypt> --with-gd> --enable-gd-native-ttf> --with-openssl> --with-mhash> --enable-pcntl> --enable-sockets> --with-xmlrpc> --enable-zip> --enable-soap> --enable-short-tags> --enable-zend-multibyte> --enable-static> --with-xsl> --with-fpm-user=www> --with-fpm-group=www> --enable-ftp
7、编译安装:make && make install
(1)设置软链接以方便访问
[root@LNMP ~]# ln -s /usr/local/php5.3.28/ /usr/local/php[root@LNMP ~]# ls -l /usr/local/phplrwxrwxrwx. 1 root root 21 Nov 9 05:30 /usr/local/php -> /usr/local/php5.3.28/
(2)查看PHP配置默认模版文件
[root@LNMP ~]# cd /usr/src/php-5.3.28/[root@LNMP php-5.3.28]# ls php.ini*php.ini-development php.ini-production
请注意以上两文件的异同之处,可通过diff或vimdiff命令比较,如下图所示
cp php.ini-production /usr/local/php/lib/php.ini
10、配置PHP(FastCGI方式)的配置文件php-fpm.conf
[root@LNMP etc]# lspear.conf php-fpm.conf.default[root@LNMP etc]# cp php-fpm.conf.default php-fpm.conf[root@LNMP etc]# lspear.conf php-fpm.conf php-fpm.conf.default
(1)启动PHP服务php-fpm
/usr/local/php/sbin/php-fpm
(2)检查PHP服务php-fpm的进程及启动端口的情况
ps -ef | grep php-fpmlsof -i:9000 #默认9000端口提供服务
三、测试
(1)进入指定的默认站点目录后,编辑index.php,添加如下内容:
以上代码为显示PHP配置信息的简单PHP文件代码
192.168.200.128 www.shidu.com blog.shidu.com mail.shidu.com